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

How can I use the pyttsx3 library to save to a file?

我想使用 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()

一切正常。

我希望代码的顶部位输出到一个文件,相反,它什么也没做。 我是运行windows10,最新更新。 Python 3.7.4 32 位和 pyttsx3 版本 2.71 感谢您的帮助!

哦,还有一件事,我知道 save_to_file 的输出很可能不是 mp3,但我不知道它会是什么,下一步我需要它在 mp3 中,所以这就是我所说的。如果我尝试将文件扩展名设置为其他名称,它运行起来是一样的。

save_to_file 是 pyttsx3.engine.Engine class 中的函数之一 但是它还没有经过测试并且不提供输出。如果你从 python 命令行 运行 它会给你属性错误,说 str object has not attribute proxy.

这是由于 ivar self.proxy 中的 driverProxy 造成的,我认为到目前为止任何 driverName 都无法解决它,因为这实际上是在调用 waekref.proxy,我认为这就是原因 save_to_file 从未像其他函数那样在文档中提及。

我已将此错误发布到 github 并等待 answer.lets 等到那时:-)