python - 如何使用 pyttsx3 库保存到文件?
问题描述
我想使用 pyttsx3 将文本离线转换为语音,并且我想将输出保存到音频文件中。
我已经看到了这个问题,第一个答案正是我所需要的。我只是无法让它发挥作用。
运行时:
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-bit 和 pyttsx3 2.71 版本 感谢您的帮助!
哦,还有一件事,我知道 save_to_file 的输出很可能不是 mp3,但我不知道它会是什么,我下一步需要它在 mp3 中,所以这就是我所说的。如果我尝试将文件扩展名设置为其他内容,它的运行方式相同。
解决方案
save_to_file 是 pyttsx3.engine.Engine 类中的函数之一,但是它尚未经过测试并且不提供输出。如果你从 python 命令行运行它,它会给你属性错误,说 str 对象没有属性代理。
这是由于 ivar self.proxy 中的 driverProxy 而我认为到目前为止没有任何 driverName 会解决它,因为这实际上是在调用 waekref.proxy,我认为这就是 save_to_file 在文档中从未像其他函数一样提及的原因。
我已将此错误发布到 github 并等待 answer.lets 等到那时:-)
推荐阅读
- c# - 如何从 HttpClientHandler 实现 ServerCertificateCustomValidationCallback
- android - 谷歌游戏控制台
- jquery - 禁用/隐藏 iframe pdfviewer 中的打印和下载按钮
- django - 如何在 Django 中获取用户的活动历史记录?
- python - 如何在 Tkinter Python 中运行代码时更改图像
- apache-nifi - 如何使用 getsftp 从变量中的动态数量的服务器中提取?
- javascript - NodeJs AES 文件解密到流
- python - 在不删除 Python 数据的情况下清理时间序列异常值
- c# - 当我关闭 SqlConnection 时,它会从 SqlCommand 和 SqlDataReader 中释放资源吗?
- python - 如何加速 Keras model.predict?