xhs*_*ier 5 android speech-recognition audio-recording
我正在使用Android上的第三方云服务进行语音识别,并且它适用于Android API SpeechRecognizer.代码如下:
Intent recognizerIntent =
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
// accept partial results if they come
recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
//need to have a calling package for it to work
if (!recognizerIntent.hasExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE)) {
recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "com.example.speechrecognition");
}
recognizer = SpeechRecognizer.createSpeechRecognizer(context);
recognizer.setRecognitionListener(this);
recognizer.startListening(recognizerIntent);
Run Code Online (Sandbox Code Playgroud)
同时,我想用不同的音频设置录制音频,如频率,频道,音频格式等.然后我会不断分析这个音频缓冲区.我使用AudioRecord来达到目的.这只适用于我关闭语音识别.
如果我同时录制音频和语音识别,则会发生错误.
E/AudioRecord: start() status -38
Run Code Online (Sandbox Code Playgroud)
如何实现这种功能,我也试过原生音频 - SLRecordItf,也行不通.
正如评论所述,一次只允许/可能一个麦克风访问.
对于SpeechRecognizer附加RecognitionListener有回调onBufferReceived(字节[]缓冲区),但不幸的是,谷歌的原生识别服务不会将任何音频数据提供到这一点,这是非常令人沮丧的.
您唯一的选择是使用外部服务,该服务不是免费的.谷歌的新Cloud Speech API有一个Android示例.
| 归档时间: |
|
| 查看次数: |
3076 次 |
| 最近记录: |