2010-09-04 2 views

ответ

1

Используйте пространство имен System.Speech.Recognition. Мало смысла бороться с интерфейсами SAPI COM, класс SpeechRecognizer позволяет делать все, что вы можете сделать в SAPI. Направьте свой браузер на темы библиотеки MSDN для этого пространства имен, вы найдете множество примеров.

+0

На самом деле класс распознавания речи не делает все, что делают библиотеки COM. Вопреки тому, что говорит Microsoft! Я согласен с тем, что библиотеки COM бесполезны, но иногда вам нужно вникать в них, чтобы делать то, что не отображается в порту .NET. –

1

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

Чтобы обойти это, я использую как SAPI (SpeechLib), так и System.Speech.Recognition вместе. Я заметил, что общий распознаватель следует за шаблоном проектирования singleton, что означает, что если он уже открыт, вы получаете ссылку на существующий экземпляр SAPI, а затем создаете новый.

Это означает, что у меня может быть ссылка SAPI, хотя библиотека system.speech.recognition и SpeechLib.dll.

(Вы получаете лучшее из обоих)

Киран;)

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