我安装了开源 凯内尔 (源代码)目的是研究如何编写和注册自定义语音识别服务。作为第一步,在深入研究源代码之前,我试图验证它确实可以按照我的预期工作。所以,我去了我的电话 System settings > Language & input > Voice recognizer 并选择了凯内尔作为系统的识别器:

enter image description here

然后,我尝试了手机中的各种应用程序,这些应用程序带有麦克风选项,并期望当我触摸麦克风符号时,将使用kénele。但是,相反,该系统始终弹出Google的内置语音搜索。

这是为什么?

我是否错过了需要配置(用户)才能完成此工作的其他设置?

这是Android OS的“设计”限制?

是否可以告诉Android始终使用不是Google语音搜索的其他识别器?如果是这样,怎么样?

更新: :我设法找到了 看起来的应用 不是 忽略其他识别器:Google Maps:

enter image description here

对我来说,这表明这与Android有关 意图解决. 。但是,为什么某些应用不会触发该应用程序 “使用完整的动作” 对话框,而Google地图确实如此?

有帮助吗?

解决方案

我认为您已经完成了用户可以做的所有事情,但是想要使用语音识别器的应用程序当然可以免费忽略您的配置。例如,它可以通过构建类似的识别器来直接选择特定的语音识别器实现:

SpeechRecognizer.createSpeechRecognizer(this,
    new ComponentName("com.google",
                      "com.google.Recognizer");
);

在这种情况下,您唯一的选择是卸载或禁用此特定的实现,并希望该应用程序归结为一般方法:

SpeechRecognizer.createSpeechRecognizer(this);

不幸的是,在某些时候,Google开始宣传应用程序直接链接到Google语音识别器的想法(请参阅 将语音输入添加到您的IME)。这么多键盘应用程序现在这样做(请参阅EG 我与Swiftkey提出的问题),您唯一的选择是找到一个没有...

也可能是该应用程序发出了肯尼尔不支持的意图(支持的意图已在 显现),但是在语音识别应用程序中支持这是有意义的。在这种情况下,这将是对凯内尔的功能请求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top