MeloTTS 安装教程:多语言文本转语音(TTS)系统 6 语种快速上手指南
【免费下载链接】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 是一个高质量的**多语言文本转语音(TTS)**库,能把英语、中文、西班牙语、法语、日语、韩语的文本转成自然语音。它跑在普通 CPU 上就能实时合成,不需要显卡。不管你是想用一条命令生成语音文件、开个 Web 页面点一点,还是把多语言语音合成嵌进自己的 Python 项目,装完 10 分钟内就能跑起来。
功能速览:30 秒判断适不适合你
| 项目 | 提供内容 |
|---|---|
| 支持语言 | 英语、中文、西班牙语、法语、日语、韩语,共 6 种 |
| 英语发音人 | EN-Default、EN-US、EN-BR、EN_INDIA、EN-AU,5 种口音 |
| 中文 | 支持中英文混排在同一段文本中 |
| 运行要求 | CPU 即可实时推理,GPU 可加速 |
| 使用入口 | Web 界面 / 命令行(melo)/ Python API |
| 部署方式 | 原生安装(Linux、macOS)、Docker(推荐 Windows) |
| 协议 | MIT,商用和非商用都免费 |
💡 只要你需要把上面 6 种语言的文本读出来、并且想跑在自己机器上,MeloTTS 就是对的选择。
安装前检查:4 项全部满足再动手
- ✅操作系统:Linux(推荐 Ubuntu 20.04)或 macOS;Windows 用户建议直接走 Docker 路线
- ✅Python 版本:3.9 或更高。执行
python --version确认 - ✅硬件:普通 CPU 足够,有 NVIDIA GPU 则推理更快
- ✅网络:安装过程要联网下载模型权重和日语词典资源
如果四项都满足,继续往下。macOS 用户如果原生安装卡在依赖上,不用纠结,换成 Docker 路线即可。
选择你的安装路线:原生还是 Docker
路线一:原生安装,3 条命令搞定(Linux / macOS)
适合谁:有 Python 环境、想在本地直接import使用的 Linux 和 macOS 用户。
- 把项目源码拉到本地,执行后当前目录会多出一个
MeloTTS文件夹:
git clone https://gitcode.com/GitHub_Trending/me/MeloTTS.git cd MeloTTS- 以可编辑模式安装依赖,执行后你会看到 torch、transformers 等一个个包开始下载,过程可能持续几分钟:
pip install -e .- 下载日语分词词典(日语文本转音素要用到它),执行后出现下载进度条,结束即完成:
python -m unidic download完成标志:终端里执行melo --help能打印出命令帮助,说明命令行工具已就绪。
⚠️ 建议先python -m venv venv建个虚拟环境再安装,避免污染系统 Python。
路线二:Docker 安装,Windows 用户首选
适合谁:Windows 用户,或原生安装遇到兼容性问题、想要干净隔离环境的人。前提是机器已装好 Docker。
- 先进入项目目录(克隆方式同路线一),构建镜像。执行后你会看到镜像逐层构建,最后输出
Successfully tagged melotts:
docker build -t melotts .- 启动容器并映射 8888 端口,执行后容器自动拉起 Web 界面:
docker run -it -p 8888:8888 melotts- 浏览器打开
http://localhost:8888,看到包含 Speaker、Language、Text to speak 的页面就说明一切就绪。
机器有 NVIDIA GPU 的话,换成下面这条就能启用 GPU 加速:
docker run --gpus all -it -p 8888:8888 melotts第一次运行验证:生成你的第一条语音
装完别急着研究参数,先跑一次最小合成,确认链路是通的。
- Docker 用户:容器已经在跑 Web 界面,直接跳到下一节用 Web 界面体验。
- 原生用户:执行下面的命令。执行结束后当前目录会生成
output.wav,用播放器打开能听到英语朗读:
melo "Hello, this is MeloTTS." output.wav三种用法上手:Web、命令行、Python API
不想写代码:Web 界面
执行启动命令,Gradio 页面会自动打开浏览器(没自动开就访问终端打印的地址):
melo-ui # 或者 python melo/app.py界面上选语言、选发音人、拖动语速滑块、输入文本,点 Synthesize 就能听效果。想换端口加--port,想临时生成一个对外分享链接加--share(链接请只发给可信的人)。界面逻辑都在 melo/app.py 里,很薄,好读。
习惯终端:命令行(TTS CLI 用法)
CLI 用melo或melotts调用,两个命令等价。常用姿势:
# 默认英语朗读 melo "Text to read" output.wav # 指定语言(EN/ES/FR/ZH/JP/KR) melo "Text to read" output.wav --language EN # 挑一个英语口音 melo "Text to read" output.wav --language EN --speaker EN-US melo "Text to read" output.wav --language EN --speaker EN-AU # 1.5 倍速 melo "Text to read" output.wav --speed 1.5 # 中文,中英混排也没问题 melo "text-to-speech 领域近年来发展迅速" zh.wav -l ZH # 从文件读取文本 melo file.txt out.wav --file参数细节随时melo --help查看。
💡--speaker只对英语生效,其他语言传了会被忽略(见 melo/main.py 中的逻辑)。
开发者:Python API 嵌入你自己的应用
核心就三步:建模型、取发音人 ID、调tts_to_file落盘。实现代码在 melo/api.py,下面示例可直接复制运行。
英语,一种模型出五种口音:
from melo.api import TTS text = "The quick brown fox jumps over the lazy dog." model = TTS(language='EN', device='auto') # 有 GPU 自动用 GPU,否则用 CPU speaker_ids = model.hps.data.spk2id model.tts_to_file(text, speaker_ids['EN-US'], 'en-us.wav', speed=1.0) model.tts_to_file(text, speaker_ids['EN-BR'], 'en-br.wav') model.tts_to_file(text, speaker_ids['EN_INDIA'], 'en-india.wav')其余 5 种语言,换language参数和spk2id里对应的 key 即可:
from melo.api import TTS model = TTS(language='ZH', device='auto') model.tts_to_file("我最近在学习 machine learning", model.hps.data.spk2id['ZH'], 'zh.wav') model = TTS(language='JP', device='auto') model.tts_to_file("こんにちは、元気ですか?", model.hps.data.spk2id['JP'], 'jp.wav') model = TTS(language='KR', device='auto') model.tts_to_file("안녕하세요, 반갑습니다", model.hps.data.spk2id['KR'], 'kr.wav') model = TTS(language='ES', device='auto') model.tts_to_file("El resplandor del sol acaricia las olas.", model.hps.data.spk2id['ES'], 'es.wav') model = TTS(language='FR', device='auto') model.tts_to_file("La lueur dorée du soleil caresse les vagues.", model.hps.data.spk2id['FR'], 'fr.wav')进阶技巧:语速、发音人、GPU 与内存调优
语速:speed参数控制倍速,1.0 是原速,1.5 即 1.5 倍。内部通过length_scale实现,建议放在 0.5–2.0 之间,拉太满音质会明显变差。
发音人:5 个英语发音人音色性格不同,场景不合就换人试试;其他语言目前各只有一个默认音色。
GPU 加速:device参数可选'auto'、'cpu'、'cuda'(或'cuda:0')、'mps'。MeloTTS 在 CPU 上已能实时推理,GPU 主要是给批量合成、追求低延迟的场景。
内存管理:模型常驻占用不低。长驻服务建议每种语言建一个TTS实例复用,而不是反复加载卸载;大批量合成结束后及时释放实例,tts_to_file内部的torch.cuda.empty_cache()会帮你清一下显存。
遇到问题查这里:常见故障速查
现象:pip install -e .反复失败或依赖冲突可能原因:系统 Python 里已有冲突的包,或网络不稳定。 解决办法:python -m venv venv建虚拟环境、激活后重试;实在不行直接换 Docker 路线。
现象:运行时报日语相关错误、找不到 unidic 资源可能原因:跳过了python -m unidic download这一步。 解决办法:补跑该命令下载词典,再重新执行。
现象:合成的语音听着不自然可能原因:语速参数太极端,或当前发音人不适合这段内容。 解决办法:先把--speed调回 1.0,再逐个试听 EN-US、EN-BR、EN_INDIA、EN-AU,不同句子在不同发音人下表现差异不小。
现象:Docker 起来后浏览器打不开 localhost:8888可能原因:启动时漏了端口映射,或容器已退出。 解决办法:确认命令带-p 8888:8888,用docker ps看容器是否还在运行;8888 被占用就换别的端口映射。
现象:推理太慢可能原因:纯 CPU 跑长文本。 解决办法:换 GPU 机器(device='cuda'或 Docker--gpus all),并把长文本切成短句分批合成。
下一步做什么
到这里,你已经有一条能用的多语言 TTS 流水线了。建议接着做这几件事:
- 接入自己的应用:把 Python API 里建模型、取发音人、
tts_to_file这三步封装成函数,接到你的 Web 后端或自动化脚本里。 - 尝试流式合成:对低延迟场景,把长文本按句切分、逐句合成,通过 WebSocket 边合成边推送。
- 调参找组合:拿同一段文本把 5 个英语发音人、几个不同语速跑一遍,听出最适合你场景的那组。
- 定制音色:有自己的数据集想训专属声音,看 docs/training.md。
更多细节可对照 docs/install.md,快速演示见 docs/quick_use.md。
【免费下载链接】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),仅供参考