Isma Tipu Ответов: 1

Вызовите speechrecognizerengine, чтобы остановить метод speak() в C#


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

Что я уже пробовал:

speakasync() не будет работать, я уже пробовал

gggustafson

Используете ли вы отдельные потоки: один для чтения ваших писем, другой для распознавания "стоп"?

1 Ответов

Рейтинг:
1

ChrisHD22

Я рекомендую создать еще один объект распознавателя, который всегда активен, и он будет распознавать только ваш объект. stop или continue speaking слова.

То stopRecognizer затем следует остановить главный.

Вот пример кода:

private SpeechRecognitionEngine stopListener = new SpeechRecognitionEngine(new CultureInfo("en-US"));

private SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine(new CultureInfo("en-US"));

private SpeechSynthesizer speaker = new SpeechSynthesizer();


В случае stopListener вы должны сделать SpeechSynthesizer перестань говорить.