我想使用pyttsx3将文本离线转换为语音,并且希望将输出保存到音频文件中。
我已经看到this个问题,第一个答案正是我所需要的。我只是无法使其正常工作。
运行时:
import pyttsx3
tts = pyttsx3.init()
tts.setProperty('voice', tts.getProperty('voice')[1])
tts.save_to_file("What an amazing day today! I'm gonna go for a swim.", "./filename.mp3")
tts.runAndWait()
它没有给我一个错误,它只是不输出任何内容并且不创建文件。 我的其余可能应该是正确的,因为如果这样做:
import pyttsx3
tts = pyttsx3.init()
tts.setProperty('voice', tts.getProperty('voice')[1])
tts.say("What an amazing day today! I'm gonna go for a swim.")
tts.runAndWait()
一切正常。
我希望代码的最高位可以输出到文件,相反,它什么也不做。 我正在运行Windows 10,最新更新。 Python 3.7.4 32位和pyttsx3版本2.71 谢谢您的帮助!
哦,还有一件事,我知道save_to_file的输出很可能不是mp3,但是我不知道它是什么,下一步我需要在mp3中使用它,所以我称之为它。如果我尝试将文件扩展名设置为其他文件扩展名,则其运行方式相同。
答案 0 :(得分:0)
save_to_file是pyttsx3.engine.Engine类中的功能之一 但是它尚未经过测试,无法提供输出。如果您是从python命令行运行的,则会出现Attribute错误,提示str对象没有属性代理。
这是由于ivar self.proxy中的driverProxy引起的,我认为到目前为止,没有任何driverName可以解析它,因为这实际上是在调用waekref.proxy,而且我认为这就是在诸如此类的文档中从未提及过save_to_file的原因其他功能。
我已将此错误发布到github并等待答案。请等到那时:-)