以下是我的语音识别代码,它在最新的设备上显示“识别器不存在”,tablets.Please帮助我解决这个问题。
public void startMyVoice()
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, sayClose);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
try
{
startActivityForResult(intent, RESULT_SPEECH);
}
catch (ActivityNotFoundException a)
{
Toast.makeText(getApplicationContext(), "Recogniser not present", Toast.LENGTH_SHORT).show();
}
}发布于 2014-01-14 18:27:48
来自:Speech To Text Recognizer not found
我不确定为什么识别器功能并非在所有设备上都可用。请确保您安装并更新了最新的Android语音搜索。我相信它安装了最新的识别器。请参阅http://www.google.com/mobile/voice-actions/,它可能会有所帮助。
正如但丁·江在将语音转换为文本时所说,根据这篇文章,谷歌语音搜索才是你真正需要的。
Android SDK可以轻松地将语音输入直接集成到您自己的应用程序中-只需从此示例应用程序中复制并粘贴即可开始使用。Android是一个开放的平台,所以你的应用程序可能会利用设备上注册接收RecognizerIntent的任何语音识别服务。谷歌的语音搜索应用程序预装在许多安卓设备上,它对RecognizerIntent的响应是显示“立即发言”对话框,并将音频流式传输到谷歌的服务器上--当用户点击搜索小工具上的麦克风按钮或语音键盘时,这些服务器就是谷歌的服务器。(您可以在设置➝Applications➝Manage applications中检查是否安装了语音搜索。)
发布于 2021-08-10 08:05:46
在你的AndroidManifest.xml文件中添加下面的代码,它就可以工作了。
<queries>
<intent>
<action
android:name="android.speech.RecognitionService" />
</intent>
</queries>发布于 2022-01-19 18:48:49
根据this文档:
当应用针对Android11(API30级)或更高版本时...要查看其他包,请使用
<queries>元素声明您的应用程序需要更高的包可见性。
因此,如果您使用的是RecognizerIntent.ACTION_RECOGNIZE_SPEECH,那么您将需要在AndroidManifest.xml的<application>标记之外声明相同的intent,如下所示:
<manifest>
...
<queries>
<intent>
<action android:name="android.speech.action.RECOGNIZE_SPEECH" />
</intent>
</queries>
</manifest>否则,pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);将始终返回一个空列表。
https://stackoverflow.com/questions/21111054
复制相似问题