小编Dus*_*san的帖子

捕获发送到 Google 语音识别服务器的音频

认识到由谷歌服务器的演讲,我用SpeechRecognizer类与RecognitionListener组合中建议斯蒂芬回答这个问题。此外,我尝试使用 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 ;
}
...
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,除非 SpeechRecognizer 无法连接到 Google 服务器、音频块未复制到上述sig数组中,并且会引发 HTTP 连接超时异常。SpeechRecognizer 最终连接到谷歌服务器,识别结果表明收到了完整的音频信号;只有sig数组缺少一些音频块。

有没有人遇到同样的问题?任何解决方案的提示?谢谢!

android speech-recognition voice-recognition

5
推荐指数
1
解决办法
5614
查看次数