这是我在语音机器人程序中使用的文本到语音代码:
import tts.sapi
voice = tts.sapi.Sapi()
def say(text):
voice.say(text)
它工作得很好,但问题是如果需要的话,我希望能够中断功能。我的意思是能够在它说话的时候执行其他命令(比如说"停止说话"(。
由于say((函数只是一个命令,我无法使它工作。然而,当我在C#中使用一个名为speakAsync((的方法执行语音机器人时,我可以做到这一点。tts.sapi库中有这样的方法吗?还是使用Sapi win32com?谢谢
使用tts.sapi包装器,您需要设置一个事件循环和事件兴趣(这样sapi就会回电(。相反,您可能需要查看pyttsx包。它似乎支持异步讲话。