2012-05-26 225 views
4

我一直想要使用Microsoft語音識別來創建應用程序。Microsoft語音識別自定義訓練

我的應用程序的用戶通常會說縮寫的東西,比如'大型強子對撞機'或'CERN'的'LHC'。鑑於準確的順序,我的應用程序將返回

你說:在年齡C.

你說:歐洲核子研究中心

雖然它確實工作「歐洲核子研究中心,它沒有非常嚴重的'LHC'。但是,如果我可以製作自己的定製培訓文件,我可以很容易地在這裏放置'LHC'這個詞。然後,我可以讓用戶訪問語音控制面板並運行我的培訓文件。

我發現的所有鏈接都是令人沮喪的,因爲他們只是說'這是 - ,你應該嘗試去----論壇'。

如果它確實幫助,這裏是鏈接的列表:

http://compgroups.net/comp.speech.users/add-my-own-training/153194

https://groups.google.com/forum/#!topic/microsoft.public.speech.server/v58SH1ov22s

http://social.msdn.microsoft.com/Forums/en/servercorefordevelopers/thread/f7a35f3f-b352-464a-b264-e16eb4afd049

是我的問題甚至可能嗎?或者培訓文件是否以特殊格式存檔?如果是這樣,那麼這種格式可以被轉載嗎

也可以在Windows XP上運行的解決方案是理想的。

在此先感謝!

P.S.如果有任何圖書館或模塊已經有這個,任何人都可以指點我? Python或C/C++解決方案將非常出色。另外,因爲我不想發表關於這個問題的另一個問題,是否可以使用命令提示符下的列車實用程序(或者沒有可見的GUI,但仍然擁有所有控件的全部命令)?

回答

2

好的,把它從現在的我wrote three or four years ago中拉出來,但我相信你想要做這樣的事情。

語法庫是一個訓練有素的系統,可以識別單詞。您可以創建自己的語法庫,以引用特定的單詞。

C#,對不起

using System.Speech 
using System.Speech.Recognition 
using System.Speech.AudioFormat 

SpeechRecognitionEngine sre = new SpeechRecognitionEngine(); 

string[] words = {"L H C", "CERN"}; 
Choices choices = new Choices(words); 
GrammarBuilder gb = new GrammarBuilder(choices); 
Grammar grammar = new Grammar(gb); 
sre.LoadGrammar(grammar); 

也就是說,只要我可以幫你。從文檔看來,您可以以某種方式定義發音。所以也許這樣你就可以直接將LHC映射到一個單詞。下面是關於語法類的文檔 - http://msdn.microsoft.com/en-us/library/system.speech.recognition.grammar.aspx

小更新 - 見例如在他們的文檔這裏http://msdn.microsoft.com/en-us/library/ms554228.aspx

+0

C#是偉大的!因此,如果我將「L H C」添加到語法中,下次它將能夠識別它?不必讓用戶說出這個詞?另外,如果我打電話給LoadGrammar(),是否保存下次運行它時的語法?假設我有一個C#應用程序來設置語法,然後一個Python程序使用MSSR,那麼這個語法會起作用嗎?感謝你的回答! – Xyene

+0

@Nox - 第一個問題,是的,我相信它會承認像ELL,ACH和CEE這樣的LHC。你可能必須拼寫他們的發音,儘管像,呃,阿西,看到什麼。不確定系統是否將字母識別爲單詞。對於第二部分,我不知道。 :/ – mrtsherman

+0

謝謝!有效!對於遲到的回覆感到抱歉:我無法登錄一段時間。 – Xyene