我正在开发一个使用iOS SFSpeechRecognizer应用程序接口的语音转文本应用程序。
我找到了一个很棒的tutorial here:,它工作得很好。
我想要处理文本,并在语音输入停止后立即执行一些操作。那么,我很好奇SFSpeechRecognizer是否有一个委托方法可以识别语音输入何时停止,这样我就可以捕获输入并进一步处理?
发布于 2018-10-17 03:19:08
所以,我很好奇SFSpeechRecognizer是否有一个委托方法可以识别语音输入何时停止,这样我就可以捕获输入并进一步处理?
没有内置到SFSpeechRecognizer应用程序接口中,不。相反,这正是为什么您必须提供允许用户告诉识别器输入已完成的界面的原因(例如,某种Done按钮)。如果您忽略该接口,您的应用程序将被拒绝。
发布于 2018-10-17 02:17:42
一种可能的解决方案可能是使用像FDSoundActivatedRecorder这样的第三方库,它在检测到声音时开始录音,并在用户完成通话时停止录音。
然后,您可以使用录制的音频,就像在此link中一样,在go中将其转换为文本。
func transcribeAudio(url: URL) {
// create a new recognizer and point it at our audio
let recognizer = SFSpeechRecognizer()
let request = SFSpeechURLRecognitionRequest(url: url)
// start recognition!
recognizer?.recognitionTask(with: request) { [unowned self] (result, error) in
// abort if we didn't get any transcription back
guard let result = result else {
print("There was an error: \(error!)")
return
}
// if we got the final transcription back, print it
if result.isFinal {
// pull out the best transcription...
print(result.bestTranscription.formattedString)
}
}
}https://stackoverflow.com/questions/52841433
复制相似问题