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

P i*_*P i 13 api macos speech-recognition objective-c

这个问题来自OS X Yosemite(10.10)API,用于连续语音识别

OSX现在拥有出色的连续语音识别功能.但它似乎没有公开任何API.我正在构建自定义HCI工具包,我需要捕获此语音输入才能处理它.

如何拦截呢?

我的第一个想法是,它可能会创建一些虚拟键盘设备,通过它发送按键/键入事件.如果是这种情况我可以使用IOKit拦截,但枚举我的键盘设备它不会出现.所以它必须是更高层次的东西.

请注意我添加了"黑客"标签,因为看起来没有现成的路径 - 这显然是苹果公司无意提供的.

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

Sab*_*ina 1

可悲的是,NSSpeechRecognizer只侦听一系列命令(我提到这一点是因为您在链接的问题中提出了它)。我研究了几种不同的捕获输入的方法,但它们都非常贫乏。

“拦截”语音的最流行方法是触发听写命令(fn+ fn,除非用户更改了它)并将听写文本输入文本字段。不太优雅,尤其是对于 HCI 套件而言。

如果你感觉很兴奋,你可以看一下私有框架,DictationServices但所有标准警告都适用:应用商店拒绝、“这里有龙”等。