声音更自然的 pyttsx3 替代方案
pyttsx3 是 Python 经典的离线文字转语音库:它驱动操作系统的语音引擎,Windows 上是 SAPI5,macOS 上是系统声音,Linux 上是 eSpeak。几秒就能装好,到处都能跑,但声音很机械,而且你的程序在每台机器上听起来都不一样。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
SuperClonica 同样离线运行,但使用神经网络模型:在 Windows、Linux 和 macOS 上听起来完全一致的自然声音,外加角色声音和用你自己的录音训练的声音。本页诚实比较两者。
两种离线方式
一个借用系统的声音,另一个自带声音。
- pyttsx3:极小、即开即用,使用系统已安装的声音;声音机械,且因平台而异。
- SuperClonica:约 385 MB 的神经网络模型,只需下载一次;声音自然,到处一致。
- 两者都无需联网。
- SuperClonica 的声音支持 31 种语言,暂不支持中文。
何时 pyttsx3 是合适的工具
对于简短提示、低配硬件上的无障碍功能,或必须无需下载即刻启动的脚本,pyttsx3 更轻量、更简单,SuperClonica 并不打算取代它。
何时 SuperClonica 更合适
同样的文字、声音和 seed 总是得到同样的音频,而 pyttsx3 无法在不同机器上保证这一点。
- 你的程序会被用户听到,需要听起来自然。
- 必须在任何操作系统和机器上听起来一致。
- 想要角色声音、品牌声音或自己训练的声音。
- 不只是朗读,还要为视频、课程或游戏保存音频文件。
几行代码完成切换
用 python -m pip install superclonica-cpu 安装引擎。在代码中调用 pyttsx3 朗读或保存文字的地方,先执行 from superclonica import Superclonica,只创建一次引擎(tts = Superclonica()),再写 audio, rate = tts.synthesize(text, voice="F1", lang="en"); tts.save("hello.wav", audio)。可以用任何音频库播放文件,或直接保存。加载引擎需要几秒,之后每句不到一秒。切换之前,可以在声音页面用 30 到 100 个字符的句子免费试听,无需账号。
费用
引擎和模型自带的十个标准声音免费,目录中也有几个免费声音。其他声音一次购买,永久归你。它比 pyttsx3 占用更多内存和处理器时间,但不需要显卡,首次下载后也不需要联网。