3

我在 android 上使用 SpeechRecognizer 来识别用户的声音。在卸载 Google App 之前它运行良好。(https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en

我更新了谷歌应用程序,但出现“绑定识别服务失败”等错误。如何使应用程序成功运行?

正常使用 SpeechRecognizer 应该怎么做?

谢谢。

4

3 回答 3

13

更新清单

我正在使用 Algolia 的语音输入库,但它无法在 Pixel 2 和 android 11 设备上进行语音输入。无法绑定语音识别服务的原因。

为了解决这个问题,在清单文件中,在您的开始标记下插入这个查询元素:

<queries>
        <package android:name="com.google.android.googlequicksearchbox"/>
</queries>
于 2021-03-18T05:41:05.713 回答
2

我知道我回答这个问题有点晚了,但我已经为这个错误苦苦挣扎了一段时间。事实证明,您需要激活 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)));
    }
}
于 2020-08-26T00:45:36.550 回答
0

每次 Google 应用程序以某种方式更新时,语音识别器回调总是会出现问题。要么谷歌定期更改他们的超时条款,要么突然出现一些像你这样的奇怪问题。

您需要以这样一种方式使您的代码动态化,即使语音回调方法中存在错误,您也需要捕获该错误并尝试再次自动收听。这已在本文中广泛讨论,提供了大量答案供您根据您的要求检查和实施它们。

如果你不想要这个,你可以随时尝试DroidSpeech库,它会在出现问题时处理这些语音错误问题,并为你提供持续的语音识别。

只需使用 Gradle 实现该库并添加以下代码行。

DroidSpeech droidSpeech = new DroidSpeech(this, null); droidSpeech.setOnDroidSpeechListener(this);

要开始收听用户调用以下代码,

droidSpeech.startDroidSpeechRecognition();

你会在 listener 方法中得到语音结果,

@覆盖

公共无效 onDroidSpeechFinalResult(字符串 finalSpeechResult,布尔 droidSpeechWillListen){

}

于 2017-09-03T05:21:27.677 回答