带有 Google 搜索版本 3.6.14.1337016 的语音识别器无法识别除默认语言以外的其他语音语言



您可以在最新Google搜索设置中设置多种语音语言。但问题是,语音识别器只能识别默认语言。

我实现……

private SpeechRecognizer mGoogleRecognizer; 
private void startRecognition() {
    mGoogleRecognizer = SpeechRecognizer.createSpeechRecognizer(m_context);
    mGoogleRecognizer.setRecognitionListener(this);
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "ko-KR");
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Intellectual Personal Assistant");
    intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, m_context.getPackageName());
    mGoogleRecognizer.startListening(intent);
}
@Override
public void onResults(Bundle results) {
    ArrayList<String> resultList = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
}

请求韩语识别,但resultList只包含默认语言的结果。

我怎样才能得到正确的结果?

谢谢。

尽管这在任何地方都没有记录,但我已经能够发现,随着在其上次更新中引入多语言支持,谷歌搜索现在在RecognizerIntent中增加了一个新的额外功能,称为"android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES"。正如它的名字所暗示的那样,它是一个字符串数组,用于指定除了主语言之外的其他语言,主语言仍然由RecognizerIntent.EXTRA_LANGUAGE给出。问题是Google Search忽略了RecognizerIntent。EXTRA_LANGUAGE,如果这个新的extra没有附带的话。这意味着在代码中添加以下行就足以解决问题:

intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{});

但请注意,即使这工作,它并没有改变的事实,有一个错误在谷歌搜索。正如我之前所说的,这个新的额外功能没有任何文档记录,Google搜索也没有遵循Android语音识别API的规范。作为Google Search和Android的开发者,Google应该:

  1. 修改Android语音识别API的规范,

  2. 更新谷歌搜索应用程序,使其正确地遵循当前规范。

第二个选项显然是最合乎逻辑的,因此我们应该让Google知道这个bug,以便他们修复它。它看起来像官方的谷歌搜索帮助论坛是正确的地方,但到目前为止,没有人从谷歌已经注意到我在那里创建的线程(https://productforums.google.com/forum/#!topic/websearch/PUjEPmdSzSE/discussion)。所以,如果你遇到了这个问题,请在这里发表你的抱怨,以引起谷歌的注意,让我们看看我们是否能得到一个官方的答案。

我在我的应用程序中发现了同样的问题。

我只是尝试。

  1. 删除谷歌搜索3.6更新。这是工作。
  2. 修改默认语言。我只能使用默认语言。

我在等待Google更新。

下面是这个案例的问题:https://code.google.com/p/android/issues/detail?id=75347

支持网站链接:https://productforums.google.com/d/topic/websearch/PUjEPmdSzSE/discussion

最新更新