System.Speech.Recognition альтернативные соответствия и доверительные значения

Я использую пространство имен System.Speech.Recognition для распознавания произносимого предложения. Меня интересуют альтернативные предложения, которые предоставляет распознаватель, наряду с их оценками доверия. Из документации для свойства [RecognitionResult.Alternates][1]:

Признание Замены упорядочены по значениям их Уверенности свойства. Значение достоверности данной фразы указывает на вероятность того, что фраза соответствует введенному. Фраза с наивысшее доверительное значение - это фраза, которая, скорее всего, соответствует вход.

Каждое значение доверия должно оцениваться индивидуально и без ссылаясь на значения доверия других альтернатив.

Однако, когда я печатаю признанный текст с его уверенностью, а также альтернативные совпадения с их доверием, я сталкиваюсь с двумя свойствами, которые я не понимаю: во-первых, альтернативы не упорядочены в соответствии с уверенностью (хотя первая делает совпадают с признанным текстом), а во-вторых, что для меня большая проблема, признанный текст не является альтернативой с наивысшим результатом, что, по-видимому, противоречит приведенной выше документации.

Мой (неполный) пример кода из обработчика события SpeechRecognized:

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

и соответствующий вывод:

Recognized text =  She had said that fit and Gracie Wachtel are all year, score = 0.287724
alt(0.287724) She had said that fit and Gracie Wachtel are all year
alt(0.287724) she had said that fit and gracie wachtel are all year
alt(0.2955212) she had said that faith and gracie wachtel are all year
alt(0.287133) she had said that fit and gracie Wachtell are all year
alt(0.1644379) she had said that fit and gracie wachtel earlier
alt(0.3254312) jihad said that fit and gracie wachtel are all year
alt(0.2726361) she had said that fit and gracie wachtel are only are
alt(0.2867217) she had said that fail and gracie wachtel are all year
alt(0.2565451) she had said that fit and gracie watchful are all year
alt(0.2854537) she had said that fate and gracie wachtel are all year

РЕДАКТИРОВАТЬ Чтобы прояснить смысл оценки доверия и указать, почему мои результаты противоречат документации, см. следующую информацию из документации RecognizedPhrase.Confidence Property. Полужирным шрифтом является мое дополнение:

Показатели доверия не указывают на абсолютную вероятность того, что фраза была признана правильно. Вместо этого оценки доверия предоставляют механизм сравнения относительной точности множественного распознавания чередуется для заданного ввода. Это облегчает возврат большинства точный результат распознавания. Например, если распознанная фраза имеет доверительный балл 0,8, это не означает, что фраза имеет 80% вероятность правильного совпадения ввода. Это означает, что фраза, скорее всего, будет правильным совпадением для ввода, чем другое результаты с оценкой достоверности менее 0,8.

Оценка доверия сама по себе не имеет смысла, если у вас нет альтернативные результаты для сравнения, либо из того же операции распознавания или предыдущих распознаваний того же входа. Значения используются для ранжирования альтернативных кандидатских фраз, возвращаемых свойство Alternates в объектах RecognitionResult.

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

Механизм распознавания речи может присваивать низкий коэффициент доверия разговорный ввод по разным причинам, включая фоновые помехи, невнятная речь или непредвиденные слова или последовательности слов. Если ваш приложение использует экземпляр SpeechRecognitionEngine, вы можете изменить уровень достоверности, на котором принимается речевой ввод или отклонен одним из методов UpdateRecognizerSetting. уверенность пороги для общего распознавателя, управляемые SpeechRecognizer, являются связанные с профилем пользователя и хранящиеся в реестре Windows. Приложения не должны записывать изменения в реестр для свойства общего распознавателя.

Свойство Alternates объекта RecognitionResult содержит упорядоченный набор объектов RecognizedPhrase, каждый из которых является возможное совпадение ввода с распознающим устройством. Альтернативы упорядочен с наивысшей до наименьшей уверенности.

Ответ 1

Я могу дать вам общий ответ (я не знаю код распознавания речи Microsoft) Признание использует множество алгоритмов для достижения наилучшего решения. В идеальном мире каждый алгоритм должен иметь возможность взвешивать доверительную оценку приложенного предложения. На самом деле это почти никогда не бывает:

Каждый алгоритм является ошибочным, и его точное влияние на доверие к конверсии может быть настоящей головной болью.

Глобальная уверенность в предложениях является арифметической комбинацией каждой ее части. Вообще гораздо проще, чем внутренняя схема доверия.

Некоторые используемые алгоритмы, такие как распознавание правильных имен, необязательно явно меняют доверие (в частности, в одном изолированном предложении).

Уверенность измеряется на многих уровнях (голос, слова, структура предложения...). Какова будет уверенность в идеальном распознавании голоса с непоследовательной структурой предложения?

Алгоритмы сортировки, перемещающие лучшее распознавание в верхней части списка, обычно не изменяют уверенность, а только сортируют/исключают альтернативы.

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

Каково потенциальное использование доверия (за исключением того факта, который авторы хотят сказать нам: мы можем легко использовать очень сложную и приблизительную технологию). Почти нет. Вы можете устранить слишком низкие уровни достоверности (ниже определенного порога), за исключением случаев, когда доверие не достигнет этого порога.

Ответ 2

Доверительное свойство здесь - это " likelihood" выходное значение из внутренней модели (обычно моделирование языка выполняется составлением "математического интеллекта" модели ", например Скрытые марковские модели или MFCC).

НО SDK Recognition SDK представляет вам список, основанный на другой уверенности, основанный на выводе моделей и проверке других дополнительных параметров. Для этого SDK соблюдение хорошо сформированного правила в его грамматике.