SpeechRecognizer,绑定到识别服务失败

时间:2017-09-01 02:05:48

标签: 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?

感谢。

3 个答案:

答案 0 :(得分:6)

更新清单

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

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

<queries>
        <package android:name="com.google.android.googlequicksearchbox"/>
</queries>

答案 1 :(得分:1)

我知道我要晚一点回答了,但是我已经为这个错误苦了一段时间。事实证明,您需要激活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)));
    }
}

答案 2 :(得分:0)

每当Google应用以某种方式更新时,语音识别器回调始终存在问题。要么谷歌定期更改他们的超时条款,要么像你的一些奇怪的问题突然冒出来。

您需要使代码动态化,即使语音回调方法中存在错误,您也需要捕获该错误并尝试再次自动侦听。这已经在post中进行了广泛讨论,并且根据您的要求,您可以根据需要检查和实施这些答案。

如果你不想这样,你可以随时试用DroidSpeech库来处理这些语音错误问题,只要弹出一些东西并为你提供持续的语音识别。

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

  

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

要开始收听用户,请拨打以下代码,

  

droidSpeech.startDroidSpeechRecognition();

您将在侦听器方法中获得语音结果

  

@Override

     

public void onDroidSpeechFinalResult(String   finalSpeechResult,boolean droidSpeechWillListen)   {

     

}