I use speech recognition in my application. When I first introduce a view controller with speech recognition logic, everything works fine. However, when I try to submit the view controller again, I get the following failure:
ERROR: [0x190bf000] >avae> AVAudioNode.mm:568: CreateRecordingTap: required condition is false: IsFormatSampleRateAndChannelCountValid(format) *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(format)'
Here is the code used to start and stop recording:
@available(iOS 10.0, *) extension DictationViewController { fileprivate func startRecording() throws { guard let recognizer = speechRecognizer else { debugLog(className, message: "Not supported for the device locale") return } guard recognizer.isAvailable else { debugLog(className, message: "Recognizer is not available right now") return } mostRecentlyProcessedSegmentDuration = 0 guard let node = audioEngine.inputNode else { debugLog(className, message: "Could not get an input node") return } let recordingFormat = node.outputFormat(forBus: 0) node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { [weak self] (buffer, _) in self?.request.append(buffer) } audioEngine.prepare() try audioEngine.start() recognitionTask = recognizer.recognitionTask(with: request, resultHandler: {/***/}) } fileprivate func stopRecording() { audioEngine.stop() audioEngine.inputNode?.removeTap(onBus: 0) request.endAudio() recognitionTask?.cancel() } }
startRecording() is called in viewDidLoad after we requested authorization. stopRecording() is called when the view manager rejects.
Help. I'm struggling to find a solution to this accident
ios swift3 speech-recognition sfspeechrecognizer
Appache99
source share