SpeechRecognizer, ошибка привязки к службе распознавания

Я использовал SpeechRecognizer на Android для распознавания голоса пользователя. Он работал хорошо, пока не удалил приложение Google. (https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en)

Я обновил приложение Google, но получил такие ошибки, как "сбой привязки к службе распознавания". Как сделать так, чтобы приложение работало успешно?

Что мне делать, чтобы нормально использовать SpeechRecognizer?

Спасибо.


person hobbydev    schedule 01.09.2017    source источник
comment
Решение здесь: stackoverflow.com/q/64319117/1423773   -  person GuilhE    schedule 27.10.2020


Ответы (3)


Каждый раз, когда приложение Google так или иначе обновляется, всегда возникает проблема с обратными вызовами распознавателя речи. Либо Google периодически меняет свое положение о тайм-ауте, либо какие-то странные проблемы, подобные вашей, появляются из ниоткуда.

Вам нужно сделать свой код динамическим таким образом, чтобы даже в случае ошибки в методах обратного вызова речи вам нужно было поймать эту ошибку и попытаться снова прослушать автоматически. Это широко обсуждалось в этом сообщении, и есть множество ответов, которые вы можете проверить и реализовать в соответствии с вашими требованиями. .

Если вам это не нужно, вы всегда можете попробовать библиотеку DroidSpeech, которая решает эти проблемы с речевыми ошибками. всякий раз, когда что-то всплывает и обеспечивает непрерывное распознавание голоса.

Просто реализуйте библиотеку с помощью Gradle и добавьте следующие строки кода.

DroidSpeech droidSpeech = новый DroidSpeech (это, ноль); droidSpeech.setOnDroidSpeechListener (это);

Чтобы начать слушать пользователя, вызовите приведенный ниже код,

droidSpeech.startDroidSpeechRecognition();

И вы получите голосовой результат в методе слушателя,

@Override

public void onDroidSpeechFinalResult (String finalSpeechResult, логическое значение droidSpeechWillListen) {

}

person Vikram Ezhil    schedule 03.09.2017

Обновить манифест

Я использую библиотеку голосового ввода Algolia, и она не может принимать голосовой ввод на устройствах Pixel 2 и Android 11. Причина в невозможности привязки к службе распознавания голоса.

Чтобы решить эту проблему, в файле манифеста вставьте этот элемент запроса прямо под открывающим тегом:

<queries>
        <package android:name="com.google.android.googlequicksearchbox"/>
</queries>
person Damercy    schedule 18.03.2021
comment
Спасибо! Все еще актуально в 2021 году, и ваш ответ был единственным, что решило проблему на Pixel 3a. - person ARA1307; 16.04.2021
comment
этот ответ должен быть правильным решением. спасибо приятель - person Lasitha Lakmal; 14.06.2021

Я знаю, что отвечаю на это немного поздно, но я уже некоторое время борюсь с этой ошибкой. Оказывается, вам нужно активировать окно быстрого поиска Google. Итак, решение, которое я использовал, таково: я проверяю, доступен ли SpeechRecognizer (используя isRecognitionAvailable(context)). Если SpeechRecognizer недоступен, вы можете активировать его следующим образом:

if(!SpeechRecognizer.isRecognitionAvailable(mainActivity)){
    String appPackageName = "com.google.android.googlequicksearchbox";
    try {
        mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
            Uri.parse("market://details?id=" + appPackageName)));
    } catch (android.content.ActivityNotFoundException anfe) {
        mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
    }
}
person Khaled Abdrabo    schedule 26.08.2020
comment
Работает! Большое спасибо. ???????? - person Damercy; 18.03.2021
comment
У меня не сработало, просто открывается страница PlayStore с приложением Google. Добавление запросов в манифест (см. выше) решило проблему на Pixel 3a. - person ARA1307; 16.04.2021
comment
@ARA1307 ARA1307 Я думаю, что правильным решением является объединение двух решений, потому что у некоторых клиентов на их устройствах не установлено или не включено окно быстрого поиска Google (что не будет разрешено только путем добавления запросов в ваш манифест). В любом случае, рад, что другое решение сработало для вас :) - person Khaled Abdrabo; 17.04.2021