关键要点
- 通过风格扩散和对抗训练生成听起来自然的语音,据其NeurIPS论文称,在标准单说话人基准测试中达到或超过人类录音水平。
- 代码许可证:MIT。预训练模型权重在README中携带独立的披露条件,并未编码在MIT许可证文本中。
- 通过LibriTTS多说话人检查点,从5到10秒的参考片段进行零样本风格迁移(建议15到30秒)。
- 官方推理需要GPL-3.0许可的espeak-ng;社区pip包避免了这一点,但其最新版本发布于2024年1月11日。
- 官方仓库自2024年3月7日起无提交记录;未被归档,GitHub星标超过6,300颗。
- 预训练检查点主要为英语;文本对齐器也曾在日语和中文语料库上训练,据称无需微调即可较好地泛化到其他语言。
📍 简单一句话
StyleTTS 2是哥伦比亚大学MIT许可的研究级文本转语音模型,通过风格扩散和对抗训练生成听起来自然的语音,其预训练权重存在文档层面的披露条件,自2024年3月7日起GitHub上无任何提交记录。
💬 简单来说
这是一个免费、可下载的AI模型,能将文字转换为听起来非常自然的语音,由大学研究人员而非企业创建——根据代码许可证,商业使用免费,但其自身说明要求你告知听众语音是合成的,而且似乎已经没有人在积极修复其中的问题了。
📌注: 该项目的一个GitHub issue(#37)指出,README中针对预训练模型的披露要求位于MIT许可证文件本身之外,一些读者认为这令人困惑。部署前请自行阅读LICENSE文件和README的模型使用部分——详见下方的许可证与成本部分。
历史:哥伦比亚大学的一个研究项目
StyleTTS 2由哥伦比亚大学电气工程系的研究人员开发——Yinghao Aaron Li、Cong Han、Vinay S. Raghavan、Gavin Mischler和Nima Mesgarani——并作为NeurIPS 2023论文发表,题为《StyleTTS 2: Towards Human-Level Text-to-Speech through Style Diffusion and Adversarial Training with Large Speech Language Models》。
论文的核心论点是,将风格扩散(将说话风格建模为潜在概率分布而非单一固定向量)与针对大型预训练语音语言模型的对抗训练相结合,能够比以往方法更准确地建模类人语音变化。 在单说话人基准LJSpeech上,论文报告称StyleTTS 2在听众评估中达到或超过了真实人类语音录音水平;在多说话人数据集LibriTTS上,报告称其在零样本说话人自适应方面超越了此前可用的公开模型。
公开GitHub仓库yl4579/StyleTTS2已积累超过6,300颗星标,且未被标记为已归档——但根据项目公开的提交历史,PromptQuorum发现该仓库主分支自2024年3月7日起没有任何提交。这与大学研究成果发布的模式相符,而非商业维护的开源产品:代码、论文和预训练检查点是伴随研究发布的,并没有持续的功能开发或错误修复发布承诺。
由开发者Sidharth Rajaram维护的社区pip包styletts2,将原始研究代码封装为可安装的包(pip install styletts2),用MIT许可的gruut库替代了GPL-3.0许可的espeak-ng音素化工具,以保持整个安装链采用宽松许可。其在PyPI上的最新版本为0.1.6,发布于2024年1月11日——截至本评测时,该版本也已超过两年半,是与哥伦比亚大学原始研究代码分离的独立第三方项目。
谁开发了StyleTTS 2?
StyleTTS 2由Yinghao Aaron Li、Cong Han、Vinay S. Raghavan、Gavin Mischler和Nima Mesgarani开发,他们均为哥伦比亚大学电气工程系的研究人员,并作为NeurIPS 2023论文发表。
StyleTTS 2的实际功能
StyleTTS 2是一个文本转语音模型,从输入文本生成梅尔频谱图(在其端到端配置中生成原始波形),使用扩散模型对潜在的"风格"向量进行采样,而非确定性地预测它——论文将这一机制归功于产生更自然、更接近人类的韵律。
- 用于自然韵律的风格扩散。 StyleTTS 2并非从文本预测单一固定的风格嵌入,而是通过扩散从学习到的风格概率分布中采样,据论文称,这比确定性方法产生了更自然的音调、节奏和重音变化。
- 针对语音语言模型的对抗训练。 训练过程将TTS模型与充当判别器的大型预训练语音语言模型(SLM)相对抗,论文将这一技术归功于缩小了在LJSpeech基准上与人类录音质量之间的剩余差距。
- 两个官方发布的预训练检查点。 StyleTTS2-LJSpeech(单一英语说话人,24kHz)和StyleTTS2-LibriTTS(多英语说话人)均托管在Hugging Face上。
- 从参考音频进行零样本风格迁移。 LibriTTS多说话人检查点可以用从参考音频片段中捕获的风格合成新文本——项目自身文档和第三方指南描述最低5到10秒即可,推荐使用15到30秒干净的单说话人参考音频,以获得准确的音色、韵律和发音。
- 预训练检查点主要为英语,并有一些多语言基础工作。 官方发布的检查点是在英语数据集(LJSpeech、LibriTTS)上训练的。论文指出,其文本对齐器组件也曾在日语(JVS)和中文(AiShell)语料库上预训练,并"无需微调即可在大多数其他语言上表现良好",还提到一个覆盖14种语言的多语言PL-BERT模型,可作为自行训练非英语StyleTTS 2模型的起点——但目前没有官方发布的、可直接使用的非英语检查点。
安装与运行StyleTTS 2:分步指南
本分步指南遵循项目自身文档中记录的、使用预训练检查点运行推理的配置流程。
- 1克隆仓库并安装依赖项。
Why it matters: 运行`git clone https://github.com/yl4579/StyleTTS2.git && cd StyleTTS2 && pip install -r requirements.txt`。这将安装项目自身requirements文件中列出的核心Python依赖项。 - 2安装音素化工具和espeak-ng。
Why it matters: 运行`pip install phonemizer`,在Linux上运行`sudo apt-get install espeak-ng`(或适用于你操作系统的等效命令)。请注意,espeak-ng本身采用GPL-3.0许可——查看下方许可证与成本部分了解这为何不仅关系到StyleTTS 2代码本身,也关系到推理路径。 - 3下载预训练检查点。
Why it matters: 从Hugging Face下载[StyleTTS2-LJSpeech](https://huggingface.co/yl4579/StyleTTS2-LJSpeech/tree/main)(单说话人)或[StyleTTS2-LibriTTS](https://huggingface.co/yl4579/StyleTTS2-LibriTTS/tree/main)(多说话人,支持风格迁移)到项目目录中。 - 4通过提供的笔记本运行推理。
Why it matters: 项目附带`Demo/Inference_LJSpeech.ipynb`和`Demo/Inference_LibriTTS.ipynb`——在Jupyter中打开与你下载的检查点匹配的那个,以加载模型并合成你的第一个样本。 - 5(替代方案)使用社区pip包实现更简单的、纯MIT的安装链。
Why it matters: 运行`pip install styletts2`,然后`from styletts2 import tts; my_tts = tts.StyleTTS2(); my_tts.inference("你好。", output_wav_file="test.wav")`。这个第三方包(最新版本发布于2024年1月11日)使用MIT许可的gruut库替代espeak-ng,避免了GPL-3.0依赖——代价是依赖一个同样休眠的非官方封装工具。 - 6(可选)提供参考片段进行风格迁移。
Why it matters: 使用LibriTTS检查点时,传递`target_voice_path`参数(社区包)或等效的参考音频参数(官方笔记本),指向一个15到30秒的干净单说话人WAV文件,即可以该捕获的风格合成新文本。
真实使用示例
以下示例展示了社区pip包的简化API以及官方项目推理笔记本中使用的模式。
- 参考音频质量对风格迁移至关重要。 干净的单说话人15到30秒片段比短促、嘈杂或多说话人的参考音频产生的风格迁移效果明显更好。
- 存在两条独立的依赖链。 官方仓库的笔记本路径会引入GPL-3.0许可的espeak-ng;社区pip包则通过改用gruut避免了这一点——在围绕其中任何一条构建工具之前,请选择符合你许可要求的依赖链。
# 最简单的路径:社区pip包(纯MIT依赖链,
# 最新版本发布于2024-01-11 — 依赖前请确认其仍可正常工作)
pip install styletts2
from styletts2 import tts
my_tts = tts.StyleTTS2()
my_tts.inference(
"Hello there, this is a natural-sounding synthesized sentence.",
output_wav_file="test.wav",
)
# 从参考片段进行零样本风格迁移(类LibriTTS检查点)
my_tts.inference(
"The same text, now spoken in a captured reference style.",
target_voice_path="reference_voice.wav",
output_wav_file="styled_test.wav",
)
# 自定义检查点与配置路径
custom_tts = tts.StyleTTS2(
model_checkpoint_path="/path/to/epochs_2nd_00020.pth",
config_path="/path/to/config.yml",
)
# --- 官方仓库路径(需要espeak-ng,GPL-3.0) ---
# git clone https://github.com/yl4579/StyleTTS2.git
# cd StyleTTS2 && pip install -r requirements.txt
# pip install phonemizer && sudo apt-get install espeak-ng
# 然后在Jupyter中打开 Demo/Inference_LJSpeech.ipynb 或 Demo/Inference_LibriTTS.ipynb
# 并针对你下载的检查点运行提供的单元格。许可证与成本
StyleTTS 2的代码采用MIT许可证,这一点已通过官方仓库中的LICENSE文件确认。MIT是一种宽松许可证:你可以使用、修改和再分发该代码,包括用于商业用途,限制极少。
预训练模型权重携带一项独立的、许可证之外的条件,该条件写在README中,而非LICENSE文件本身。 项目README要求用户"告知听众语音样本是由StyleTTS 2模型合成的,除非你已获得使用所合成声音的许可"。这是文档层面的请求,而非正式的许可条款——该项目的一个GitHub issue(#37)明确指出这可能造成混淆,因为仓库的许可证徽章和LICENSE文件会让未阅读README模型使用部分的读者以为仅适用MIT条款。PromptQuorum未在该公开issue讨论串中找到维护者对此模糊之处的回应。请将该披露条件视为作者提出的真实、有文档记录的要求,并予以遵守——但要理解它位于代码本身正式MIT授权之外,这是一种在商业使用前值得关注的、确实不寻常的结构。
运行官方推理会引入一个GPL-3.0许可的依赖项:espeak-ng。 项目自身的安装说明要求pip install phonemizer外加系统级安装espeak-ng,而espeak-ng采用GPL-3.0许可。GPL-3.0是一种copyleft许可证,其分发义务与MIT不同;将espeak-ng作为未经修改的外部系统依赖使用,通常与静态链接或再分发其修改后源代码的处理方式不同,但确切的边界取决于你的部署方式。社区pip包styletts2通过使用MIT许可的gruut库替代espeak-ng,专门规避了这一问题——如果你想要一条完全宽松许可的依赖链,这是一个实际的实用差异,但代价是依赖一个第三方包,其最新版本日期(2024年1月11日)甚至比官方仓库更旧。
以上均不构成法律建议。在将StyleTTS 2投入商业产品前,请阅读LICENSE文件、README的模型使用部分,并就你的具体部署咨询律师。
StyleTTS 2使用什么许可证?
StyleTTS 2的代码采用MIT许可证。其预训练模型权重在项目README中携带一项独立的、许可证之外的条件(除非获得说话者许可,否则须披露合成语音),该条件不属于正式MIT许可证文本的一部分——该项目的一个GitHub issue指出这一区别可能造成混淆。这不构成法律建议;商业使用前请自行阅读LICENSE文件和README。
StyleTTS 2不适合的场景
StyleTTS 2是一个输出质量确实出色的研究级模型,而非精雕细琢、积极维护的消费级产品。它不适合以下情况:
- 希望简单pip安装即可使用的读者。 与只需
pip install piper-tts加一条CLI命令即可获得可用音频的Piper不同,StyleTTS 2的官方路径涉及克隆研究仓库、安装音素化工具、系统级espeak-ng依赖以及运行Jupyter笔记本——配置门槛明显更高。 - 没有机器学习工程投入的生产部署。 没有经过维护的Web服务器模式,没有官方Docker镜像,也没有企业为持续支持提供保障。任何将StyleTTS 2部署到生产环境的人都应预期需要围绕该研究代码编写并维护自己的服务层。
- 保证持续的错误修复或功能更新。 官方仓库自2024年3月7日起没有提交记录,社区pip包的最新版本日期为2024年1月11日,因此不要假设任一依赖链有积极维护——请为遇到问题时可能需要自行解决的情况做好预算。
- 开箱即用的非英语语音。 官方发布的预训练检查点仅限英语(LJSpeech、LibriTTS)。根据论文关于其多语言文本对齐器和PL-BERT的说明,自行训练非英语模型在架构上是可行的,但需要你自己完成训练——项目没有提供可下载的非英语检查点。
- 对下载的所有内容提供单一、明确的许可授权。 由于代码(MIT)和预训练权重(MIT加README披露条件)受到略有不同的约束,且官方推理路径会引入GPL-3.0依赖,StyleTTS 2无法提供像Bark(完全MIT、无额外条件)这样项目所具备的单一、简单的许可故事。
StyleTTS 2的替代方案
Piper
- 最适合:
- 简单的pip安装即用配置、最快的纯CPU合成、Raspberry Pi上的实时运行
- 许可证:
- GPL-3.0-or-later
XTTS v2
- 最适合:
- 基于6秒参考音频的打包式声音克隆,支持17种语言
- 许可证:
- CPML(非商业)
Coqui TTS
- 最适合:
- 灵活的多后端工具包,语言支持广泛,有持续维护的分支
- 许可证:
- MPL-2.0
Bark
- 最适合:
- 富有表现力的非语音音频——笑声、叹息、环境声,单一明确的MIT许可证
- 许可证:
- MIT
ElevenLabs
- 最适合:
- 带商业声音克隆和积极支持的托管云API,无需自行托管
- 许可证:
- 专有(付费云API)
常见问题
StyleTTS 2是什么?
StyleTTS 2是哥伦比亚大学研究人员开发的开源文本转语音模型,通过风格扩散和使用大型语音语言模型的对抗训练生成听起来自然的语音,作为NeurIPS 2023论文发表。
StyleTTS 2可以免费商用吗?
其代码采用MIT许可证,允许商业使用。其预训练模型权重在README中携带一项独立的、许可证之外的条件,要求除非获得说话者许可,否则须披露合成语音。这不构成法律建议;商业部署前请自行阅读LICENSE文件和README。
StyleTTS 2能克隆声音吗?
其LibriTTS多说话人检查点支持从参考音频片段(最低5到10秒,建议15到30秒)进行零样本风格迁移,这在精神上类似于声音克隆。它并未像XTTS v2那样被打包为简单的一键克隆功能——使用它需要基于笔记本的官方工作流程或社区pip包。
StyleTTS 2还在维护吗?
官方GitHub仓库未被标记为已归档,但PromptQuorum未发现自2024年3月7日以来的任何提交记录。简化安装的社区pip包最后一次发布于2024年1月11日。请将两者都视为休眠的研究成果,而非积极开发中的软件。
StyleTTS 2支持英语以外的语言吗?
官方发布的预训练检查点(LJSpeech、LibriTTS)仅限英语。论文指出,其文本对齐器组件也曾在日语和中文语料库上训练,无需微调即可较为合理地泛化到其他语言,并提到一个覆盖14种语言的多语言PL-BERT模型,可作为训练你自己的非英语模型的起点——但目前没有官方发布的、开箱即用的非英语检查点。
为什么StyleTTS 2的官方安装需要espeak-ng,这为何重要?
官方推理路径使用phonemizer库,以espeak-ng作为将文本转换为音素的后端。espeak-ng采用GPL-3.0许可,这是一种分发义务与MIT不同的copyleft许可证。社区pip包(styletts2)通过改用MIT许可的gruut库避免了这一点,但代价是依赖一个更旧的非官方版本(最后更新于2024年1月11日)。
StyleTTS 2与XTTS v2相比如何?
StyleTTS 2的代码采用MIT许可,可免费商用(权重方面有README披露条件);XTTS v2则采用非商业的Coqui Public Model License许可。StyleTTS 2的官方配置更偏研究级,需要更多手动操作;XTTS v2通过Coqui TTS工具包提供更简单、打包式的声音克隆API。请根据你的许可需求和对配置复杂度的容忍度进行选择。
结论
StyleTTS 2在输出质量方面依然令人印象深刻:其风格扩散与对抗训练方法在自身的NeurIPS论文中被认为在LJSpeech基准上达到或超过了人类录音质量,且代码许可证(MIT)已尽可能宽松。让它无法轻易推荐给大多数读者的,是围绕这一核心模型的一切:预训练权重存在一项位于正式MIT授权之外的文档层面披露条件,官方推理路径会引入GPL-3.0依赖,一个避开该依赖但自身已超过两年半的社区pip包,以及自2024年3月7日起官方仓库无任何提交记录。如果你想要本地可获得的最佳自然英语叙述质量,并能接受研究级配置和未维护的依赖链,StyleTTS 2能够做到。如果你想要更简单的安装、积极的维护,或打包式的声音克隆,可以将本评测与PromptQuorum对Piper(快速纯CPU合成)、XTTS v2(打包式声音克隆)或ElevenLabs对比(完全托管的替代方案)的报道结合起来阅读。本评测是PromptQuorum深入评测的六款本地语音识别与语音合成引擎中的最后一款,与Whisper.cpp、Faster Whisper、Piper、Coqui TTS、XTTS v2和Bark并列。
资料来源
- GitHub上的StyleTTS 2 — 官方仓库:README、LICENSE、安装说明和提交历史。
- StyleTTS 2论文(arXiv) — 《Towards Human-Level Text-to-Speech through Style Diffusion and Adversarial Training with Large Speech Language Models》,NeurIPS 2023论文。
- GitHub issue #37:Possibly misleading license info — 社区指出的MIT LICENSE文件与README模型使用披露条件之间的差异。
- PyPI上的styletts2 — 社区维护的pip包(Sidharth Rajaram),0.1.6版本,发布于2024年1月11日。
- StyleTTS2-LJSpeech和StyleTTS2-LibriTTS — Hugging Face上的官方预训练检查点。
- 本地TTS与声音克隆许可 — 本地TTS引擎间的完整许可对比。
