2009-06-29 3 views
2

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

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

  1. Открыть панель управления, найти «речь», а затем нажать «Начать распознавание речи».
  2. Открыть Visual C#, создать новый проект Windows Forms
  3. Скопируйте и вставьте код от the first answer on this Stack Overflow question в проект.
  4. Добавьте необходимую ссылку на System.Speech.
  5. Запустите программу, при которой апплет распознавания речи все еще работает.
  6. Скажите «Начать прослушивание».
  7. Say число между 1 и 100.

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

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

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

+0

ты поставил точку останова на callback обратного вызова, чтобы узнать, вызвано ли это вызовом/ – chollida

ответ

0

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

2

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

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

+0

Да, я связал событие. Конечно, я попытался установить точку останова; код в Form1_Load запускается. Вы говорите: «все в порядке» - вы пробовали распознавание речи и действительно ли это узнали номера для вас? – Timwi

+0

Да; Я сказал «шестьдесят пять», и «65» появились. –

0

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

Смежные вопросы