我正在使用新的 Apple Speech 库,我找不到翻转 isFinal bool 值并在几秒钟的沉默后结束转录的命令。有谁知道如何在沉默一段时间后结束任务?
这是我接收语音转录结果的代码。
recognitionRequest.shouldReportPartialResults = true
speechRecogTask = speechRecognizer.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
var isFinal = false
if result != nil {
self.textField.text = result?.bestTranscription.formattedString
isFinal = (result?.isFinal)!
}
if error != nil || isFinal {
self.audioEngine.stop()
inputNode.removeTap(onBus: 0)
self.speechRecogRequest = nil
self.speechRecogTask = nil
}
})
有什么想法吗?
最佳答案
最好的办法是使用计时器来检测最后一个委托(delegate)被调用的时间间隔。看看this使用 NSTimer
关于swift - 如何在几秒钟的沉默后结束 SFSpeechRecognitionTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279899/