Использует ли 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 ответа

Решение

Да, тренировка (особенно для диктовки) полезна. Точность может улучшиться на 20-50% с тренировкой. (Это особенно верно, если у пользователя есть акцент.)

Преимущества обучения для каждого пользователя.

У Microsoft есть инструмент, который копирует речевые профили, но он создан для более старой версии движка SR (эпоха XP), и, насколько мне известно, никто в Microsoft не хочет ни обновлять его, ни поручиться за него на более новых движках SR, Если вы хотите попробовать, Bing для "Диспетчер профилей речи", и он появится прямо вверх.

Да, похоже, что, возможно, нет необходимости обучать его, это можно сделать: этот сайт и этот сайт.

Я думаю, что когда вы используете грамматику Dictation, обучение будет полезно. Если вы используете более ограниченную грамматику приложения, обучение будет менее ценным.

Помните, что одно из ключевых отличий между API-интерфейсами распознавания речи клиента Windows (System.Speech) и API-интерфейсами распознавания речи сервера (Microsoft.speech) заключается в том, что серверные API-интерфейсы предназначены для многопользовательского использования и не могут быть обучены (например, голосовая связь). автоматизированные телефонные системы, вы не можете тренироваться для каждого абонента). Этот вопрос ТАК может быть полезен, если вам интересно: в чем разница между System.Speech.Recognition и Microsoft.Speech.Recognition?

Другие вопросы по тегам