语音识别应用程序在c#.net中

时间:2014-02-24 07:31:39

标签: c# .net-3.5 speech-recognition

我需要开发语音识别应用程序,将电话录制的音频转换为文本,我使用的是Microsoft语音API 5.1。

我不应该使用任何选择,所以我使用的是听写语法课。我没有达到100%的准确率。

请帮助我达到100%的准确性,如果有任何第三方工具可用,意味着它也是受欢迎的。

开发环境:windows xp,.Net Framework 3.5,C#。

这里是我的代码:

 class Program
 {
    static void Main(string[] args)
    {
        SpeechRecognitionEngine recognizer =new SpeechRecognitionEngine()
        // Create and load a dictation grammar.
        recognizer.LoadGrammar(new DictationGrammar());
        recognizer.MaxAlternates = 5;

        // Add a handler for the speech recognized event.
        recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
        //Configure input to the speech recognizer.

        recognizer.SetInputToWaveFile("Record_210114090634.wav");

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

   }   

   static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        Console.WriteLine(e.Result.Text);
    }
}

1 个答案:

答案 0 :(得分:1)

无论您做什么,SAPI 5.1中的听写识别引擎都无法识别电话质量(8 KHz 8位)音频。对于任何合理的错误率,它需要22KHz的16位音频。

即使这样,SAPI 5.1听写引擎需要依赖于说话者的培训,即使对于不重音的美国英语也是如此。

即使是最新的SAPI 5.4 SR引擎也需要22KHz的16位音频,尽管它们可以更好地工作而无需训练无重音的声音。 (重音的声音仍然需要训练。)