5

Это, наверное, простой вопрос, но я не мог найти окончательного ответа нигде.Использует ли этот код распознавания System.Speech.Recognition «речевое обучение»?

Предположим, у меня есть простой код из System.Speech.Recognition namespace, который отлично работает.

 using (
      var recognizer = 
       new SpeechRecognitionEngine(
        new CultureInfo("en-US"))) 
     { 
      // Create and load a dictation grammar. 
      recognizer.LoadGrammar(new DictationGrammar()); 

      recognizer.SpeechRecognized -= 
recognizer_SpeechRecognized; 

      // Add a handler for the speech recognized event. 
      recognizer.SpeechRecognized += 
       recognizer_SpeechRecognized; 

      // Configure input to the speech recognizer. 
      recognizer.SetInputToDefaultAudioDevice(); 

      // Start asynchronous, continuous speech recognition. 
      recognizer.RecognizeAsync(RecognizeMode.Multiple); 
     } 
    } 

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

Мои вопросы, при использовании Windows 7, и я сделать обучение речи доступной в «Панель управления» -> «Распознавание речи» -> «Поезд ваш компьютер, чтобы лучше понять вас», моя программа автоматически использовать любое обучение, которое было сделано?
Являются ли преимущества обучения основаны пользователем или машиной?
Могут ли эти речевые «профили» перемещаться (легко)?

ответ

1

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

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

У Microsoft есть инструмент, который копирует речевые профили, но он построен для более старой версии движка SR (XP-era), и, насколько я знаю, никто из Microsoft не желает либо обновлять его, либо поручиться за него на новых двигателях SR. Если вы хотите попробовать, Bing для «Speech Profile Manager», и он появится прямо вверх.

0

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

+1

Спасибо, Дэвид, я знаю, что его не нужно обучать работе как функции кода. Я в основном задаюсь вопросом, стоит ли рассказывать людям о тренировках Windows 7, так как это сделает код выше? И если это так, это преимущество на основе зарегистрированного пользователя или машины. – bulltorious

+0

В большинстве случаев нет. Если почти все будет признано, обучение будет лишь незначительно увеличивать производительность. –

0

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

Помните, что одним из ключевых отличий между API-интерфейсами распознавания речи Windows (System.Speech) и API-интерфейсов распознавания речи (Microsoft.speech) является то, что API-интерфейсы сервера предназначены для многопользовательского режима и не могут быть обучены (подумайте о голосовых автоматизированных телефонных системах, вы не можете тренироваться для каждого звонящего). Этот вопрос может быть полезен, если вам интересно - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?