2013-06-22 59 views
1

我目前正在使用Microsoft.Speech API來將發音指定爲文本,但我真正需要的是程序可以使用的替代聽寫。我用這個來表達我的榮譽論文,爲此我想知道任何話語的前10種解釋。C#system.speech.recognition替代詞

一個非常類似的,如果沒有確切的問題是問在2011年: C# system.speech.recognition alternates

但從來沒有回答。因此,我的問題是:如何使用Microsoft.Speech API獲得對口述解釋的替代方案?

回答

1

This MSDN page處理你很好地問。作爲參考,我將發佈包含的代碼。 for循環最後就是包含

// Handle the SpeechRecognized event. 
void SpeechRecognizedHandler(object sender, SpeechRecognizedEventArgs e) 
{ 
    //... Code handling the result 

    // Display the recognition alternates for the result. 
    foreach (RecognizedPhrase phrase in e.Result.Alternates) 
    { 
    Console.WriteLine(" alt({0}) {1}", phrase.Confidence, phrase.Text); 
    } 
} 

採用e.Result.Alternates是獲得其他可能的字的官方途徑。

如果這不會給您足夠的結果,this MSDN page會爲您提供所需的信息。您需要在SpeechRecognitionEngine上使用UpdateRecognizerSetting來更改置信度拒絕級別。將其設置爲0將使得每個結果都顯示在Alternates中,以及可以排序以獲得前10位的置信度。

+0

請記住,置信度與「正確性」僅鬆散相關。我建立了一個系統,在識別過程中突出顯示低信度的單詞,只是發現有很多低信度的單詞是正確的,更糟糕​​的是,有相當多的高信心單詞是不正確的。我最終放棄了這個項目,因爲它給了用戶一種虛假的安全感。 –