C# System.Speech.Recognition是否使用;言语训练;?

C# System.Speech.Recognition是否使用;言语训练;?,c#,.net,speech-recognition,system.speech.recognition,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; rec

我有一些来自
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时,我会在
“控制面板”->“语音识别”->“培训您的计算机以更好地理解您”
中进行语音培训

我的程序是否自动利用已完成的任何培训? 培训收益是基于用户还是基于机器?
这些语音“配置文件”可以(轻松)移动吗

是的,虽然可能没有必要训练它,但它是可以做到的:,而且。

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

请记住,Windows客户端语音识别API(System.speech)和服务器语音识别API(Microsoft.speech)之间的一个关键区别是,服务器API是多用户的,不能进行培训(想想语音自动电话系统,你不可能为每个来电者进行培训)。如果你好奇的话,这个问题可能会有帮助-

是的,培训(尤其是听写)是有用的。通过训练,准确率可以提高20-50%。(如果用户有口音,尤其如此。)

培训福利按用户计算


微软有一个复制语音文件的工具,但它是为旧版本的SR引擎(XP时代)而构建的,据我所知,微软没有人愿意更新它或在更新的SR引擎上证明它。如果你想试试,Bing代表“Speech Profile Manager”,它会立即弹出。

谢谢David,我知道它不需要经过培训就可以作为代码功能使用。我基本上想知道是否值得告诉人们训练他们的Windows7,因为这将使上述代码工作得更好?如果这是真的,那么这种好处是基于登录用户还是基于机器。在大多数情况下,不是。如果几乎所有的东西都被认可,培训只会略微提高性能。