【问题标题】:android Speech recognition API.System always recognizes default languageandroid语音识别API。系统始终识别默认语言
【发布时间】:2018-01-10 14:54:23
【问题描述】:

这是我的代码的样子。

//loc will be either "ru-RU" or "en-US"
speechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, loc);
speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, loc); 
speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, loc);

问题是,当我在不同的手机上使用该程序时,它运行良好。但在我的手机上,它总是选择默认语言。极少数情况下,它只是混合识别语言。就像结果的一半是一种语言,另一半是另一种语言。 不知道是系统的原因还是代码本身的原因? 另外,它以前在我的手机上也运行良好。可能是某些设置的原因吗? 我该如何克服和解决它?如果用户遇到同样的问题,我需要知道如何解决它

How can I use voice recognition with other languages android

SpeechRecognizer with Google Search version 3.6.14.1337016 can't recognize other voice language except default

【问题讨论】:

  • 不确定,但您用于识别的语言必须存在于您的设备中(不确定)您可以通过设置在您的设备中找到这些语言
  • 当我更改它能够识别的默认语言时。我还检查了其他语言。但问题是我无法更改语言。尽管语言区域设置,它总是选择一个。在其他设备上没有这样的问题
  • 这意味着我是对的,您尝试使用的语言未在该设备中安装或配置,您可以先在该设备中下载它,谷歌它怎么做,您会得到答案
  • 在设置上有主要语言。它是俄罗斯人,其他人也被检查过。问题是我只能检查一种主要语言。也许我应该以某种方式强制语言环境进入意图。不知道,但它适用于不同的设备。但在我的情况下,它总是回退到默认值
  • 即将下载。确实我的设备支持离线识别。我有两种语言。但是程序还是不能选择识别语言。另外,有时它会在一个 lnaugae 中识别一半在另一个中。我检查了谷歌翻译应用程序。但他们的应用程序有效。但似乎他们使用的 api 与 androids 不同

标签: java android speech-recognition


【解决方案1】:

首先,使用SpeechRecognizer时存在问题
在这种情况下,唯一的解决方案是删除 google 搜索,因为它与 google search update 有关。这样做我们将删除所有更新。这在我自己的设备上有效

但在我看来,实际上,小更新不应该改变 api 行为。我希望有程序化的方式来解决这个问题,或者会有新的更新来解决它

这是未记录的编程解决方案:

intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", 新 字符串[]{});

artetxem's answer

其他解决方案只是调用活动以进行识别。这样可以看到 google 的对话活动,但不会出现语言问题。

我打开的问题issue

由 artetxem issue在谷歌搜索上打开的问题

【讨论】:

    【解决方案2】:

    嗨@VSL 我也面临同样的问题来设置语言印地语而不是英语,但语音识别器总是采用我的 Android 操作系统默认语言,即英语。但是下面的代码解决了我的问题

         Intent recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
         recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "hi");
         recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, InteractionActivity.this.getPackageName());  
         recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
         recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3);
         speech.startListening(recognizerIntent);
    

    【讨论】:

    • 如果无论我说什么我都想要英文结果怎么办?你能告诉我吗?
    猜你喜欢
    • 2023-03-12
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多