来自wav文件的语音c#

时间:2014-09-18 16:33:07

标签: c# audio

我有一些使用整数的wav文件。我需要检测这些单个整数并转换为字符串。你可以从下载mp3文件: here

使用Microsoft SpeechRecognitionEngine,我几乎无法从任何wav文件中检测到整数。

这是SRE设置:

sre.SetInputToWaveFile("D:\\Speeches\\Best3.wav");
sre.BabbleTimeout = new TimeSpan(Int32.MaxValue);
sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue);
sre.EndSilenceTimeout = new TimeSpan(100000000);
sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000);

1 个答案:

答案 0 :(得分:0)

我认为你的一些超时值是极端的,但我能够得到各种wav文件来解析这样的代码:

using System;
using System.Speech.Recognition;

namespace SR
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var sre = new SpeechRecognitionEngine())
            {
                sre.SetInputToWaveFile(@"D:\test.wav");
                sre.LoadGrammar(new DictationGrammar());

                sre.BabbleTimeout = new TimeSpan(Int32.MaxValue);
                sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue);
                sre.EndSilenceTimeout = new TimeSpan(100000000);
                sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000);

                var result = sre.Recognize();
                Console.WriteLine(result.Text);
            }

            Console.ReadLine();

        }
    }
}

您需要致电LoadGrammar()。可能有比DictationGrammar更好的选择,但它适用于我的样本。

您还需要检查result null,因为如果识别失败,将会是这样。