Отключить встроенные команды распознавания речи? - PullRequest
10 голосов
/ 01 февраля 2011

Я пытаюсь создать программное обеспечение, которое интерпретирует различные текстовые команды, все по-своему.Я использую System.Speech.Recognition, и он работает на удивление хорошо, но я не могу понять, как обойти тот факт, что всякий раз, когда я говорю «Удалить», «Закрыть», «Исправить» и т. Д., Я получаю значение по умолчаниюWindows (7) реализация.Есть ли способ обойти это с System.Speech.Recognition?Если нет, какую библиотеку C # .NET вы бы порекомендовали больше всего?

1 Ответ

12 голосов
/ 01 февраля 2011

Используйте SpeechRecognitionEngine вместо SpeechRecognizer.
Попробуйте это:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Speech.Recognition;
namespace speech
{
class Program
{
    static void Main(string[] args)
    {
        SpeechRecognitionEngine mynizer = new SpeechRecognitionEngine();

        GrammarBuilder builder = new GrammarBuilder();
        builder.AppendDictation();
        Grammar mygram = new Grammar(builder);
        mynizer.SetInputToDefaultAudioDevice();
        mynizer.LoadGrammar(mygram);
        while (true)
        {
            Console.WriteLine(mynizer.Recognize().Text);
        }
    }

}
}
...