MireskaVoice (Ming-3.0-tts 版)
邪影芳灵(Mireska Sunbreeze / Dark Willow,Dota 2 英雄)中文音色的 Ming-3.0-tts-0.5B 微调模型。
基于 inclusionAI 开源的 Ming-3.0-tts-0.5B(BailingMM 底座,bf16 约 2.8GB),使用 899 条游戏内中文配音(879 训练 + 20 留出)进行 LoRA 微调(r=8/alpha=16 + 全量训练 audio/flow/stop/spk heads,可训练参数 206M)。说话人条件为 campplus 嵌入:训练用目标片段自身嵌入(speaker_dropout 0.5),推理用同角色参考片段嵌入(仓库内附带 eval/ref_real_dw_0857.wav)。
姊妹仓库:wjcwqc/MireskaVoice(OmniVoice 微调版,音色相似度更高,见下方对比)。
目录结构
| 路径 | 内容 |
|---|---|
merged/ |
LoRA 已合并的独立模型(sft.export 导出,标准 HF 目录,直接加载即用) |
lora/step_00000906.pt |
原始训练 checkpoint(LoRA + heads,2.4GB,可用 python -m sft.export 重新导出或 --resume 续训) |
training/ |
训练配置(yaml + resolved config)、数据准备/推理脚本、完整训练日志 |
eval/ |
20 条留出文本评估报告 JSON + 6 条生成样本 + 真人参考片段 + 说话人嵌入 |
使用方法
需要 Ming-3.0-tts 官方仓库代码(pip install -r requirements.txt):
# 1. 克隆推理代码
git clone https://github.com/inclusionAI/Ming-3.0-tts # 仓库根需含 ming_tts.py 等
# 2. 下载本仓库
huggingface-cli download wjcwqc/MireskaVoice-ming --local-dir ./MireskaVoice-ming
# 3. 批量合成(自带脚本,campplus 参考嵌入自动从 ref_real_dw_0857.wav 提取)
python ./MireskaVoice-ming/training/infer_ming.py \
--model_path ./MireskaVoice-ming/merged \
--texts texts.json \
--out_dir out \
--spk_wav ./MireskaVoice-ming/eval/ref_real_dw_0857.wav \
--device cuda:0
texts.json 格式:{"tid1": "文本1", "tid2": "文本2"}。
单句推理(官方接口):
import sys; sys.path.insert(0, "<Ming-3.0-tts 仓库>")
from ming_tts import MingTTS
model = MingTTS("./MireskaVoice-ming/merged", device="cuda:0", text_normalization=False)
推理参数(评估所用):seed=1895,cfg=2.0,temperature=0.0。硬件参考:单卡 4GB 显存即可(bf16 + gradient checkpointing 训练实测通过)。
效果评估(20 条留出文本,真人片段互相相似度基线 0.6994)
| 模型 | CER(字错率)↓ | spk-sim(音色相似度)↑ |
|---|---|---|
| Ming-3.0-tts LoRA(本模型) | 0.0416 | 0.6454 |
| OmniVoice 微调(姊妹仓库) | 0.028 | 0.758 |
| CosyVoice3 零样本 | 0.056 | 0.706 |
| VITS 微调 | 0.306 | 0.572 |
16/20 句零字错;错误集中在专有名词(铁雾城→鐵屋城、米瑞斯嘉→米瑞斯加)。逐句明细见 eval/eval_report.json,完整报告见 REPORT.md。
训练信息
- 数据:899 条(879 训练 + 20 留出),32kHz 原始音频;数据准备脚本
training/prep_ming_data.py(campplus 嵌入随样本缓存) - 方法:LoRA r=8 alpha=16 dropout=0.05,目标层 q/k/v/o_proj;全量训练 linear_proj_audio、flowloss、stop_head、spk_head
- 超参:lr 1e-5 → 1e-6(warmup 100 步),10 epochs = 906 步,max_tokens_per_batch 1024,bf16,gradient checkpointing,speaker_dropout 0.5
- 硬件:单卡 RTX 3050 Ti Laptop 4GB,约 2 小时 40 分;loss 0.566 → ~0.50
- 过程:配置
training/lora_config.yaml、完整日志training/train_full.log(逐步 JSON 见training/train_log.jsonl)
免责声明
本模型为个人学习/研究用途的语音克隆作品。角色"邪影芳灵"版权归 Valve Corporation 所有,原始配音数据提取自游戏文件。请勿用于商业用途。模型代码与权重继承 Ming-3.0-tts 的 MIT 许可。