2015-05-25 94 views
13

這一個問題,從OS X Yosemite (10.10) API for continuous speech recognition從OS X的語音識別工具

OSX截獲輸入現擁有精湛的連續語音識別。但它似乎沒有公開任何API。我正在構建定製的HCI套件,並且我需要捕獲此語音輸入以便處理它。

如何截取它?

我的第一個想法是,它可能會創建一些虛擬鍵盤設備,通過它發送按鍵/按鍵事件。如果是這種情況,我可以使用IOKit攔截,但枚舉我的鍵盤設備它不會出現。所以它必須是更高層次的東西。

請注意我添加了'黑客'標籤,因爲看起來沒有現成的路徑 - 這顯然是蘋果無意提供的。

編輯:
How to use DictationServices.framework
Can I use OS X 10.8's speech recognition/dictation without a GUI?

+3

什麼是你想截取,確切?音頻輸入?文本輸出?如果是後者,你不能從文本小部件中讀取它嗎? – rhashimoto

回答

2

可悲的是,NSSpeechRecognizer只監聽命令的陣列(我提到,因爲你在你的鏈接的問題提出來的)。我已經看了幾種不同的方法來捕捉輸入,但他們都是非常貧民窟。

最流行的方式爲「攔截」的講話,是觸發聽寫命令(FN + FN,除非用戶已經改變了它),然後輸入聽寫文本到文本字段。不完全優雅,特別是對於HCI套件。

如果你感覺活潑,你可以看看在私人框架,DictationServices,但所有標準的警告適用於:App Store的拒絕,「這裏是龍」等

+0

Stef是對的,即使你以某種方式「破解」OS X語音識別,你可能會在應用商店等問題。 爲什麼不使用開源框架來做到這一點?例如:http://cmusphinx.sourceforge.net/ – Tom

+0

CMUSphinx似乎是所有商業引擎的基礎。事實上,它是Nuance技術的基礎,而IIRC Apple則授權這一點。但原創肯定會大大落後於它的商業後代 - 缺乏培訓數據。 –

+0

我不會因爲AppStore的拒絕而沮喪,因爲我正在尋找適合自己使用的解決方案。所以也許'DictationServices'是我應該看看下一個。可能疊加一個截取並重新發送語音數據的不可見覆蓋窗口。 –