如何使用pyttsx3库保存到文件?

时间:2019-09-26 09:08:29

标签: python windows pyttsx

我想使用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中使用它,所以我称之为它。如果我尝试将文件扩展名设置为其他文件扩展名,则其运行方式相同。

1 个答案:

答案 0 :(得分:0)

save_to_file是pyttsx3.engine.Engine类中的功能之一 但是它尚未经过测试,无法提供输出。如果您是从python命令行运行的,则会出现Attribute错误,提示str对象没有属性代理。

这是由于ivar self.proxy中的driverProxy引起的,我认为到目前为止,没有任何driverName可以解析它,因为这实际上是在调用waekref.proxy,而且我认为这就是在诸如此类的文档中从未提及过save_to_file的原因其他功能。

我已将此错误发布到github并等待答案。请等到那时:-)