Заставить распознавание речи в C # распознавать слова из заданного словаря в непрерывной речи - PullRequest
0 голосов
/ 04 декабря 2018

Я хотел бы использовать распознавание речи в своем приложении C #, но то, что я пробовал, пока не оправдало моих ожиданий.Что мне нужно, так это способ распознать слова (или, может быть, очень короткие фразы) из непрерывной речи без разрывов между каждым словом.Я также работаю с довольно ограниченным словарным запасом и поэтому хотел бы ограничить параметры для распознанных слов теми, которые указаны мной.

До сих пор я пытался работать со встроенным System.Speech.Recognition API.Без указания словарного запаса я смог распознать мой голос, но транскрипция была недостаточно точной для моих целей, и мне было бы легче в дальнейшей обработке, если бы я мог ограничить словарный запас.

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

Я также нашел метод PauseRecognizerOnRecognition, который, кажется, похож на то, что я ищу.Но, похоже, это работает только для SpeechRecognizer, а не SpeechRecognitionEngine.Тем не менее, для моих нужд всплывающие окна и звуки, создаваемые при использовании SpeechRecognizer, нежелательны, и я все равно не смог заставить его работать должным образом (возможно, я не попробовал достаточно, поскольку в конце концов сдался, потому что это, вероятно, не будетв любом случае, для меня это подходящее решение).

То, что я ищу, это либо способ заставить эту работу работать в библиотеке по умолчанию System.Speech, либо найти какой-нибудь API, который сможет этого добиться при работе в автономном режиме и желательнобудучи свободным.

Я действительно искал решения и пытался заставить это работать, но в настоящее время я в растерянности относительно того, что делать в настоящее время, кажется, ничто не соответствует моим ожиданиям.Надеюсь, кто-нибудь может придумать лучшее решение этой проблемы.

РЕДАКТИРОВАТЬ: После того, как я отказался из-за невозможности найти решение, я теперь снова активно ищу решение.Мне удалось продвинуться немного дальше, используя встроенную в Windows систему распознавания речи с использованием метода Append в GrammarBuilder.Благодаря этому теперь я могу распознать несколько фраз, следующих друг за другом.Одна из моих проблем с этим подходом заключается в том, что в зависимости от начала инструкции я могу ожидать, что за ней последует разное количество фраз.Единственным решением здесь было бы добавить все возможные фразы, а также их варианты с дополнительными частями в конце.Это было бы не только утомительно, но, вероятно, очень неэффективно.В моем случае использования фразы, которые я ожидаю следовать, отличаются в зависимости от того, что им предшествует.К сожалению, кажется, нет никакого способа распознать фразы достаточно быстро, чтобы можно было сказать, какие фразы ожидать позже, и я не нашел способа буферизовать ввод, ожидающий распознавания первой части, и обработать следующуюосновываясь на том, что сказано в первом.Я открыт для любых решений, включая использование других API.

...