我正在尝试对音频流输入(通过UDP)执行语音识别。我正在使用Microsoft语音识别(SAPI)。当我使用麦克风测试语音识别时,我获得了良好的质量(包括C#和C ++)。但是,一旦此信息来自WAV文件(或来自我的UDP流的内存缓冲区),识别率就会急剧下降。我尝试以44100Hz的大胆保存文件,并在C#中编写自己的代码来编写WAV文件。当然,我使用完全相同的麦克风,声音在文件中也很好。
SAPI可以使用不同型号的麦克风输入和文件输入吗?有没有人遇到过这个问题(并且有任何解决方案)?
下面是我的C#代码(虽然我在C ++中遇到完全相同的问题)。
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
Grammar dictationGrammar = new DictationGrammar();
recognizer.LoadGrammar(dictationGrammar);
recognizer.SetInputToWaveFile("c:\path\to\file.wav");
RecognitionResult result = recognizer.Recognize();
text1.Text = result.Text;
答案 0 :(得分:1)
不知道为什么,但它帮助我减少了10倍的文件幅度(使用来自Reduce the volume of a Wav audio file using C的代码)。
也许,当SAPI收听麦克风时,它会使用减少的音量,因此在加载wav文件时也需要进行模拟。