【发布时间】:2011-08-21 00:07:39
【问题描述】:
为了通过 Google 服务器识别语音,我使用 SpeechRecognizer 类与 RecognitionListener 结合使用,如 Stephan 的 answer 到 this question 中所建议的那样。此外,我尝试使用来自 RecognitionListener 的 onBufferReceived() 回调来捕获正在识别的音频信号,例如:
byte[] sig = new byte[500000] ;
int sigPos = 0 ;
...
public void onBufferReceived(byte[] buffer) {
System.arraycopy(buffer, 0, sig, sigPos, buffer.length) ;
sigPos += buffer.length ;
}
...
这似乎工作正常,除非 SpeechRecognizer 无法连接到 Google 服务器,当音频块没有复制到上述sig 数组中,并且抛出 HTTP 连接超时异常。 SpeechRecognizer 最终连接到 Google 服务器,识别结果表明接收到完整的音频信号;只有sig 数组缺少一些音频块。
有人遇到同样的问题吗?任何解决方案的提示?谢谢!
【问题讨论】:
-
您是如何处理 sig 以获取原始音频信号以识别丢失的块的?
标签: android speech-recognition voice-recognition