我正在开发一个在Swift中的iOS应用程序,它试图通过转录会话。我成功地使用AVAudioEngine()和SFSpeechRecognizer()转录了会话。
// MARK: Speech Helper Methods
func recordAndRecognizeSpeech() {
guard let node = audioEngine.inputNode else { return }
let recordingFormat = node.outputFormat(forBus: 0)
node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
self.request.append(buffer)
}
audioEngine.prepare()
do {
try audioEngine.start()
} catch {
return print(error)
}
guard let myRecognizer = SFSpeechRecognizer() else {
return
}
if !myRecognizer.isAvailable {
return
}
recognitionTask = speechRecognizer?.recognitionTask(with: request, resultHandler: { result, error in
if let result = result {
let bestString = result.bestTranscription.formattedString
} else if let error = error {
print(error)
}
})
}现在我想尝试把这个带到视频聊天中去。因此,我遵循Twilio,找到了在github上,并在适当的情况下设置了一切(我使用了CallKit版本,这并不重要)。但是,我在Twilio视频通话中可以使用的音频轨道不是AVAudioEngine音轨,而是TVILocalAudioTrack。这是Twilio的一个特定类型。
TVILocalAudioTrack来了,的文档,但我不知道如何将其插入SFSpeechRecognizer。
可能的替代
当有人在Twilio房间时启动AVAudioEngine() (我不认为我可以像Twilio那样)--如果有人在这方面有建议的话,那就太好了。
也许斯威夫特不适合这个项目?懒散!
发布于 2017-04-27 00:20:39
这一点目前还不能用TwilioV1.0beta 14实现,它需要访问音频缓冲区,而音频缓冲区不能通过Twilio的API访问。
有关更多详细信息,请参阅这个吉特布问题。
https://stackoverflow.com/questions/43595482
复制相似问题