我目前正在为患有视力障碍的人开发Iphone应用程序。为了获取输入文本,该应用程序使用语音识别。 激活Voice-Over后,该应用程序运行得很好,但是当用户启动语音识别时,Voice-Over输出会切换到耳机(这很正常)。
困扰我的是,当所有过程结束后,即使我结束了所有过程,输出扬声器也不会切换回主扬声器。
对于语音识别,我创建了AVAudioEngine()
,SFSpeechRecognizer()
,SFSpeechAudioBufferRecognitionRequest()
和SFSpeechRecognitionTask?
的实例。
然后我将请求分到实时输入节点中,并启动了音频引擎。
用户说完语音后,我打电话给audioEngine.stop()
,request.endAudio()
和recognitionTask?.cancel()
停止所有操作并恢复为该应用程序的“正常”使用。
也许我在停止所有操作时都错过了一些东西,关于实时输入节点的一些信息:
audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in self.request.append(buffer)}
但是我尝试removeTap(onBus: 0)
,但是什么都没有改变。
仅当我关闭应用程序或执行多任务处理时,输出扬声器才能恢复正常。
希望您能帮助我解决问题!
谢谢