【问题标题】:Does System.Speech.Recognition make use of "speech training"?System.Speech.Recognition 是否使用“语音训练”?
【发布时间】:2018-06-05 15:16:42
【问题描述】:

我有一些来自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" 进行语音训练。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      是的,看起来虽然可能不需要训练它,但可以做到:this sitethis site

      【讨论】:

      • 谢谢大卫,我知道它不需要经过培训就可以作为代码功能工作。我基本上想知道是否值得告诉人们训练他们的 Windows 7,因为它会使上述代码更好地工作?如果这是真的,那么这个好处是基于登录的用户还是机器。
      • 在大多数情况下,不会。如果几乎所有东西都被识别出来,那么培训只会略微提高性能。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-04-04
        • 1970-01-01
        • 2021-08-08
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 2016-09-16
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多