5

我有一些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".

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

4

3 回答 3

2

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

培训收益是按用户计算的。

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

于 2013-04-02T00:33:21.303 回答
1

是的,看起来虽然可能没有必要对其进行培训,但可以做到:this sitethis site

于 2013-03-06T22:07:22.387 回答
0

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

请记住,Windows 客户端语音识别 API (System.Speech) 和服务器语音识别 API (Microsoft.speech) 之间的主要区别之一是服务器 API 旨在用于多用户并且无法训练(想想语音自动电话系统,您无法为每个呼叫者进行培训)。如果您好奇,这个 SO 问题可能会有所帮助 - System.Speech.Recognition 和 Microsoft.Speech.Recognition 有什么区别?

于 2013-03-07T18:51:46.977 回答