我正在做人工智能研究。我一直在使用 pyttsx3 进行语音。 pyttsx3 函数不会产生视位。它确实为每个单词产生有限的时间。我打算制作一个函数来接收文本,然后生成头像动画的视位。问题在于数据被困在引擎中。我想将音频保存到文件中,然后加载并提取它。问题在于 save_to_file 似乎是一个虚拟函数。我花了几天时间研究它,我得到的最好的文件是 0(零)字节的文件。这是怎么回事?
我也遇到了同样的问题,那是因为我忘记了一件小事:
engine.save_to_file('hello', 'test.mp3')
它只是为了准备,要实现一切都使用代码:
import pyttsx3 as tts
engine=tts.init()
engine.save_to_file('hello', 'HelloSound.mp3')
engine.runAndWait() # implement everything
我在寻找同一问题的解决方案时遇到了这一点。 最终,我注意到这与文件名有关。当我选择文件名为“test.mp3”或“name.mp3”时,它保存正确,但如果我将名称更改为“text.mp3”或基本上其他任何名称,同时保持其他所有内容完全相同,它会产生大小为零字节的文件。 当我将其保存到不同的文件夹但名称相同时,例如'folder/test.mp3',那么它也失败了,大概是因为它是重要的完整绝对路径名。
我的黑客/解决方法是始终在同一目录中使用文件名“test.mp3”,然后使用 python 的 os 模块移动它或立即更改名称,例如:
engine.save_to_file(text, "test.mp3")
os.rename("test.mp3", "folder/nameIwanttogive.mp3")
所以“test.mp3”似乎对我有用。也许可以通过最初从网站复制并粘贴一些演示代码来看看效果如何。
我刚刚遇到了这个问题,似乎 pyttsx3 可能与 ffmpeg 不兼容。不确定是版本不兼容还是包管理器的问题。这是我解决问题的方法:
sudo snap remove ffmpeg
sudo apt install ffmpeg
我刚刚将我的 pyttsx3 更新到 2.90 并开始工作!只需重新安装即可! 尝试:
pip uninstall pyttsx3
然后比:
pip install pyttsx3