C# 来自文件的windows语音识别(SAPI)的质量

C# 来自文件的windows语音识别(SAPI)的质量,c#,c++,audio,sapi,C#,C++,Audio,Sapi,我正在尝试对音频流输入(通过UDP)执行语音识别。我正在使用Microsoft语音识别(SAPI)。当我用麦克风测试语音识别时,我得到了很好的质量(C#和C++)。然而,一旦这些信息来自WAV文件(或者来自UDP流的内存缓冲区),识别率就会急剧下降。我试着用audacity的44100Hz保存文件,还用C#编写了自己的代码来编写WAV文件。当然,我使用完全相同的麦克风,文件中的声音听起来很好 SAPI是否可以使用不同型号的话筒输入和文件输入?有没有人遇到过这个问题(有什么解决办法) 下面是我的C

我正在尝试对音频流输入(通过UDP)执行语音识别。我正在使用Microsoft语音识别(SAPI)。当我用麦克风测试语音识别时,我得到了很好的质量(C#和C++)。然而,一旦这些信息来自WAV文件(或者来自UDP流的内存缓冲区),识别率就会急剧下降。我试着用audacity的44100Hz保存文件,还用C#编写了自己的代码来编写WAV文件。当然,我使用完全相同的麦克风,文件中的声音听起来很好

SAPI是否可以使用不同型号的话筒输入和文件输入?有没有人遇到过这个问题(有什么解决办法)

下面是我的C#代码(尽管我在C++中遇到了完全相同的问题)


SpeechRecognitionEngine识别器=新建SpeechRecognitionEngine();
语法听写语法=新听写语法();
LoadGrammar(听写语法);
SetInputToWaveFile(“c:\path\to\file.wav”);
识别结果=识别器。识别();
text1.Text=结果.Text;

不知道为什么,但它帮助我将文件的振幅降低了10倍(使用的代码)


也许,当SAPI收听话筒时,它使用的音量会减小,因此在加载wav文件时也需要对其进行模拟。

而否决票的原因是?这不是型号本身,但话筒的音频输入对象(假设您使用的是Windows 7或更高版本)会进行一些文件输入时不会发生的处理。谢谢Eric,它完成了哪种类型的处理(可能除了减少体积)?我想自己应用此处理。我不确定我可以在不违反NDA的情况下披露多少信息。