新闻详情

新闻详情

首页 / 资讯中心 / 详情

MeloTTS 多语言语音合成完全指南:安装、推理 API、CLI/WebUI 与自定义数据集训练

发布时间:2026/9/16 16:19:19来源:尧图网络
MeloTTS 多语言语音合成完全指南:安装、推理 API、CLI/WebUI 与自定义数据集训练
MeloTTS 多语言语音合成完全指南安装、推理 API、CLI/WebUI 与自定义数据集训练【免费下载链接】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/MeloTTSMeloTTS 是 MyShell.ai 开源的高质量多语言文本转语音Text-to-Speech, TTS库支持英语含美式、英式、印度、澳大利亚等多种口音、西班牙语、法语、中文支持中英混合、日语和韩语。本文以仓库根目录的 README.md 为主体骨架结合 docs/install.md、docs/training.md 及melo/目录下的源码完整讲解从零安装、WebUI/CLI/Python API 三种调用方式到基于自有数据集完成预处理、训练与推理的完整闭环让读者掌握 MeloTTS 的部署与二次开发能力。一、项目概览多语言、多口音、CPU 实时推理1.1 支持的语言与音色MeloTTS 的核心定位是高质量多语言当前仓库已发布模型的语种与示例口音如下语言示例音色英语美式EN-US标准美音英语英式EN-BR英伦口音英语印度EN_INDIA印度口音英语澳大利亚EN-AU澳式口音英语默认EN-Default通用英语音色西班牙语ES西班牙语音色法语FR法语音色中文ZH支持中英混合朗读日语JP日语音色韩语KR韩语音色除语种覆盖外MeloTTS 还有两个显著特性中文语音支持中英混合在中文文本中嵌入英文单词如 我在学习 machine learning也能正确朗读这是通过独立的ZH_MIX_EN模型实现的。在 melo/api.py 中TTS类初始化时会自动将ZH语言映射到ZH_MIX_EN模型这一点在后续 Python API 用法中会再次体现。CPU 实时推理能力模型默认可在 CPU 上以实时速度完成推理无需强制依赖 GPU降低了部署门槛。1.2 技术渊源根据 README.mdMeloTTS 的实现建立在 TTScoqui-ai、VITS、VITS2 与 Bert-VITS2 等知名开源方案之上并引入了说话人条件编码器speaker-conditioned encoder、噪声缩放 MASnoise-scaled MAS与时长判别器duration discriminator等 VITS2 特性详见 melo/configs/config.json 中的模型配置。二、环境安装MeloTTS 的官方开发与测试环境为Ubuntu 20.04 Python 3.9见 docs/install.md。2.1 Linux 与 macOS 本地安装git clone https://github.com/myshell-ai/MeloTTS.git cd MeloTTS pip install -e . python -m unidic download说明pip install -e .以开发模式安装会同时注册melotts、melo、melo-ui三个命令行入口见 setup.py分别对应 CLI 推理、CLI 推理别名与 WebUI 启动器。python -m unidic download下载日语分词词典 unidic。实际上 setup.py 的安装钩子也会在install/develop完成后自动执行该下载日语模型和推理包括 WebUI 中的日语音色都依赖它因此若后续日语合成失败请优先检查该步骤是否完成。2.2 Docker 安装Windows 与部分 macOS 用户推荐为避免本地环境依赖冲突Windows 用户和部分 macOS 用户建议使用 Docker构建镜像可能需要几分钟git clone https://github.com/myshell-ai/MeloTTS.git cd MeloTTS docker build -t melotts .运行容器docker run -it -p 8888:8888 melotts如果本机有 GPU可启用 GPU 透传docker run --gpus all -it -p 8888:8888 melotts随后在浏览器打开http://localhost:8888即可使用 Web 界面。注意macOS 本地安装如遇问题官方建议直接改用上述 Docker 方式。2.3 免安装体验如果只是想快速试听效果可以不安装仓库直接使用官方在线 DemoMyShell 官方 Demo 与 Hugging Face Space 上的 live demo入口见 docs/quick_use.md。MyShell 平台上还提供了大量除 MeloTTS 之外的社区 TTS 模型英、西、法、德、葡、俄、中等多个语种可以在 docs/quick_use.md 的Use on MyShell一节查看完整列表。三、三种使用方式WebUI、CLI 与 Python API安装完成后即可通过三种方式使用 MeloTTS图形化 WebUI、命令行 CLI、以及可编程的 Python API。3.1 WebUImelo-uiWebUI 基于 Gradio 构建支持全部六种语言与对应音色。启动命令melo-ui # 等价写法python melo/app.py启动后默认在本地提供 Web 页面支持--share生成公网共享链接、--host/--port指定监听地址与端口参数定义见 melo/app.py。界面操作要点从 melo/app.py 可见Language单选EN/ES/FR/ZH/JP/KRSpeaker下拉切换该语言下的不同音色切换语言时自动更新可选音色列表Speed滑块范围0.1 ~ 10.0默认1.0步长0.1Text输入框内置了各语言的默认示例文本方便直接试听。WebUI 在内部为每种语言各实例化一个TTS模型melo/app.py首次启动时会自动下载对应语言的模型权重详见下文第四节。3.2 CLICLI 可通过melotts或melo两个命令调用命令入口均为 melo/main.py 的main。以下为 docs/install.md 中的官方示例朗读英文文本melo Text to read output.wav指定语言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英语可用的音色包括EN-Default、EN-US、EN-BR、EN_INDIA、EN-AU。调节语速melo Text to read output.wav --language EN --speaker EN-US --speed 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查看。3.3 Python APIPython API 是进行二次开发的核心接口入口为melo.api.TTS。所有语言共享同一套调用范式构造TTS(language..., device...)→ 通过model.hps.data.spk2id获取音色 ID 映射 → 调用model.tts_to_file(text, speaker_id, output_path, speed...)合成音频。tts_to_file在未指定output_path时会直接返回 numpy 音频数组便于在程序中继续处理见 melo/api.py。设备选择device参数支持cpu、cuda、cuda:0、mpsmacOS 金属加速以及auto。传auto时会自动探测优先 CUDA其次 MPS最后回退到 CPU见 melo/api.py。官方注释强调CPU 足以满足实时推理普通场景可直接使用 CPU。英语多口音from melo.api import TTS # Speed is adjustable speed 1.0 # CPU is sufficient for real-time inference. # You can set it manually to cpu or cuda or cuda:0 or mps device auto # Will automatically use GPU if available # English text Did you ever hear a folk tale about a giant turtle? model TTS(languageEN, devicedevice) speaker_ids model.hps.data.spk2id # American accent output_path en-us.wav model.tts_to_file(text, speaker_ids[EN-US], output_path, speedspeed) # British accent output_path en-br.wav model.tts_to_file(text, speaker_ids[EN-BR], output_path, speedspeed) # Indian accent output_path en-india.wav model.tts_to_file(text, speaker_ids[EN_INDIA], output_path, speedspeed) # Australian accent output_path en-au.wav model.tts_to_file(text, speaker_ids[EN-AU], output_path, speedspeed) # Default accent output_path en-default.wav model.tts_to_file(text, speaker_ids[EN-Default], output_path, speedspeed)西班牙语from melo.api import TTS speed 1.0 device cpu # or cuda:0 text El resplandor del sol acaricia las olas, pintando el cielo con una paleta deslumbrante. model TTS(languageES, devicedevice) speaker_ids model.hps.data.spk2id output_path es.wav model.tts_to_file(text, speaker_ids[ES], output_path, speedspeed)法语from melo.api import TTS speed 1.0 device cpu # or cuda:0 text La lueur dorée du soleil caresse les vagues, peignant le ciel dune palette éblouissante. model TTS(languageFR, devicedevice) speaker_ids model.hps.data.spk2id output_path fr.wav model.tts_to_file(text, speaker_ids[FR], output_path, speedspeed)中文中英混合from melo.api import TTS speed 1.0 device cpu # or cuda:0 text 我最近在学习machine learning希望能够在未来的artificial intelligence领域有所建树。 model TTS(languageZH, devicedevice) speaker_ids model.hps.data.spk2id output_path zh.wav model.tts_to_file(text, speaker_ids[ZH], output_path, speedspeed)日语from melo.api import TTS speed 1.0 device cpu # or cuda:0 text 彼は毎朝ジョギングをして体を健康に保っています。 model TTS(languageJP, devicedevice) speaker_ids model.hps.data.spk2id output_path jp.wav model.tts_to_file(text, speaker_ids[JP], output_path, speedspeed)韩语from melo.api import TTS speed 1.0 device cpu # or cuda:0 text 안녕하세요! 오늘은 날씨가 정말 좋네요. model TTS(languageKR, devicedevice) speaker_ids model.hps.data.spk2id output_path kr.wav model.tts_to_file(text, speaker_ids[KR], output_path, speedspeed)更多可调参数tts_to_file还暴露了以下采样参数默认值见 melo/api.pysdp_ratio0.2、noise_scale0.6、noise_scale_w0.8。其中speed通过length_scale1/speed作用于时长melo/api.pyformat参数可指定输出容器格式如wav、flac等WebUI 即通过它直接向内存缓冲区写出 WAV 数据见 melo/app.py。推理内部的文本处理链路从源码可以看出melo/api.py一次合成会先经split_sentence将长文本切分为句子随后对每个句子调用utils.get_text_for_tts_infer完成分词、音素化与 BERT 特征提取最后送入SynthesizerTrn模型推理并将各句音频以约 50ms 静音间隔拼接melo/api.py。中文混英文本在合成前还会把相邻的英文大小写字母如machineLearning自动拆分为单词见 melo/api.py。四、模型权重的自动下载机制第一次实例化TTS(language...)时模型权重与配置文件会按需下载。下载逻辑封装在 melo/download_utils.py 的load_or_download_config与load_or_download_model中默认从预置的远程源获取use_hfTrue时从 Hugging Face 下载同时这两个函数都支持传入config_path/ckpt_path显式指定本地文件加载用户自训模型时需要用到这一能力见下文第六节。五、在自有数据集上训练自定义 MeloTTS 模型若现有音色/语种无法满足需求可以基于自己的音频数据训练模型。完整流程见 docs/training.md步骤如下。5.1 准备工作以开发模式安装 MeloTTS 并进入melo目录pip install -e . cd melo5.2 数据准备训练需要两部分数据音频文件官方建议使用44100Hz 采样率的音频metadata 清单文件每行一条记录格式为path/to/audio_001.wav |speaker_name|language_code|text_001 path/to/audio_002.wav |speaker_name|language_code|text_002字段之间用竖线|分隔依次为音频相对路径、说话人名称、语言代码如EN、转写文本。文本转写可以通过 ASR 模型如 Whisper自动获得。仓库自带的示例见 melo/data/example/metadata.list其中包含 20 条以EN-default为说话人的英语语句。5.3 文本预处理运行预处理脚本python preprocess_text.py --metadata data/example/metadata.list该脚本melo/preprocess_text.py会完成对每条文本执行清洗、音素化clean_text_bert生成音素序列、声调序列与字-音素对齐信息为每条音频计算并缓存 BERT 特征*.bert.pt文件按说话人划分训练集与验证集每个说话人默认取--val-per-spk4条作为验证验证集总数上限--max-val-total8见 melo/preprocess_text.py生成train.list、val.list与data/example/config.json配置文件并把说话人 ID 映射spk2id、音素表、语言数、声调数写入其中melo/preprocess_text.py。预处理生成的config.json允许按需编辑超参数例如遇到CUDA 显存不足CUDA out-of-memory时可将train.batch_size调小默认 6。完整的配置骨架可参考 melo/configs/config.json其中核心字段包括train 段log_interval200日志间隔、eval_interval1000评估与存点间隔、seed52、epochs10000、learning_rate0.0003、batch_size6、fp16_runfalse、lr_decay0.999875、segment_size16384、c_mel45Mel 损失权重、c_kl1.0KL 损失权重、skip_optimizertrue断点续训时跳过优化器状态等data 段sampling_rate44100、filter_length2048、hop_length512、win_length2048、n_mel_channels128、n_speakers256训练时会被预处理结果覆盖为真实说话人数、spk2id{}同样会被填充等model 段use_spk_conditioned_encodertrue、use_noise_scaled_mastrue、use_duration_discriminatortrue、inter_channels192、hidden_channels192、filter_channels768、n_heads2、n_layers6、resblock1、upsample_rates[8,8,2,2,2]等 VITS2 风格结构参数。5.4 启动训练bash train.sh path/to/config.json num_of_gpus例如单卡训练示例数据bash train.sh data/example/config.json 1。训练脚本 melo/train.sh 内部通过torchrun --nproc_per_node$GPUS --master_port10902 train.py --c $CONFIG --model $MODEL_NAME启动分布式训练。值得注意的实现细节melo/train.py 中进程组后端固定使用gloo而非 nccl——官方注释说明这是为了规避部分机器上 gloo 相关的偶发崩溃问题train.sh采用while 循环自动续训包装一旦训练进程异常退出会自动清理残留进程并重新拉起配合 checkpoint 的自动加载实现断点续训训练由生成器SynthesizerTrn、多周期判别器MultiPeriodDiscriminator与可选的时长判别器DurationDiscriminator构成 GAN 对抗训练框架损失函数定义见 melo/losses.py每eval_interval步保存一次G_iter.pth、D_iter.pth、DUR_iter.pth检查点并按keep_ckpts默认保留最近 5 个自动清理旧检查点melo/train.py。5.5 用自训模型推理训练完成后用infer.py对任意文本合成语音python infer.py --text some text here -m /path/to/checkpoint/G_iter.pth -o output_dir参数含义-m/--ckpt_path指定生成器检查点路径-l/--language指定语言默认EN-o/--output_dir指定输出目录默认outputs。从 melo/infer.py 的源码可见该脚本会自动在检查点同目录查找config.jsonmelo/infer.py加载对应语言的TTS模型并为该模型spk2id中的每个说话人各生成一份output.wavmelo/infer.py。六、常见问题与要点小结日语合成失败/报 unidic 相关错误确认已执行python -m unidic downloadWindows/macOS 依赖冲突优先使用仓库自带 Dockerfile 构建镜像运行显存不足调小config.json中train.batch_size训练中途崩溃无需手工干预train.sh会自动重试并从最近 checkpoint 恢复CLI 参数记忆随时执行melo --help查看完整用法。MeloTTS 以一套统一的TTS接口封装了多语言、多口音、CPU 实时推理与自定义训练能力无论你是想快速集成 TTS 能力到应用中还是希望基于私有数据微调多说话人模型都可以从本文的安装、API 与训练流程入手快速落地。【免费下载链接】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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Momentum-Firmware 构建工具 fbt 完全指南:从工具链自举到固件发布 2026/9/16 16:55:26

Momentum-Firmware 构建工具 fbt 完全指南:从工具链自举到固件发布

Momentum-Firmware 构建工具 fbt 完全指南:从工具链自举到固件发布 【免费下载链接】Momentum-Firmware 🐬 Feature-rich, stable and customizable Flipper Firmware 项目地址: https://gitcode.com/GitHub_Trending/mo/Momentum-Firmware fbt&a…

阅读更多 →
AI时代程序员的分水岭:掌握高效提问技巧,让AI编程效率翻倍 2026/9/16 16:55:26

AI时代程序员的分水岭:掌握高效提问技巧,让AI编程效率翻倍

1. 为什么“会提问”成了程序员的硬技能最近团队里有个现象挺值得玩味:两个技术底子差不多的同事,用同一款AI编程工具,产出效率能差出两三倍。差的不是手速,也不是对业务的理解深度,而是问问题的方式。一个上来就是“帮…

阅读更多 →
在 workerd 中端到端验证 OpenNext Cloudflare SSR 应用:测试架构、构建流水线与兼容性标志解析 2026/9/16 16:55:26

在 workerd 中端到端验证 OpenNext Cloudflare SSR 应用:测试架构、构建流水线与兼容性标志解析

在 workerd 中端到端验证 OpenNext Cloudflare SSR 应用:测试架构、构建流水线与兼容性标志解析 【免费下载链接】workerd The JavaScript / Wasm runtime that powers Cloudflare Workers 项目地址: https://gitcode.com/GitHub_Trending/wo/workerd 本文以…

阅读更多 →
Spring WebFlux 响应式编程实战指南:从 Controller 到 R2DBC 的全链路架构(java-architect) 2026/9/16 16:55:26

Spring WebFlux 响应式编程实战指南:从 Controller 到 R2DBC 的全链路架构(java-architect)

Spring WebFlux 响应式编程实战指南:从 Controller 到 R2DBC 的全链路架构(java-architect) 【免费下载链接】claude-skills 67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer. …

阅读更多 →
在 Xinference 中部署与调用 bce-embedding-base_v1:内置双语 Embedding 模型实战指南 2026/9/16 16:55:26

在 Xinference 中部署与调用 bce-embedding-base_v1:内置双语 Embedding 模型实战指南

在 Xinference 中部署与调用 bce-embedding-base_v1:内置双语 Embedding 模型实战指南 【免费下载链接】inference Swap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-pr…

阅读更多 →
gog 安全归档实战:用 Gmail 附件下载 + Google Drive 上传实现端到端存档 2026/9/16 16:52:26

gog 安全归档实战:用 Gmail 附件下载 + Google Drive 上传实现端到端存档

gog 安全归档实战:用 Gmail 附件下载 Google Drive 上传实现端到端存档 【免费下载链接】gogcli Google Workspace in your terminal. 项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli 导读 本文基于 gogcli 仓库中的 Agent 技能文档 gog-sav…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞