MeloTTS完整指南:20分钟从零到六语种实时语音合成
2026/9/20 20:41:24 网站建设 项目流程

MeloTTS完整指南:20分钟从零到六语种实时语音合成

【免费下载链接】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 是 MyShell.ai 开源的多语种文本转语音(text-to-speech)库,支持中文、日语、韩语、西班牙语、法语以及 5 种英语口音,纯 CPU 即可实时推理。它解决的是个人和小团队"多语种配音需要东拼西凑多个服务"的痛点。

第一次跑通:裸机到出声只需 3 步

环境卡住了?MeloTTS 的依赖链看着长(requirements.txt 里有 20 多个包),但真正要动手的只有两步:装依赖、下日语词典。

步骤1:克隆并安装依赖

📋官方验证过的环境

推荐值说明
操作系统Ubuntu 20.04官方在此环境开发测试
Python3.9与官方测试版本一致
硬件CPU 即可官方确认 CPU 能实时推理,GPU 非必需

克隆并安装,安装脚本会自动进入可编辑模式:

# 克隆仓库 git clone https://gitcode.com/GitHub_Trending/me/MeloTTS cd MeloTTS
# 安装依赖 + 下载日语 MeCab 词典(unidic) pip install -e . python -m unidic download

💡知识卡片:setup.py 在安装钩子里已经带了一步unidic download,如果你用的是国内网络源,建议手动补跑一次词典下载,避免 WebUI 启动时弹提醒。

✅ 验证一下核心模块能正常导入:

python -c "from melo.api import TTS; print('MeloTTS OK')"

步骤2:用 CLI 合成第一条语音

第一次出声建议直接走命令行,比写 Python 快:

# 默认英文、默认音色,合成到 output.wav melo "Text to read" output.wav

✅ 验证:确认当前目录生成了output.wav且能正常播放。CLI 完整参数用melo --help查看。

步骤3(可选):Windows/macOS 卡壳时切 Docker

⚠️避坑警示:macOS 和 Windows 上 mecab、gruut 这类含 C 扩展的依赖偶尔编译失败。别死磕,官方给出的绕法就是 Docker,几分钟的事。

# 构建镜像(需已安装 Docker) docker build -t melotts .
# 启动并映射 8888 端口;有 GPU 可加 --gpus all docker run -it -p 8888:8888 melotts

✅ 验证:浏览器打开http://localhost:8888,看到 WebUI 界面即环境就绪。

4 个高频合成场景与最小代码

跑通之后,下面这 4 个场景覆盖了日常 90% 的需求。

英文多口音切换:1 个模型 5 种说话人

英语模型内置 5 个说话人,同一段文本换个 speaker 就是不同口音:

Speaker ID口音
EN-Default默认
EN-US美式
EN-BR英式
EN_INDIA印度口音
EN-AU澳式
# 同一句话合成美式和英式两种口音 from melo.api import TTS model = TTS(language='EN', device='auto') spk = model.hps.data.spk2id model.tts_to_file("Did you ever hear a folk tale?", spk['EN-US'], 'en-us.wav') model.tts_to_file("Did you ever hear a folk tale?", spk['EN-BR'], 'en-br.wav')

中英混读:不用切换语种

💡知识卡片:中文模型实际加载的是ZH_MIX_EN模型(见 melo/api.py),所以中文句子里夹英文单词能直接自然读出来,不用先分词再切换。

# 中英混合文本一次合成 from melo.api import TTS model = TTS(language='ZH', device='cpu') spk = model.hps.data.spk2id model.tts_to_file("我最近在学习 machine learning", spk['ZH'], 'zh.wav')

WebUI:无代码出六语种

不想写代码?一条命令拉起 Gradio 界面,语言、音色、语速全在页面上点选:

# 启动 WebUI(六个语种模型会在启动时加载) melo-ui

界面里语速滑杆范围是 0.1~10.0,默认 1.0。启动稍慢属正常——它一次加载全部 6 个语种的模型。

从文件批量读 + 指定语速

长文直接喂文件,避免转义引号的问题:

# 从文件读文本,指定中文和 1.5 倍速 melo file.txt out.wav --file -l ZH -s 1.5

⚠️避坑警示--file忘加的话,CLI 会把file.txt当成要朗读的字符串文本,合成出一句"file dot txt"。

调优前必知的 3 类关键参数

合成效果不满意时,先动下面这几个参数,比改模型快得多。

参数速查表

参数取值/选项作用
deviceauto / cpu / cuda / mpsauto 有 GPU 用 GPU,没有自动落回 CPU
speed0.1 ~ 10.0语速倍率,内部换算为 length_scale=1/speed
sdp_ratio0~1,默认 0.2声音表现力,调高更灵动但可能不稳
noise_scale默认 0.6噪声注入量,越大越自然
noise_scale_w默认 0.8音高维度的噪声,影响抑扬顿挫

自定义参数写进去

上面五个参数里除 device 外,其余都在tts_to_file的调用里直接传:

# 显式指定音质参数合成 model.tts_to_file(text, spk_id, 'out.wav', sdp_ratio=0.2, noise_scale=0.6, noise_scale_w=0.8, speed=1.0)

💡知识卡片:批量出片时先别动参数——默认值就是调校过的平衡点,听完再针对具体语种微调,改一个参数听一遍,别一次全改。

避坑手册:按现象排查

❌ WebUI 启动时提示缺少 unidic执行一次 `python -m unidic download` 即可。
❌ 首次合成卡顿/下载慢模型是首次 `TTS(language=...)` 时自动下载并本地缓存的(见 [melo/download_utils.py](https://link.gitcode.com/i/a882f8cb2f79a760029ff9670fe8d442)),耐心等第一次,之后就走缓存。
❌ 非英语语种传 speaker 无效speaker 参数只对 `language='EN'` 生效,其他语种自动取模型默认说话人([melo/main.py](https://link.gitcode.com/i/a6228cfb871bc9528a6bd777844a4650) 中有此逻辑)。
❌ CLI 读文件提示 FileNotFoundError确认加了 `--file` 标志,且路径真实存在。
❌ macOS/Windows 装依赖反复失败换 Docker 方案:`docker build -t melotts .` 后 `docker run -it -p 8888:8888 melotts`。
❌ 想训自己的音色/语种走 [docs/training.md](https://link.gitcode.com/i/bf54e98f6aad607e4136d05cfacadc92):准备 44100Hz 音频和 `metadata.list` → `python preprocess_text.py --metadata ...` → `bash train.sh `。
❌ 训练时显存不足(CUDA OOM)编辑预处理生成的 `config.json`,调小 batch size 再重启训练。

更多安装细节和全部 API 示例见 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询