2012-02-28 90 views
6

我有一個GrammarBuilders和Grammer程序,用於SpeechRecognitionEngine語音識別。我可以,而不是從音頻識別,使用相同的語法來識別鍵入的命令(在字符串中)?像commandGrammar.parse(commandString)?語音識別的簡單語法

+0

+1真是有趣的想法。關於文本到語音,然後是語音到文本呢? – Jason 2012-02-28 02:56:31

+0

自從我認真地使用語音識別API(已證明是最原始的)之後已經過去了大約一年,所以也許我的印象和理解剛剛過時,但不是讓語音識別語法允許它承認一個特定的聲音?你不會從文本中自行獲取。 – 2012-02-28 03:09:20

+0

不,這個實例的要點是獲得基於邏輯的輸入,如「在30秒內完成」。語音算法現在可以處理它,但如果有人輸入它,該怎麼辦?我認爲應該有一個相當簡單的方法來做到這一點。語音識別將其轉化爲文本,然後解析它,對吧? – 2012-02-28 03:19:09

回答

3

您應該可以使用SpeechRecognitionEngine.EmulateRecognize,它將文本輸入代替語音識別的音頻。

我不確定預期的用途,但是如果這將用於像聊天機器人那樣通過IM或SMS自動與文本輸入交互的東西,我認爲您會發現語法非常繁瑣,難以維護和限制。我會建議像Artificial Intelligence Markup Language (AIML)這樣的文字迴應。這很容易學習,非常強大。這種語言不是使用ASR要求的簡潔語法,而是使用更有利於文本輸入的通配符。甚至有一些C#open source projects提供圖書館與AIML一起工作,並簡化聊天機器人的創建。

+0

編輯我的答案,包括SpeechRecognitionEngine方法用於文本輸入。 – 2012-02-29 21:02:41

+0

感謝指向該方法的指針。我正在使用它通過NUnit測試語法文件。 – 2012-03-27 08:00:55