iOS10:SFSpeechRecognizer 和 Twilio TVILocalAudioTrack
iOS 10: SFSpeechRecognizer and Twilio TVILocalAudioTrack
我正在 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 quickstart found here on github 并根据需要设置了所有内容(我使用的是 CallKit 版本,但这并不重要)。但是,我在 Twilio 视频通话期间可用的音轨不是 AVAudioEngine 音轨,而是 TVILocalAudioTrack。这是 Twilio SDK 的特定类型。
TVILocalAudioTrack is here, 的文档,但我不知道如何将其插入 SFSpeechRecognizer。
可能的选择
当有人在 Twilio 房间时启动 AVAudioEngine()(我不认为我可以按照 Twilio 的 SDK)——如果有人对此有建议,那就太好了。
也许 Swift 对这个项目来说不够好?我知道!
目前无法使用 Twilio v1.0 beta 14 完成此操作。它需要访问音频缓冲区,这是无法通过 Twilio 的 API.
访问的
有关详细信息,请参阅 this Github issue。
我正在 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 quickstart found here on github 并根据需要设置了所有内容(我使用的是 CallKit 版本,但这并不重要)。但是,我在 Twilio 视频通话期间可用的音轨不是 AVAudioEngine 音轨,而是 TVILocalAudioTrack。这是 Twilio SDK 的特定类型。
TVILocalAudioTrack is here, 的文档,但我不知道如何将其插入 SFSpeechRecognizer。
可能的选择
当有人在 Twilio 房间时启动 AVAudioEngine()(我不认为我可以按照 Twilio 的 SDK)——如果有人对此有建议,那就太好了。
也许 Swift 对这个项目来说不够好?我知道!
目前无法使用 Twilio v1.0 beta 14 完成此操作。它需要访问音频缓冲区,这是无法通过 Twilio 的 API.
访问的有关详细信息,请参阅 this Github issue。