Как я могу заставить Python tts.sapi говорить асинхронно? - PullRequest
0 голосов
/ 11 ноября 2018

Вот код преобразования текста в речь, который я использую в своей программе VoiceBot:

import tts.sapi

voice = tts.sapi.Sapi()

def say(text):
    voice.say(text)

Это прекрасно работает, но дело в том, что я хочу иметь возможность прерывать функцию при необходимости. Я имею в виду возможность выполнять другие команды во время разговора (например, сказать «перестань говорить»).

Поскольку функция say () - это всего лишь одна команда, мне не удается заставить ее работать. Тем не менее, я мог сделать это, когда сделал голосовой бот в C # с помощью метода speakAsync (). Есть ли такой метод в библиотеке tts.sapi? Или используя Sapi win32com? Спасибо

1 Ответ

0 голосов
/ 05 декабря 2018

Используя оболочку tts.sapi, вам нужно настроить цикл событий и интересы событий (чтобы SAPI перезвонил вам). Вместо этого вы можете посмотреть на пакет pyttsx . Похоже, для поддержки асинхронной речи.

...