' com.apple.coreaudio.avfaudio',原因:'必填条件为false:_recordingTap == nil
在代码中崩溃
1.
guard let inputNode = audioEngine.inputNode else {
fatalError("Audio engine has no input node")
}
2.
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, when) in
self.recognitionRequest?.append(buffer)
}
当试图重新初始化siri时,它会崩溃
在听写之后我们也有文本的听写我想要从语音中捕获文本。第一次没问题但第二次在第2行遇到崩溃
下面给出的语音听写功能
func getSpeech(asSpeach:String)
{
print("===================")
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.overrideOutputAudioPort(.speaker)
} catch {
print(error.localizedDescription)
}
/// <#Description#>
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: asSpeach)
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
utterance.volume = 1.0
utterance.pitchMultiplier = 1.0
synthesizer.delegate=self
synthesizer.speak(utterance)
// synthesizer.rSpeaking(at: .word)
}
答案 0 :(得分:0)
错误告诉您,您已经在该总线上安装了水龙头,并且您无法再使用其他水龙头。
当您最初调用listen()时,请在总线上安装tap。 然后你调用stopListening()并停止识别,但你没有做任何关于点击的事情。 然后当你再次调用listen()时,你试图再次安装tap - 这会产生错误。
你可以在stopListening()时添加一些东西来删除TapOnBus - 这意味着当你再次开始听时你可以重新添加它。