SpeechRecognizer с Google Search версии 3.6.14.1337016 не может распознавать другие голосовые языки, кроме стандартных

Вы можете установить множество голосовых языков в настройках последнего поиска Google. Но проблема в том, что SpeechRecognizer может распознавать только язык по умолчанию.

Я реализовал …

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 включает только результаты языка по умолчанию.

Как я могу получить правильный результат?

Благодарю.

Solutions Collecting From Web of "SpeechRecognizer с Google Search версии 3.6.14.1337016 не может распознавать другие голосовые языки, кроме стандартных"

Несмотря на то, что это нигде не документировано, я смог узнать, что с внедрением многоязычной поддержки в своем последнем обновлении Google Search теперь получает новую дополнительную информацию в RecognizerIntent под названием «android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES». Как было предложено по его имени, это строковый массив, который будет использоваться для указания других языков в дополнение к основному, который все равно будет предоставлен RecognizerIntent.EXTRA_LANGUAGE. Проблема в том, что Google Search игнорирует RecognizerIntent.EXTRA_LANGUAGE, если этот новый дополнительный не предоставляется вместе с ним. Это означает, что для решения проблемы достаточно добавить следующую строку к вашему коду:

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

Но учтите, что, хотя это и работает, это не меняет того факта, что в поиске Google есть ошибка. Как я уже говорил, этот новый дополнительный документ нигде не документирован, а Google Search не соответствует спецификации API распознавания речи Android. Поэтому, как разработчик Google Search и Android, Google должен:

  1. Измените спецификацию API распознавания речи в Android, но это нарушит совместимость.

  2. Обновите приложение Google Поиск, чтобы оно правильно соответствовало текущей спецификации.

Второй вариант, очевидно, является наиболее логичным, и поэтому мы должны сообщать Google об ошибке, чтобы исправить ее. Похоже, что официальный справочный форум Google Search – это подходящее место для этого, но пока никто из Google не обратил внимания на поток, который я там создал ( https://productforums.google.com/forum/#!topic / Websearch / PUjEPmdSzSE / обсуждение ). Поэтому, если у вас возникла эта проблема, разместите свои жалобы там, чтобы привлечь внимание Google, и давайте посмотрим, получим ли мы официальный ответ таким образом.

Я нашел ту же проблему с моим приложением.

Я просто попробую.

  1. Удалите обновление Google Search 3.6. Это работает.
  2. Измените язык по умолчанию. Я могу использовать только язык по умолчанию.

Я снова жду обновления Google.

Вот этот вопрос для этого случая: https://code.google.com/p/android/issues/detail?id=75347

Ссылка на сайт поддержки: https://productforums.google.com/d/topic/websearch/PUjEPmdSzSE/discussion