Может быть, вы хотите использовать .net System.Speech имен вместо SAPI? Существует очень хорошая статья, которая была опубликована несколько лет назад в http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. Это, наверное, лучшая вступительная статья, которую я нашел до сих пор. Это немного устарело, но очень helfpul. (Метод AppendResultKeyValue был удален после бета-тестирования.)
Вы пытаетесь использовать общий распознаватель? Возможно, поэтому вы видите команды. У вас есть конкретная задача для распознавания? В этом случае вам будет лучше обслуживаться специальная грамматика и распознаватель inproc.
Если вам нужно обрабатывать любые слова, используйте DictationGrammar, который поставляется с System.Speech. См. http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx
Для удовольствия я взломал простейшее приложение форм Windows .NET, чтобы использовать грамматику диктовки, о которой я мог думать. Я создал форму. Бросил на него кнопку и сделал кнопку большой. Добавлена ссылка на System.Speech и линии:
using System.Speech.Recognition;
Затем я добавил следующий обработчик событий Button1:
private void button1_Click(object sender, EventArgs e)
{
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
Grammar dictationGrammar = new DictationGrammar();
recognizer.LoadGrammar(dictationGrammar);
try
{
button1.Text = "Speak Now";
recognizer.SetInputToDefaultAudioDevice();
RecognitionResult result = recognizer.Recognize();
button1.Text = result.Text;
}
catch (InvalidOperationException exception)
{
button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message);
}
finally
{
recognizer.UnloadAllGrammars();
}
}
Спасибо Майкл. Мне нужно узнать каждое слово. Все примеры в ссылке, которую вы дали, касаются создания команд на самом деле. Как я могу получить все? – Kaan
Если вы используете распознаватель рабочего стола (который поставляется в Windows Vista и 7), он поставляется со встроенной грамматикой диктовки. См. Http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx –
Я обновил ответ, чтобы включить пример использования DictationGrammar. –