MeloTTS
myshell-ai/MeloTTS加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
张明(化名)是一位专注 AI 工具评测的独立博主,每期视频都要录制 30~40 分钟的口播内容。他最头疼的,不是写稿,而是配音环节——每次录完都要反复重录口误,嗓子疲惫不堪。
2024 年初,他偶然发现了 MeloTTS。第一次使用,他在本地终端输入几行命令,中文语音就流畅生成。"那一刻我觉得,我找到了答案。"他在自己的博客里写道。
这个让张明眼前一亮的工具,背后是清华大学和 MIT 的研究团队与 MyShell.ai 的协作结晶。MeloTTS 起源于 2024 年 2 月,GitHub 页面显示项目由三位核心作者共同署名:清华大学博士生赵文亮、清华大学硕士生余旭敏,以及 MIT 与 MyShell 联合项目负责人秦增毅(Qin Zengyi)。
项目上线不到两年,已积累 7,650 个 GitHub Star、超过 1,000 个 Fork,成为开源 TTS 领域最受关注的项目之一。
传统的商业 TTS 服务(如 Google WaveNet、Amazon Polly)虽然质量不错,但存在几个现实问题:成本高(按调用量计费)、延迟大(需要网络请求)、隐私风险(语音数据上传第三方服务器)。对于张明这样的独立创作者,以及需要批量合成语音的开发者,这些问题尤为突出。
MeloTTS 的核心设计哲学是:本地运行 + 多语言支持 + CPU 实时推理。
它不需要云端,不需要 GPU,一张普通显卡甚至纯 CPU 就能跑。这意味着用户可以在自己的电脑上生成高质量语音,完全离线,数据不出本地。对于企业用户而言,这意味着没有 API 费用、没有调用频率限制、没有第三方数据泄露风险。
MeloTTS 的技术架构建立在 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech) 基础之上,并整合了 VITS2 的多项改进。
整体上,这是一个单阶段(single-stage)端到端 TTS 系统,不需要传统两阶段 pipeline(先预测声学特征,再生成波形)。单阶段设计大幅简化了推理流程,同时保持了高质量输出。
核心技术组件包括:
文本编码器(Text Encoder):基于 Transformer 架构,对输入文本(音素形式)进行自注意力编码,并融合 BERT 预训练语言模型提取的语义特征。对于中文、日文和韩文等不同语言,系统分别注入对应的语言特定 BERT 嵌入,实现多语言语义理解。
单调对齐搜索(Monotonic Alignment Search, MAS):训练阶段的核心创新。传统 TTS 需要预先对齐文本和音频数据,MAS 允许模型在训练过程中自动学习对齐关系,并将高斯噪声引入概率计算,给模型更多探索最优对齐的空间。
归一化流(Normalizing Flows):MeloTTS 支持两种归一化流实现。默认使用 Transformer Flow,将 Transformer 层引入归一化流模块,使模型能够捕获语音波形中长距离依赖关系;也支持传统的残差网络 Flow。
随机时长预测器(Stochastic Duration Predictor):负责将文本编码转换为精确的语音时长信息。VITS2 引入对抗学习来训练该预测器,使其合成的语音自然度更高。
声码器(Generator):基于 WaveNet 风格的上采样卷积架构,将隐层表示转换为最终波形。
整个推理过程可以概括为:文本 → 编码 → 时长预测 → 隐表示 → 归一化流变换 → 波形生成。
MeloTTS 目前支持 6 种语言、10 余种口音:
| 语言 | 口音数量 | 代表场景 |
|---|---|---|
| 英语 | 5 种 | 美式、英式、印度、澳大利亚、默认 |
| 西班牙语 | 1 种 | 拉美西班牙语 |
| 法语 | 1 种 | 标准法语 |
| 中文 | 1 种(混英) | 中英混合文本 |
| 日语 | 1 种 | 标准日语 |
| 韩语 | 1 种 | 标准韩语 |
特别值得一提的是,中文模型支持中英混合输入——这对于科技评测、产品介绍类内容尤其有价值,因为这类内容天然包含大量英文术语。
同时,项目还在持续迭代中。在 HuggingFace 上,MeloTTS-English-v2 和 v3 已陆续发布,新版本带来了更自然的语调和更丰富的口音选项。
方式一:零安装,在线体验
MeloTTS 社区贡献者在 HuggingFace Spaces 上搭建了在线 Demo:https://huggingface.co/spaces/mrfakename/MeloTTS
无需安装任何依赖,直接在浏览器中输入文本、选择语言和发音人,即可在线试听生成的语音。适合快速体验,不想折腾环境的用户。
方式二:pip 安装,本地运行
一行命令完成安装:pip install melotts
然后在 Python 中调用:
from melo.api import TTS
device = 'cpu' # 或 'cuda' 使用 GPU
model = TTS(language='ZH', device=device)
speaker_ids = model.hps.data.spk2id
model.tts_to_file("你好,欢迎使用 MeloTTS", speaker_ids['ZH'], 'output.wav')
整个过程会自动从 HuggingFace 下载对应语言的模型权重(每个语言约 100~200MB)。首次运行后模型缓存本地,后续推理无需再次下载。
方式三:Docker 容器,一键部署
项目提供了官方 Dockerfile,一行命令构建镜像并启动 Gradio Web UI:
docker build -t melotts .
docker run -p 8888:8888 melotts
浏览器访问 http://localhost:8888 即可通过网页界面操作。适合希望快速搭建服务、分享给团队成员的开发者。
MeloTTS 对硬件要求相当友好。核心依赖为 PyTorch,支持 CUDA GPU 加速,但纯 CPU 也能运行。
部署方式灵活:pip 本地安装适合开发者集成到自己的应用;Docker 适合快速搭建共享服务;CLI 命令行则适合脚本化批量合成。
客观地说,MeloTTS 并非完美:
情感表达单一:当前版本主要针对标准语调合成,缺乏情感控制(如开心、悲伤、愤怒等情绪)。对于有声书、长视频配音等需要情感变化的场景,现阶段表现偏平淡。
声音克隆缺席:与 ElevenLabs、GPT-SoVITS 等项目不同,MeloTTS 不支持基于少量样本的声音克隆。用户只能使用预设的发音人,无法自定义音色。
长文本一致性:超长文本的合成过程中,可能出现语调漂移或断句不够自然的问题,建议对长文本进行分段处理。
模型版本碎片化:主仓库 v1 版本与 HuggingFace 上的 v2/v3 版本之间存在差异,文档分散,初次接触的用户可能需要花时间理解版本关系。
MeloTTS 的出现,反映了开源 TTS 领域正在经历的重要变化:从云端垄断走向本地化。
2024 年以前,高质量 TTS 基本被商业 API 垄断。开发者要么付费使用,要么忍受低质量开源方案。MeloTTS 证明了在开源条件下,普通人也能跑出接近商业水平的语音合成效果。
从技术趋势看,VITS 架构正在成为开源 TTS 的主流范式。相比传统的 Tacotron2 + WaveNet 两阶段方案,VITS 的单阶段设计更简洁高效。结合 VITS2 引入的 Transformer Flow 和对抗训练,语音质量上限持续被推高。
MyShell 团队将 MeloTTS 定位为"边缘友好"工具,强调 CPU 实时推理能力,这一点在资源受限的部署场景中尤为有价值。同时,通过 HuggingFace Spaces 和 Gradio Web UI 构建了良好的社区生态,降低了普通用户的尝试门槛。
对于 AI 开发者,MeloTTS 提供了清晰可读的 PyTorch 实现,深入理解其代码有助于掌握现代 TTS 的核心原理。对于普通用户,它提供了一条零成本的语音合成路径——不需要信用卡,不需要 API Key,一台电脑就能用。
项目由 MIT 联合署名,采用 MIT 开源许可证,商用无忧。
回到那位播客博主张明的故事。如今,他使用 MeloTTS 批量生成初稿配音,再用自己的真实声音录制最终版本。"效率提升大概有三倍吧,"他说,"最重要的是,我的嗓子终于能休息了。"
技术工具的意义,大概就在于此:不是取代人,而是把人从重复劳动中解放出来,专注于真正需要创造力的部分。MeloTTS 用开源的方式,让这个目标离更多人近了一步。