SpeechRecognizer,绑定到识别服务失败

hob*_*dev 2 android speech-recognition bindservice

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

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

我该怎么做才能正常使用 SpeechRecognizer?

谢谢。

Dam*_*rcy 8

更新清单

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

为了解决这个问题,在清单文件中,在你的 ?opening 标签下插入这个查询元素:

<queries>
        <package android:name="com.google.android.googlequicksearchbox"/>
</queries>
Run Code Online (Sandbox Code Playgroud)

  • 还有谁觉得这太疯狂和令人愤怒了,这与“SpeechRecognizer”相关的任何文档都没有出现?现在已经是 2021 年了。还是什么都没有。 (3认同)
  • 按意图过滤也可以使用 `&lt;queries&gt; &lt;intent&gt; &lt;action android:name="android.speech.RecognitionService" /&gt; &lt;/intent&gt; &lt;/queries&gt;` (2认同)

Vik*_*hil 0

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

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

如果您不希望这样,您可以随时尝试DroidSpeech库,只要弹出某些内容,它就会处理这些语音错误问题,并为您提供连续的语音识别。

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

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

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

droidSpeech.startDroidSpeechRecognition();

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

@覆盖

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

}