2013-06-22 51 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

请记住,置信度与“正确性”仅松散相关。我建立了一个系统,在识别过程中突出显示低信度的单词,只是发现有很多低信度的单词是正确的,更糟糕​​的是,有相当多的高信心单词是不正确的。我最终放弃了这个项目,因为它给了用户一种虚假的安全感。 –