C# system.speech.recognition альтернативных слов

В настоящее время я использую Microsoft.Speech API для диктовки высказываний в текст, но мне действительно нужны альтернативные диктовки, которые может использовать программа. Я использую это для своей дипломной работы, и для нее я хочу знать 10 лучших интерпретаций любого высказывания.

Очень похожий, если не точный вопрос был задан в 2011 году: C# system.speech.recognition alternates

Но так и не был дан ответ. Мой вопрос, таким образом, таков: как можно получить альтернативы интерпретации диктовки с использованием Microsoft.Speech API?

1 ответ

Решение

Эта страница MSDN прекрасно обрабатывает то, что вы спрашиваете. Для справки выложу включенный код. Последний цикл for - это то, что содержит

// Handle the SpeechRecognized event. 
void SpeechRecognizedHandler(object sender, SpeechRecognizedEventArgs e)
{
  //... Code handling the result

  // Display the recognition alternates for the result.
  foreach (RecognizedPhrase phrase in e.Result.Alternates)
  {
    Console.WriteLine(" alt({0}) {1}", phrase.Confidence, phrase.Text);
  }
}

Использование e.Result.Alternates это официальный способ получить другие возможные слова.

Если это не дает вам достаточно результатов, эта страница MSDN предоставляет вам необходимую информацию. Вам нужно использовать UpdateRecognizerSetting на ваше SpeechRecognitionEngine изменить уровень отказа доверия. Установка его в 0 приведет к отображению каждого результата в Alternates наряду с уровнями доверия, которые вы можете отсортировать, чтобы получить топ-10.

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