MeloTTS 多语言文本转语音:从安装到 Python 集成的完整上手指南
【免费下载链接】MeloTTSHigh-quality multi-lingual text-to-speech library by MyShell.ai. Support English, Spanish, French, Chinese, Japanese and Korean.项目地址: https://gitcode.com/GitHub_Trending/me/MeloTTS
往 MeloTTS 里丢一句「你好,世界」,几秒后你拿到的就是一个 .wav 文件——而它不止会说中文。这款多语言文本转语音(多语言 TTS)开源库由 MyShell.ai 开源,一个模型就能覆盖英语、中文、西班牙语、法语、日语、韩语六种语言,英语还附带美式、英式、印度、澳洲等多种口音。CPU 就能实时跑,GPU 则让批量合成更快。
先想象一个场景:你的视频需要六国解说
你剪好了一支教程视频,接下来要配三种语言的旁白;或者你在做一个应用,想给用户「收听」功能,还得同时照顾海外用户。逐个找配音、逐个调 API,成本高还慢。MeloTTS 的思路是把这六件事合并成一件事:装一次库,语言、口音、语速全是你一个参数的事。
快速开始:三条命令出第一段语音
先看最短路径,先跑起来再说细节:
git clone https://gitcode.com/GitHub_Trending/me/MeloTTS cd MeloTTS && pip install -e . melo "Hello, this is my first audio" output.wav装完打开output.wav,你应该已经听到声音了。安装脚本会自动顺带下载日语分词资源(unidic),如果网络中断没拉下来,手动补一句python -m unidic download即可。
接下来是选部署方式。
部署二选一:原生安装还是 Docker 部署
两条路都能到,差别在于你的系统和你愿意折腾的程度:
| 对比项 | 原生安装 | Docker 容器化 |
|---|---|---|
| 适合谁 | Linux(Ubuntu 20.04 实测)、macOS | Windows 用户,或 macOS 安装不顺的人 |
| 前置条件 | Python 3.9+,一个干净的 pip 环境 | 已装好 Docker |
| 耗时 | 几分钟 | 构建镜像可能要多等几分钟 |
| 跑起来 | melo或melo-ui命令 | docker run -p 8888:8888 |
| GPU | 依赖本地 CUDA 环境 | --gpus all一行透传 |
走原生安装:就是快速开始那两句pip install -e .。硬件上,一块普通 CPU 就足够实时推理,有 NVIDIA GPU 只是锦上添花。macOS 上如果依赖装不干净,别硬扛,直接转投 Docker。
走 Docker 部署:在项目根目录构建并运行:
docker build -t melotts . docker run -it -p 8888:8888 melotts本地有 GPU 的话,加个参数即可加速:
docker run --gpus all -it -p 8888:8888 melotts然后浏览器打开http://localhost:8888,Web 界面就在了。
三种调用姿势:哪种离你最近
MeloTTS 给了你三个入口,按「你是谁」来选,而不是按功能清单来选。
🖱 想点鼠标就出活 → Web 界面
装好后一条命令起服务:
melo-ui # 或者 python melo/app.py语言、声音、文本都在页面上选,适合完全不熟命令行的朋友,也适合边听边调参试发音人。
⌨️ 想批量、想进脚本 → 命令行(CLI)
最小可用的一条:
melo "Text to read" output.wav常用旋钮就四个:
melo "Text to read" output.wav --language EN --speaker EN-US # 指定语言和发音人 melo "Text to read" output.wav --speed 1.5 # 1.5 倍语速 melo file.txt out.wav --file # 从文本文件读 melo --help # 完整参数文档中文记得带-l ZH,比如melo "文本转语音正在快速发展" zh.wav -l ZH。melotts和melo两个命令名都能用。
🧩 想嵌进自己的项目 → Python API
这是最有扩展性的姿势,核心就四行:
from melo.api import TTS model = TTS(language='EN', device='auto') speaker_ids = model.hps.data.spk2id model.tts_to_file("Hello world", speaker_ids['EN-US'], 'output.wav', speed=1.0)device='auto'会自动挑 GPU(CUDA 或 MPS),没有就落回 CPU。想换语言?把language换成'ZH'、'JP'、'KR'、'ES'、'FR',再从对应的speaker_ids里取发音人即可。实现细节在 melo/api.py 里,每个语言都有对应示例。
支持语言与发音人一览
别记散落的参数,看这张表就够了:
| 语言 | 语言代码 | 可用发音人 |
|---|---|---|
| 英语 | EN | EN-Default(默认)、EN-US(美音)、EN-BR(英音)、EN_INDIA(印度口音)、EN-AU(澳洲口音) |
| 中文 | ZH | ZH,模型自带中英混读能力 |
| 西班牙语 | ES | ES |
| 法语 | FR | FR |
| 日语 | JP | JP |
| 韩语 | KR | KR |
英语一个语言码能切出五种口音,是做多地区本地化时最好用的点。
调优与提速:三个避坑提醒
- 硬件别焦虑:CPU 就能满足实时合成,不用为「跑不动」提前买卡;真要做大批量离线渲染,再上支持 CUDA 的 NVIDIA GPU。
- 语速有安全区间:默认 1.0,建议留在 0.5~2.0 之间。拉得太极端,音质会肉眼可见地变差。
- 内存要会放手:长期运行的服务里,定期清理不再用的模型实例;要多语言并发,干脆为每种语言各持一个实例,切换成本最低。
踩坑实录:装不上、读不对、跑不快
装不上:pip 报依赖冲突?这是原生安装最常见的翻车点。别在全局环境里硬试,建一个干净的虚拟环境再来;或者干脆走 Docker,把整个依赖环境装进容器里,冲突直接消失。
读不对:语音发闷、语言读串?先怀疑语速和发音人:换个--speed、换个发音人,同一句文本表现可能差很多,某些语言在特定发音人下确实更自然。另一个高频错误是忘了指定语言——不写-l ZH的中文文本会被当英文处理,读音自然面目全非。
跑不快:想要更低延迟?单句合成在 CPU 上已是实时级别。真要压延迟,可以借助 Python API 的返回能力:tts_to_file在不给output_path时直接返回音频的 numpy 数组,方便你做流式拼接;再往外一层,套个 WebSocket 服务,低延迟推流就齐了。
最后:让文字开口
回到开头:六种语言、五种英语口音、Web / CLI / Python 三种入口,一条pip install起步——这就是 MeloTTS 能替你做的事。更多细节可以去仓库文档里翻:docs/install.md 讲安装,docs/quick_use.md 讲快速使用,核心代码集中在 melo/ 目录下。装好它,你打字的下一秒,声音就有了。
【免费下载链接】MeloTTSHigh-quality multi-lingual text-to-speech library by MyShell.ai. Support English, Spanish, French, Chinese, Japanese and Korean.项目地址: https://gitcode.com/GitHub_Trending/me/MeloTTS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考