在安卓设备上,isRecognitionAvailable返回false

3

我正在使用 Android 上的 android.speech.SpeechRecognizer。 在某些情况下,isRecognitionAvailable 返回 false,因此无法识别语音。 有没有办法在手机上启用 android.speech.SpeechRecognizer? 或者是否有类似的服务?

4个回答

5
我知道时间已经过去了很久,但这可能会帮助到某些人。
我遇到了一个非常奇怪的问题。我知道语音识别器曾经在我的Android 5.1.1手机上工作过。然而,isRecognitionAvailable开始返回false。但是,createSpeechRecognizer正在创建对象(尽管它没有开始监听)。这很奇怪,因为根据文档:
isRecognitionAvailable: 检查系统上是否可用语音识别服务。如果此方法返回false,则createSpeechRecognizer(Context)将失败。
最终,我进入PlayStore并寻找“Ok Google”,发现Google LLC被禁用。我启用它后,语音识别器又开始工作了。
希望这能帮助任何人。

2
在三星S9上,可以禁用谷歌应用程序,这将同时禁用STT服务。我是通过艰难的方式发现了这一点。非常好的发现@mgonzalez - Gleno

0
有没有办法在手机上启用android.speech.SpeechRecognizer?或者是否有类似的服务?
不,SpeechRecognizer是一个系统服务。如果它不可用,则设备上没有此类服务。以下是文档中的引用。
检查系统上是否有语音识别服务。
如果您真的想要语音识别,可以记录麦克风输入并自行处理原始输入。

嗨,乔舒亚, 感谢您的回复。 如果isRecognitionAvailable返回false,就永远不能使用android.speech.recognizer了吗? - hobbydev
@danielparker 是的,它是设备特定的。除非你自己创造,否则你无法对此做任何事情。你可以为这些设备禁用该功能。 - Joshua

0
如果SpeechRecognizer.isRecognitionAvailable(this)返回false,则表示您的设备不支持语音识别功能。很简单。
请查看文档

感谢您的回复。 如果isRecognitionAvailable返回false,就永远不能使用android.speech.recognizer吗? - hobbydev
请尝试使用其他设备,而不是您正在尝试的设备。 - josedlujan

0
如果您的目标是API 30或更高版本,请在清单文件中应用程序块之外添加以下内容:
<queries>
    <intent>
        <action android:name="android.speech.RecognitionService" />
    </intent>
</queries>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接