Android 上的离线语音识别器不起作用



我正在使用SpeechRecognizer。问题是,如果没有活动的互联网连接,语音识别器将抛出错误SpeechRecognizer.ERROR_NETWORKSpeechRecognizer.ERROR_SERVER

这是我的识别器意图

    final Intent recognizerIntent;
    recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true);

我把recognizerIntent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true);

但是没有运气。 它将再次抛出相同的错误。

我经常收到这两个错误。

  1. SpeechRecognizer.ERROR_RECOGNIZER_BUSY
  2. SpeechRecognizer.ERROR_NO_MATCH

请帮助我。

首先,您需要确保设备上是否安装了离线语言包EXTRA_LANGUAGE_PREFERENCE。

若要在受支持的设备中启用脱机语音输入,请执行以下步骤:

  • 转到"设置">
  • 点击"语言和输入">
  • 屏幕键盘
  • 选择谷歌语音输入
  • 选择脱机语音识别
  • 安装所需语言

如果它仍然无法离线工作,请尝试将您的EXTRA_LANGUAGE_PREFERENCE值更改为更具体的值,例如"en-US"(这对我来说是

诀窍(

而且,如果你想告诉它应该识别SpeechRecognizer语言,我想你应该使用EXTRA_LANGUAGE参数而不是EXTRA_LANGUAGE_PREFERENCE

希望会有所帮助

相关内容

  • 没有找到相关文章

最新更新