2013-03-06 55 views
5

這可能是一個簡單的問題,但我無法在任何地方找到明確的答案。這個System.Speech.Recognition識別代碼是否利用「語音訓練」?

讓我們假設我有一些System.Speech.Recognition命名空間的簡單代碼,這工作正常。

 using (
      var recognizer = 
       new SpeechRecognitionEngine(
        new CultureInfo("en-US"))) 
     { 
      // Create and load a dictation grammar. 
      recognizer.LoadGrammar(new DictationGrammar()); 

      recognizer.SpeechRecognized -= 
recognizer_SpeechRecognized; 

      // Add a handler for the speech recognized event. 
      recognizer.SpeechRecognized += 
       recognizer_SpeechRecognized; 

      // Configure input to the speech recognizer. 
      recognizer.SetInputToDefaultAudioDevice(); 

      // Start asynchronous, continuous speech recognition. 
      recognizer.RecognizeAsync(RecognizeMode.Multiple); 
     } 
    } 

    // Handle the SpeechRecognized event. 
    private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     textBox1.Text = ("Recognized text: " + e.Result.Text); 
    } 

我的問題是,使用Windows 7時,而我呢,在「控制面板」中提供的語音訓練 - >「語音識別」 - >「培訓您的計算機以更好地瞭解你」,會自動執行我的計劃利用已經完成的任何培訓?
培訓福利是由用戶還是機器來完成?
這些語音「配置文件」可以移動(輕鬆)嗎?

回答

1

是的,培訓(特別是聽寫)是有用的。準確性可以通過培訓提高20-50%。 (如果用戶有口音,尤其如此。)

培訓福利是每個用戶。

微軟有一個複製語音配置文件的工具,但是它是爲老版本的SR引擎(XP時代)而構建的,據我所知,微軟沒有人願意更新它或爲它證明在較新的SR引擎上。如果你想嘗試它,Bing爲「演講檔案管理器」,它會彈出。

0

是的,看起來雖然可能沒有必要進行培訓,但可以這樣做:this sitethis site

+1

感謝大衛,我知道它不需要接受培訓,以作爲代碼功能。我基本上想知道是否值得讓人們去培訓他們的Windows 7,因爲它會讓上面的代碼更好地工作?如果這是真的,那是基於登錄用戶還是機器的好處。 – bulltorious 2013-03-06 22:22:03

+0

在大多數情況下,沒有。如果幾乎所有事情都得到承認,培訓只會提高績效。 – 2013-03-06 22:23:40

0

我覺得當你使用聽寫語法時,培訓會很有幫助。如果您使用的是更加有限的應用語法,那麼培訓的價值就會降低。請注意,Windows客戶端語音識別API(System.Speech)和服務器語音識別API(Microsoft.speech)之間的主要區別之一是服務器API旨在爲多用戶且無法訓練(考慮語音自動電話系統,你不能爲每個來電者進行培訓)。如果你很好奇,這個SO問題可能會有幫助 - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?