2013-06-22 2 views
1

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

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

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

ответ

1

This MSDN page обрабатывает то, что вы просите довольно красиво. Для справки, я опубликую код, который вы включили. Окончательный цикл является то, что содержит

// 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 является официальным способом получить другие возможные слова.

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

+0

Помните, что уровни достоверности только слабо коррелируют с «правильностью». Я построил систему, которая выделяла слова с низким доверием в признании, только чтобы найти, что было много неверных слов, которые были правильными, и, что еще хуже, было довольно много недоверчивых слов, которые были неверными. Я закончил тем, что отказался от проекта, так как он дал пользователям ложное чувство безопасности. –