System.Speech.Recognition是否使用“语音训练”?

时间:2013-03-06 22:02:48

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

我有一些来自System.Speech.Recognition的简单代码可以正常工作:

using (var recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
    recognizer.LoadGrammar(new DictationGrammar());
    recognizer.SpeechRecognized += recognizer_SpeechRecognized;
    recognizer.SetInputToDefaultAudioDevice();
    recognizer.RecognizeAsync(RecognizeMode.Multiple);
}

private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    textBox1.Text = "Recognized text: " + e.Result.Text;
}

使用Windows 7时,我会在"Control Panel" -> "Speech Recognition" -> "Train your computer to better understand you"进行语音培训。

我的程序是否自动使用已完成的任何培训? 培训的好处是基于用户还是机器? 这些语音“简介”可以(轻松)移动吗?

3 个答案:

答案 0 :(得分:2)

是的,培训(尤其是听写)很有用。通过培训,准确度可提高20-50%。 (如果用户有重音,则尤其如此。)

培训的好处是每个用户。

微软有一个复制语音配置文件的工具,但它是为旧版本的SR引擎(XP时代)而构建的,据我所知,微软的任何人都不愿意更新或担保它。较新的SR引擎。如果您想尝试一下,请选择Bing for“Speech Profile Manager”,它会立即弹出。

答案 1 :(得分:1)

是的,似乎虽然可能没有必要对其进行培训,但可以完成:this sitethis site

答案 2 :(得分:0)

我认为当你使用听写语法时,训练会有所帮助。如果您使用的是更有限的应用语法,那么培训的价值就会降低。

请记住,Windows客户端语音识别API(System.Speech)与服务器语音识别API(Microsoft.speech)之间的主要区别之一是服务器API旨在成为多用户且无法接受培训(想想语音自动电话系统,你无法为每个来电者进行培训)。如果您感到好奇,这个问题可能会有所帮助 - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?