# Confucius4-TTS **Repository Path**: sdq/Confucius4-TTS ## Basic Information - **Project Name**: Confucius4-TTS - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Confucius4-TTS

Confucius4-TTS: 多语种跨语种零样本TTS

一种音色,任意语言。

                             

Confucius4-TTS 是一款基于大语言模型(LLM)的先进文本转语音(TTS)系统,专为多语种和跨语种语音合成而设计。基于语音编码器 + 大语言模型(LLM)架构构建,能够在保持说话人音色一致的同时,实现跨语种的高质量语音生成。 在线 Demo 页面体验:[https://confucius4-tts.youdao.com/gradio] **✨ 核心特性** - **支持 14 种语言**:中文、英文、日语、韩语、德语、法语、西班牙语、印尼语、意大利语、泰语、葡萄牙语、俄语、马来语、越南语 *(更多语言即将推出)* - **无约束声音克隆**:无需参考文本 - **跨语种声音迁移**:跨 14 种语言的无口音语音合成 - **零样本声音迁移**:无需额外训练即可克隆声音 - **无缝情感迁移**:克隆情感,而非仅仅是声音 - **强泛化能力**:在真实多语种场景中表现稳定 凭借强大的跨语种泛化能力,Confucius4-TTS 允许用户在保持相同音色的同时无缝切换语言,提供流畅、自然且富有表现力的语音。 ## Contents - [环境安装](#-环境安装) - [推理](#-推理) - [训练](#-训练) - [性能](#-性能) - [引用](#引用) ## 🛠 环境安装 ### 环境要求 - Python 3.10 - CUDA 12.6 ### 安装步骤 1. 克隆仓库: ```bash git clone https://github.com/netease-youdao/Confucius4-TTS.git cd Confucius4-TTS ``` 2. 创建并激活 conda 环境: ```bash conda create -n confuciustts python=3.10 -y conda activate confuciustts ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` ## 🚀 推理 对于访问 HuggingFace 受限的环境,运行前可设置镜像端点: ```bash export HF_ENDPOINT=https://hf-mirror.com ``` ### 基础用法 使用提供的 `example.py` 脚本进行 zero-shot TTS 合成: ```bash python example.py \ --prompt_wav path/to/reference.wav \ --text "要合成的文本" \ --lang zh \ --out output.wav \ --config config/inference_config.yaml ``` 也可以直接使用 Python API: ```python import torch import torchaudio from confuciustts.cli.inference import ConfuciusTTS model = ConfuciusTTS( config_path="config/inference_config.yaml", device="cuda" if torch.cuda.is_available() else "cpu", ) audio = model.generate( text="你好,欢迎使用 Confucius4-TTS。", lang="zh", prompt_wav="path/to/reference.wav", verbose=True, ) torchaudio.save("output.wav", audio.cpu(), model.sample_rate) ``` ### vLLM 用法 上面的基础路径使用 HuggingFace Transformers 运行 Text2Semantic(T2S)自回归阶段。如需更快的 T2S 生成,可切换到 **vLLM** 后端(`example_vllm.py`),通过 PagedAttention 加速 LLM 阶段。 当前支持 **vLLM 0.16.0(V1 engine)**。更早的 vLLM 版本未经过测试,可能无法运行,因为模型注册和 `GPUModelRunner` 的 monkey-patch 针对的是 v1 engine 内部实现。 > ⚠️ `vllm` 对 GPU 架构 / 驱动 / CUDA 有特定要求,可能无法在你的硬件上运行;直接装进基础环境可能破坏其它依赖。建议从基础环境**克隆一个独立的 conda 环境**,只安装 vLLM 的附加依赖。 ```bash # 1. 从基础环境克隆一个专用环境(继承 confuciustts 的依赖) conda create -n confuciustts_vllm --clone confuciustts conda activate confuciustts_vllm # 2. 安装 vLLM 附加依赖 pip install -r requirements_vllm_add.txt # 3. 运行 vLLM 示例(模型在首次运行时自动下载) python example_vllm.py \ --prompt_wav path/to/reference.wav \ --text "要合成的文本" \ --lang zh \ --out output_vllm.wav ``` 通过 `--stream` 参数同时支持非流式与流式生成: ```bash # 非流式:合成整段语音并保存为一个 .wav python example_vllm.py \ --prompt_wav path/to/reference.wav \ --text "要合成的文本" \ --lang zh \ --out output_vllm.wav # 流式:逐块生成(model.generate_stream),此处拼接为一个 .wav python example_vllm.py \ --prompt_wav path/to/reference.wav \ --text "要合成的文本" \ --lang zh \ --out output_vllm_stream.wav \ --stream ``` ### Web Demo 提供了一个 Gradio 网页界面,可在浏览器中进行交互式 zero-shot 声音克隆:上传参考音频、输入文本、选择语言并点击生成。 ```bash python webui.py --port 7860 ``` 然后在浏览器打开 `http://<服务器IP>:7860`。参考音频通过 HTTP 上传到服务器,因此客户端浏览器无需与服务器共享文件系统。 ### 在线服务 如需程序化调用(例如从另一台服务/机器调用 TTS),可使用 FastAPI 服务。它同时提供非流式与流式接口,并以 HTTP 文件上传方式接收参考音频,因此客户端与服务器无需在同一台机器上。 ```bash python server.py --port 8000 ``` | 接口 | 方法 | 说明 | |---|---|---| | `/api/tts` | POST(multipart) | 非流式:返回完整的 `.wav`(PCM 16-bit) | | `/api/tts/stream` | POST(multipart) | 流式:原始 int16-LE PCM 分块(采样率见 `X-Sample-Rate` 头) | 请求表单字段:`text`、`lang`(如 `zh`、`en`、`ja`)、`reference`(音频文件上传)。 ```bash # 非流式 → out.wav curl -F "text=要合成的文本" -F "lang=zh" -F "reference=@path/to/reference.wav" \ http://localhost:8000/api/tts -o out.wav # 流式 → 原始 int16 PCM(22050 Hz,单声道),按 X-Sample-Rate 头播放 curl -F "text=要合成的文本" -F "lang=zh" -F "reference=@path/to/reference.wav" \ http://localhost:8000/api/tts/stream -o out.pcm ``` ## 🚀 微调 Confucius4-TTS 采用「语音编码器 + LLM」架构,训练流程涵盖以下两个模块: - **Text2Semantic(T2S)**:根据文本与说话人条件生成语义 token 序列。 - **Semantic2Acoustic(S2A)**:流匹配模型,将语义 token 转换为梅尔频谱图。 ### 1. 准备预训练模型 下载两个外部模型: ```bash # Wav2Vec2-BERT(说话人条件化 & 语义特征提取) huggingface-cli download facebook/w2v-bert-2.0 \ --local-dir pretrained/w2v-bert-2.0 # Amphion MaskGCT(语义编解码器实现) git clone https://github.com/open-mmlab/Amphion.git external/Amphion ``` 下载完成后,目录结构如下: ``` checkpoints/ ├── t2s_model.safetensors # T2S 预训练权重 ├── s2a_model.pt # S2A 预训练权重 ├── wav2vec2bert_stats.pt # 语义特征归一化统计量 ├── special_tokens_map.json # 分词器文件 ├── tokenizer.json ├── tokenizer.model └── tokenizer_config.json pretrained/ ├── w2v-bert-2.0/ # Wav2Vec2-BERT 模型 └── campplus/ └── campplus_cn_common.bin # CAMPPlus 说话人编码器权重 external/ └── Amphion/ # MaskGCT 语义编解码器实现 ``` ### 2. 准备训练数据 训练数据为 **TSV 文件**(制表符分隔),不含表头,包含以下 5 列: | 列名 | 说明 | |---|---| | `lang` | 语言代码(如 `zh`、`en`、`ja`) | | `wav_path` | 目标音频路径 | | `norm_text` | 归一化后的文本 | | `semantic_ids_path` | 预提取的语义 token(`.npy` 文件路径) | | `ref_audio_paths` | 参考音频路径,支持多个用逗号分隔 | 在 `config/train_t2s.yaml` 中配置训练/验证集路径: ```yaml data: train_data_path: - data/train.tsv val_data_path: - data/val.tsv ``` ### 3. 启动 T2S 训练 在 `config/train_t2s.yaml` 中设置预训练 T2S 权重路径: ```yaml paths: t2s_checkpoint: checkpoints/t2s_model.safetensors ``` **单机训练:** ```bash python -m confuciustts.cli.train_t2s -c config/train_t2s.yaml ``` ### 4. 启动 S2A 训练 在 `config/train_s2a.yaml` 中设置权重路径。`t2s_checkpoint` 指向冻结的 T2S 骨干网络;`s2a_checkpoint` 为可选项,用于从预训练 S2A 模型继续训练: ```yaml paths: t2s_checkpoint: checkpoints/t2s_model.safetensors s2a_checkpoint: checkpoints/s2a_model.pt # 可选:从预训练 S2A 权重继续训练 ``` **单机训练:** ```bash python -m confuciustts.cli.train_s2a -c config/train_s2a.yaml ``` S2A 训练过程中,T2S 模型、说话人编码器(Wav2Vec2-BERT)和风格编码器(CAMPPlus)均处于冻结状态,只有流匹配 S2A 模型参与训练。 ## 📊 性能 Confucius4-TTS 在多语种及跨语种零样本 TTS 基准测试中表现优异,兼具高可懂度与说话人相似度。 > WER/CER 越低越好(↓),SIM 越高越好(↑)。 ### CV3-eval 跨语种
CV3-eval 跨语种结果(点击展开) | Direction | Metric | Confucius4-TTS | F5-TTS† | Spark-TTS | CosyVoice2† | CosyVoice3-0.5B† | CosyVoice3-0.5B + DiffRO† | CosyVoice3-1.5B† | CosyVoice3-1.5B + DiffRO† | |---|---|---:|---:|---:|---:|---:|---:|---:|---:| | en→zh | WER↓ | **6.71** | 11.60 | 12.40 | 13.50 | 8.48 | 5.16 | 8.01 | 5.09 | | ja→zh | WER↓ | 4.93 | – | – | 48.10 | 6.86 | 3.22 | 6.78 | **3.05** | | ko→zh | WER↓ | 1.46 | – | – | 7.70 | 5.24 | **1.03** | 3.30 | 1.06 | | zh→en | WER↓ | **3.19** | 5.57 | 7.36 | 17.10 | 6.83 | 4.41 | 5.39 | 4.20 | | ja→en | WER↓ | **3.44** | – | – | 11.20 | 5.86 | 4.78 | 5.94 | 4.19 | | ko→en | WER↓ | **3.42** | – | – | 13.10 | 18.30 | 7.91 | 13.70 | 7.08 | † 需要参考文本。
### X-Voice Benchmark
X-Voice 跨语种结果(点击展开) | Direction | Metric | Confucius4-TTS | X-Voice | OmniVoice† | IndexTTS2 | |---|---|---:|---:|---:|---:| | de→zh | WER↓ | **2.86** | 3.07 | 13.10 | 3.46 | | | SIM↑ | 0.569 | 0.516 | **0.691** | 0.544 | | en→zh | WER↓ | 3.27 | **3.06** | 4.03 | 3.78 | | | SIM↑ | 0.504 | 0.443 | **0.544** | 0.485 | | fr→zh | WER↓ | **2.74** | 3.01 | 18.10 | 3.53 | | | SIM↑ | 0.550 | 0.518 | **0.686** | 0.543 | | ja→zh | WER↓ | 3.50 | **3.39** | 79.10 | 4.11 | | | SIM↑ | 0.637 | 0.629 | **0.709** | 0.650 | | ko→zh | WER↓ | **2.86** | 3.13 | 11.88 | 2.90 | | | SIM↑ | 0.649 | 0.655 | **0.718** | 0.650 | | th→zh | WER↓ | 2.87 | **2.79** | 3.30 | 3.08 | | | SIM↑ | 0.623 | 0.614 | **0.661** | 0.622 | | vi→zh | WER↓ | **2.75** | 2.78 | 10.51 | 2.98 | | | SIM↑ | 0.640 | 0.641 | **0.701** | 0.641 | † 需要参考文本。
### Seed-TTS-eval
Seed-TTS-eval 中英文测试集结果(点击展开) | Language | Metric | Confucius4-TTS | Qwen3-TTS | FishAudio S2† | OmniVoice† | VoxCPM2† | X-Voice | |---|---|---:|---:|---:|---:|---:|---:| | English | WER↓ | 1.49 | 1.24 | **0.99** | 1.60 | 1.84 | 1.91 | | | SIM↑ | 0.70 | 0.714 | – | 0.741 | **0.753** | 0.627 | | Chinese | CER↓ | 0.94 | 0.77 | **0.54** | 0.84 | 0.97 | 1.47 | | | SIM↑ | 0.765 | 0.770 | – | 0.777 | **0.795** | 0.746 | † 需要参考文本。
### MiniMax-Multilingual-Test
MiniMax-Multilingual-Test 结果(点击展开) | Language | Metric | Confucius4-TTS | ElevenLab | Qwen3-TTS | FishAudio S2† | OmniVoice† | VoxCPM2† | X-Voice | |---|---|---:|---:|---:|---:|---:|---:|---:| | German | WER↓ | **0.47** | 0.57 | 1.24 | 0.55 | 0.96 | 0.68 | 2.00 | | | SIM↑ | 0.775 | 0.614 | 0.768 | 0.767 | **0.812** | 0.803 | 0.763 | | French | WER↓ | 3.66 | 5.22 | **2.86** | 3.05 | 3.35 | 4.53 | 4.73 | | | SIM↑ | 0.723 | 0.535 | 0.716 | 0.698 | **0.801** | 0.735 | 0.746 | | Indonesian | WER↓ | 1.12 | **1.06** | – | 1.46 | 1.97 | 1.08 | 1.47 | | | SIM↑ | 0.765 | 0.660 | – | 0.763 | **0.805** | 0.800 | 0.725 | | Korean | WER↓ | 1.84 | 1.87 | 1.76 | **1.18** | 2.65 | 1.96 | 2.27 | | | SIM↑ | 0.812 | 0.700 | 0.790 | 0.817 | 0.828 | **0.833** | 0.788 | | Thai | WER↓ | **1.56** | 73.94 | – | 4.23 | 3.98 | 2.96 | 4.71 | | | SIM↑ | 0.773 | 0.588 | – | 0.786 | **0.841** | 0.840 | 0.791 | | Japanese | WER↓ | 4.14 | 10.65 | 3.82 | **2.76** | 4.03 | 4.63 | 7.13 | | | SIM↑ | 0.788 | 0.738 | 0.771 | 0.796 | **0.828** | **0.828** | 0.765 | | Vietnamese | WER↓ | 1.61 | 73.42 | – | 7.41 | **1.37** | 3.31 | 1.40 | | | SIM↑ | 0.751 | 0.369 | – | 0.740 | 0.805 | **0.806** | 0.672 | | Italian | WER↓ | 1.30 | 1.74 | **0.95** | 1.27 | 2.07 | 1.56 | 2.27 | | | SIM↑ | 0.787 | 0.579 | 0.752 | 0.747 | **0.812** | 0.780 | 0.780 | | Portuguese | WER↓ | 2.48 | 1.33 | 1.53 | **1.14** | 2.51 | 1.94 | 2.61 | | | SIM↑ | 0.796 | 0.711 | 0.805 | 0.781 | **0.859** | 0.837 | 0.794 | | Spanish | WER↓ | 1.02 | 1.08 | 1.13 | **0.91** | 1.03 | 1.44 | 2.91 | | | SIM↑ | 0.778 | 0.615 | 0.814 | 0.776 | 0.804 | **0.831** | 0.747 | | Russian | WER↓ | 4.64 | 3.88 | 3.21 | 2.40 | **2.23** | 3.63 | 6.49 | | | SIM↑ | 0.787 | 0.675 | 0.784 | 0.790 | 0.783 | **0.811** | 0.799 | † 需要参考文本。
--- ## 致谢 Confucius4-TTS 基于以下开源项目构建: - **[Qwen3-TTS](https://github.com/QwenLM/Qwen3-TTS)** — 说话人编码器(ECAPA-TDNN)及文本嵌入投影层架构 - **[CosyVoice](https://github.com/FunAudioLLM/CosyVoice)** — 文本归一化流程 - **[Amphion / MaskGCT](https://github.com/open-mmlab/Amphion)** — 语义编解码器实现 - **[w2v-BERT 2.0](https://huggingface.co/facebook/w2v-bert-2.0)** — 语义特征提取与说话人条件化 - **[Seed-VC](https://github.com/Plachtaa/seed-vc)** — Flow matching 架构参考 - **[BigVGAN](https://github.com/NVIDIA/BigVGAN)** — 高保真神经声码器,用于梅尔频谱图到波形的合成 --- ## 引用 如果您在研究或项目中使用了 Confucius4-TTS,请考虑引用: ```bibtex @misc{confucius4tts_2026, title = {Confucius4-TTS: A Multilingual and Cross-Lingual Zero-Shot TTS Engine}, author = {{NetEase Youdao}}, year = {2026}, howpublished = {\url{https://github.com/netease-youdao/Confucius4-TTS}}, note = {GitHub repository} } ```