以識別Google服務器的語音,我使用SpeechRecognizer類與RecognitionListener結合使用,如Stephan的answer至this question中所建議的。此外,我試圖捕獲音頻信號通過onBufferReceived()回調從RecognitionListener像被認可:捕獲發送給Google語音識別服務器的音頻
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無法連接到谷歌服務器上,當音頻的塊是未複製到上述sig
數組中,並且引發HTTP連接超時異常。 SpeechRecognizer最終連接到Google服務器,識別結果表明已收到完整的音頻信號;只有sig
陣列缺少一些音頻塊。
有沒有人遇到同樣的問題?任何提示解決方案?謝謝!
您是如何處理sig以獲取原始音頻信號以識別丟失的塊的? – ComputerEngineer88 2012-03-14 07:34:23