在没有麦克风小部件的情况下使用 OSX 语音识别

Use OSX speech recognition without the microphone widget

有没有办法在没有屏幕麦克风小部件的情况下在 OSX 上使用语音命令,无论是在特定应用程序的基础上还是在系统范围内?

我目前正在尝试在 OSX 上的 Python 中构建一个语音识别应用程序,我可以在玩 Elite 时使用它来控制游戏内功能和我的音乐播放器。我发现这个 fantastic example that I'll build off, and I found a method 可以防止它干扰游戏音频。

我遇到的问题是使用语音识别时屏幕上的小部件会干扰玩全屏游戏。我理解 privacy/security 使用小部件的原因,但是有什么方法 "opting out" 吗?

回答不需要使用Python,但如果是则奖励网络积分!

tl;dr 答案是“可能是,请尝试让您的应用全屏显示”。

关于识别语音的文档[1] 暗示屏幕上的麦克风是非可选的:

When speech recognition is activated, an on-screen microphone and (optionally) the Speech Commands window appear.

但是,NSSpeechRecognizer 文档明确提到[2] 全屏应用与屏幕麦克风兼容(强调我的):

Setting [blocksOtherRecognizers] to YES effectively takes over the computer at the expense of other applications using speech recognition, so you should use it only in circumstances that warrant it, such as when listening for a response important to overall system operation or when an application is running in full-screen mode (such as games and presentation software).

我认为,这意味着如果您的 应用程序(使用语音识别的应用程序)是全屏的,那么麦克风小部件将不会显示。是否可以同时拥有多个全屏应用 运行 是个问题——您可以尝试研究相关的 API[3]。

否则你可以查看 Python 的第三方语音识别库(上次我检查那里没有太多好的选择),或者尝试连接第二个显示器,看看你是否可以您的带有麦克风小部件的应用和不同屏幕上的游戏 运行。

Mac 开发者库链接