某些设备(如三星 Galaxy S3)预装了由 Vlingo 驱动的三星,而不是谷歌语音搜索。
在我的应用程序中,我想以编程方式覆盖要使用的语音识别引擎,以便我的应用程序始终使用 Google 语音搜索。
所以我的问题是:
- 有没有办法知道安装了哪些语音识别引擎?(如果有,怎么做?)
- 有没有办法判断在用户设置中选择了哪个语音识别引擎?(如果有,怎么做?)
- 是否有一种编程方式来覆盖用户的选择,以便我的应用程序始终调用Google Voice Search?(如果是这样,如何?)
帮助将不胜感激
某些设备(如三星 Galaxy S3)预装了由 Vlingo 驱动的三星,而不是谷歌语音搜索。
在我的应用程序中,我想以编程方式覆盖要使用的语音识别引擎,以便我的应用程序始终使用 Google 语音搜索。
所以我的问题是:
帮助将不胜感激
您所有问题的答案都是“是”。
createSpeechRecognizer可以指定要使用的识别器的包名。因此,如果您知道包名称,那么您可以覆盖默认值。
要检测可用服务,请使用:
List<ResolveInfo> services =
getPackageManager().queryIntentServices(
new Intent(RecognitionService.SERVICE_INTERFACE), 0);
有关更多详细信息,请研究Babble的源代码。我不知道这是否是最好的方法(欢迎任何反馈),但它已在我的设备上运行。(Babble 通常假设 Android 4+,但语音识别器检测部分也可能适用于早期版本。)