tone recog map
firefighter578
plain_text
a year ago
2.4 kB
6
Indexable
import UIKit import Speech class ViewController: UIViewController, SFSpeechRecognizerDelegate { private let audioEngine = AVAudioEngine() private let speechRecognizer: SFSpeechRecognizer? = SFSpeechRecognizer() private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest? private var recognitionTask: SFSpeechRecognitionTask? private let audioSession = AVAudioSession.sharedInstance() override func viewDidLoad() { super.viewDidLoad() // Request user authorization for speech recognition SFSpeechRecognizer.requestAuthorization { authStatus in if authStatus == .authorized { // Start listening for specific tone or sound self.startListening() } } } func startListening() { let inputNode = audioEngine.inputNode // Setup audio format for the recognition request let recordingFormat = inputNode.outputFormat(forBus: 0) inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, _) in self.recognitionRequest?.append(buffer) } audioEngine.prepare() do { try audioEngine.start() } catch { print("Audio engine couldn't start because of an error.") } // Start speech recognition recognitionRequest = SFSpeechAudioBufferRecognitionRequest() guard let recognitionRequest = recognitionRequest else { fatalError("Unable to create recognition request") } recognitionTask = speechRecognizer?.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in if let result = result { // Process speech result let bestTranscription = result.bestTranscription let spokenText = bestTranscription.formattedString // Extract relevant information from spokenText // Launch map program with extracted data self.launchMapProgram(with: spokenText) } else if let error = error { print("Recognition task error: \(error)") } }) } func launchMapProgram(with data: String) { // Launch map program and insert data // Code to integrate with map program } }
Editor is loading...