来自文件的窗口语音识别 (SAPI) 的质量

本文关键字:SAPI 语音识别 文件 窗口 | 更新日期: 2023-09-27 18:33:29

我正在尝试对音频流输入(通过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;

来自文件的窗口语音识别 (SAPI) 的质量

不知道为什么,但它对我将文件的振幅降低了 10 倍有很大帮助(使用代码来自使用 C 减小 Wav 音频文件的音量)。

也许,当SAPI收听麦克风时,它使用减小的音量,因此在加载wav文件时也需要模拟它。