拦截来自OS X语音识别实用程序的输入

12
此问题源自OS X Yosemite (10.10) API for continuous speech recognition

现在,OSX拥有出色的持续语音识别功能。但是它似乎没有公开任何API。我正在构建自定义HCI工具包,并且需要捕获这个语音输入以进行处理。

如何拦截它?

我的第一个想法是,它可能会创建一些虚拟键盘设备,通过该设备发送按下/松开事件。如果是这种情况,我可以使用IOKit拦截,但是枚举我的键盘设备时并没有发现它。所以它必须是更高级别的东西。

请注意,我添加了“黑客”标签,因为显然没有现成的路径-这显然是苹果没有提供的功能。

编辑:
如何使用DictationServices.framework
我能否在没有GUI的情况下使用OS X 10.8的语音识别/听写?


3
你想截取什么内容?是音频输入吗?还是文本输出?如果是后者,你不能从文本小部件中读取它吗? - rhashimoto
1个回答

1
很遗憾,NSSpeechRecognizer只监听一系列命令(我提到了这一点是因为您在链接的问题中提到了它)。我已经看过几种不同的捕获输入的方式,但它们都相当粗糙。
最流行的“截取”语音的方法是触发听写命令(fn + fn,除非用户已更改),并将听写的文本输入到文本字段中。对于一个人机交互工具包来说,这并不是特别优雅。
如果你感到兴奋,你可以看看私有框架DictationServices,但是所有标准警告都适用:应用商店拒绝,"龙在这里"等等。

Stef是正确的,即使你以某种方式“黑客”了OS X语音识别,你可能会在应用商店等方面遇到问题。 为什么不使用开源框架来完成这个任务呢? 例如:http://cmusphinx.sourceforge.net/ - Tom
CMUSphinx似乎是所有商业引擎的基础。事实上,它是Nuance技术的基础,并且我记得苹果也获得了许可。但原版肯定会落后于其商业后代——例如缺少训练数据等问题。 - P i
我并不因为AppStore的拒绝而感到气馁,因为我正在寻找自己使用的解决方案。也许下一步我应该看看DictationServices。可以尝试叠加一个不可见的覆盖窗口来拦截和重新发出语音数据。 - P i

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