Полностью близкий распознаватель речи - PullRequest
0 голосов
/ 18 февраля 2012

Мне нужно использовать распознавание речи для просмотра файлов, используя команду «показать номера».Я хочу, чтобы Speech Recognizer запускался при открытии диалогового окна браузера папок, а когда закрывается диалоговое окно браузера, я хочу, чтобы Speech Recognizer закрывался.Как я могу полностью закрыть распознаватель речи с использованием C # в выделенном коде?

РЕДАКТИРОВАТЬ: я нашел "уродливое" решение для моей проблемы: убить sapisvr.exe

Ответы [ 3 ]

0 голосов
/ 28 марта 2012

Другой вариант - использовать inproc SpeechRecognitionEngine.

Создайте движок и загрузите соответствующую грамматику (даже если это просто грамматика диктовки), а затем вызовите Recognize (), пока диалог браузера файлов

Примерно так (spitballing, не копируется из VS):

// This goes in your application initialization code
var engine = new SpeechRecognitionEngine();
// Set event handlers here...
// Load grammar here...

// This goes in your code where you open the dialog and want
// speech recognition
while (isFileDialogOpen) {
    engine.Recognize(); // It's probably not called 'engine' in your code ;)
}

Если вы хотите сделать только одно и только одно распознавание, вы можете пропустить цикл while иПозвони Признать голых, но я бы не советовал, если в комнате совершенно тихо и ты не бормочешь себя.

0 голосов
/ 09 января 2017

Вот что я использовал:

Process[] processes = Process.GetProcessesByName("sapisvr");
foreach (var process in processes)
    {
        process.Kill();
    }
0 голосов
/ 05 марта 2012

Почему вы хотите полностью закрыть WSR? Требуется много времени для запуска и выключения. Можно заставить WSR перестать слушать, создав CoCreate для общего экземпляра распознавателя (CLSID_SpSharedRecognizer), а затем установив состояние распознавателя в SPRST_INACTIVE. Это намного быстрее.

...