加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android Marshmallow 6.0.1打破了我的连续语音识别

发布时间:2020-12-15 02:13:39 所属栏目:Java 来源:网络整理
导读:我正在创建一个我正在使用连续语音识别的应用程序.直到有一天我将手机更新到 Android 6.0.1时,它工作得很好,所以我假设这是破坏代码的原因.现在,语音识别器几乎立即抛出一个ERROR_NO_MATCH错误,并且在重新启动之前只监听输入不到一秒钟,它应该监听5秒钟.它导
我正在创建一个我正在使用连续语音识别的应用程序.直到有一天我将手机更新到 Android 6.0.1时,它工作得很好,所以我假设这是破坏代码的原因.现在,语音识别器几乎立即抛出一个ERROR_NO_MATCH错误,并且在重新启动之前只监听输入不到一秒钟,它应该监听5秒钟.它导致很难对应用程序说出命令.这是我的代码:

private void displaySpeechRecognizer() {
    if(sr != null) {
        sr.destroy();
    }
    sr = SpeechRecognizer.createSpeechRecognizer(this);
    sr.setRecognitionListener(this);
    intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

    // Start the activity,the intent will be populated with the speech text
    sr.startListening(intent);
}

@Override
public void onReadyForSpeech(Bundle params) {
}

@Override
public void onBeginningOfSpeech() {
}

@Override
public void onRmsChanged(float rmsdB) {
}

@Override
public void onBufferReceived(byte[] buffer) {
}

@Override
public void onEndOfSpeech() {
}

@Override
public void onError(int error) {
    displaySpeechRecognizer();
}

解决方法

我刚遇到同样的问题.似乎该问题可能与“永远在线”行为更改为“Ok,Google”功能有关. SpeechRecognizer throws onError on the first listening

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读