我正在使用新的Apple语音库,我无法找到一个命令来翻转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
}
})
有什么想法吗?
答案 0 :(得分:3)
您最好的选择是使用计时器来检测调用最后一个委托的时间间隔。查看使用NSTimer
答案 1 :(得分:0)
if let result = result {
if (isFinal == true) {
self.speechRecogTask?.finish()
}
}