2

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

在此处输入图像描述

然后我尝试了手机中的各种应用程序,这些应用程序显示带有麦克风选项的键盘,期望当我触摸麦克风符号时,将使用 Kõnele。然而,系统总是弹出谷歌的内置语音搜索。

这是为什么?

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

这是 Android 操作系统的“设计”限制吗?

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

更新:我设法找到了一个似乎不会忽略附加识别器意图的应用程序:谷歌地图:

在此处输入图像描述

对我来说,这表明这与 Android意图解析有关。但是,为什么有些应用程序不会触发“使用完成操作”对话框,而谷歌地图会呢?

4

1 回答 1

2

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

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

在这种情况下,您唯一的选择是卸载或禁用此特定实现,并希望应用程序回退到通用方法:

SpeechRecognizer.createSpeechRecognizer(this);

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

也可能是应用程序发送了 Kõnele 不支持的意图(支持的意图在清单中列出),但在语音识别应用程序中支持是有意义的。在这种情况下,这将是对 Kõnele 的功能请求。

于 2013-11-08T10:51:44.463 回答