Используйте распознавание речи из C #

2

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

Вот мои точные шаги. Скажите, пожалуйста, где я ошибаюсь.

  • Откройте панель управления, найдите "речь", затем нажмите "Запустить распознавание речи".
  • Откройте Visual С#, создайте новый проект Windows Forms
  • Скопируйте и вставьте код из первого ответа на этот вопрос о переполнении стека в проект.
  • Добавьте необходимую ссылку на System.Speech.
  • Запустите программу, пока апплет распознавания речи все еще работает.
  • Скажите "Начать прослушивание".
  • Произнесите число от 1 до 100.

Текст метки никогда не изменяется от значения по умолчанию ( "label1" ), поэтому кажется, что rec_SpeechRecognized() никогда не вызывается, то есть событие SpeechRecognized никогда не срабатывает. Если я скажу номер, который кажется несколько похожим на имя открытого окна или программы в моем стартовом меню, он спросит меня, это то, что я имел в виду. По-видимому, он полностью агностик пользовательской грамматики, которую я только что определил.

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

Что я делаю неправильно?

  • 0
    Вы поставили точку останова на обратный вызов распознавателя, чтобы увидеть, если он действительно вызывается /
Теги:
speech-recognition

3 ответа

0
Лучший ответ

Из-за отсутствия ответов я подозреваю, что это работает для всех, но не для меня. Таким образом, похоже, что ответ "это невозможно".

2

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

Как только я отредактировал конструктора, чтобы убедиться, что Form1_Load действительно вызван, он прошел нормально.

  • 0
    Да, я связал событие. Конечно, я пытался установить точку останова; код в Form1_Load действительно работает. Вы говорите «все прошло хорошо» - пробовали ли вы распознавание речи и распознавали ли вы цифры?
  • 0
    Ага; Я сказал «шестьдесят пять», и «65» появился.
0

Если вы читаете другие сообщения в том же потоке, есть один, который говорит, что вы должны добавить числа как один, два и т.д., а не 1, 2...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню