我正在尝试使用pyttsx3模块在python中创建虚拟助手。问题在于,我使用pyttsx3的语音(音频)方法只能讲话一次,即使我不得不多次讲话,在执行第一个命令后它仍然保持沉默。
事实是,我一直在互联网上浏览,似乎没有人遇到与我所遇到的问题类似的问题,而且我有点发疯了。我已经看到模块未正确安装或某种东西是否出现问题,但似乎一切正常。我正在使用Python 3.7版本,Pycharm IDE,Pyttsx3最新版本和Windows10。
我附上了代码,看看您是否知道为什么。我已经搜索了互联网,但似乎没有人遇到这个问题,因此我想这可能是我的代码中有一些错误。输出为计算机:您好,先生,我是您的数字助手LARVIS,贾维斯夫人!答案也应该打印下一行:
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[len(voices) - 2].id)
def speak(audio):
print('Computer: ' + audio)
engine.say(audio)
engine.runAndWait()
if __name__ == '__main__':
speak('Hello Sir, I am your digital assistant LARVIS the Lady Jarvis!')
speak('How may I help you?')
答案 0 :(得分:0)
我也遇到了这个问题(也正在运行python 3.7)。这不是最好的实现,但是如果我将引擎初始化放在我的语音函数中,那么我的工作就可以了,这样每次说话时它都会重新初始化。
答案 1 :(得分:0)
我认为您应该使用pip install pyaudio安装pyaudio模块。我遇到了类似的问题,但是在安装pyaudio模块后它工作正常。
答案 2 :(得分:0)
要解决此问题:
课程:
import pyttsx3
class _TTS:
engine = None
rate = None
def __init__(self):
self.engine = pyttsx3.init()
def start(self,text_):
self.engine.say(text_)
self.engine.runAndWait()
实例:
tts = _TTS()
tts.start("text")
del(tts)