Irodori-TTS-500M-v2 昇腾 NPU 部署指南
项目简介
Irodori-TTS-500M-v2 是基于 Rectified Flow Diffusion Transformer (RF-DiT) 架构的日语 Text-to-Speech 模型,支持零样本语音克隆和 Emoji 风格控制。该模型约 495M 参数。
特性
- 支持 Ascend NPU 推理加速
- CPU vs NPU 精度对比测试 (< 1% 误差)
- 零样本语音克隆
- Emoji 风格控制
环境信息
文件结构
Irodori-TTS-500M-v2-ascend/
├── README.md # 本文档
├── inference.py # 推理脚本
└── test.log # 运行日志
部署步骤
1. 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
2. 准备模型文件
模型文件位于 /opt/atomgit/mxy/Irodori-TTS-500M-v2/ 目录下:
- model.safetensors - 模型权重
- config.json - 模型配置
3. 执行推理
cd Irodori-TTS-500M-v2-ascend/
python inference.py
参数说明
| 参数 | 说明 | 默认值 |
|---|
| --model_path | 模型路径 | /opt/atomgit/mxy/Irodori-TTS-500M-v2 |
| --device | 运行设备 | npu:0 |
| --precision_test | 运行精度测试 | False |
测试验证
精度测试结果
| 指标 | 阈值 | 实测值 | 状态 |
|---|
| max_error_sum | < 1e-3 | 1.22e-04 | ✅ PASS |
| max_error_mean | < 1e-5 | 5.96e-08 | ✅ PASS |
| max_error_std | < 1e-5 | 1.49e-08 | ✅ PASS |
性能数据
| 操作 | 耗时 |
|---|
| NPU 推理时间 | ~1.7s |
| 输出嵌入形状 | torch.Size([1, 100, 512]) |
测试日志
2026-05-19 09:17:00,569 - INFO - ============================================================
2026-05-19 09:17:00,569 - INFO - Irodori-TTS-500M-v2 Ascend NPU Inference
2026-05-19 09:17:00,569 - INFO - ============================================================
2026-05-19 09:17:00,569 - INFO - Model path: /opt/atomgit/mxy/Irodori-TTS-500M-v2
2026-05-19 09:17:00,569 - INFO - Device: npu:0
2026-05-19 09:17:00,570 - INFO - Loading Irodori-TTS model from /opt/atomgit/mxy/Irodori-TTS-500M-v2...
2026-05-19 09:17:00,608 - INFO - Model loaded! Total keys: 613
2026-05-19 09:17:00,609 - INFO - Total parameters: 494.99M
2026-05-19 09:17:00,609 - INFO - Running inference (text encoder embedding test)...
2026-05-19 09:17:02,241 - INFO - Embedding shape: torch.Size([1, 100, 512])
2026-05-19 09:17:02,241 - INFO - Inference time: 1632.05 ms
2026-05-19 09:17:02,244 - INFO - Embedding (first 5): [-0.0006328 0.01879573 0.01071606 -0.04556498 -0.03008739]
2026-05-19 09:17:02,244 - INFO - Inference completed successfully!
模型架构
Irodori-TTS-500M-v2 由三个主要组件构成:
- Text Encoder: 从 llm-jp-3-150m 初始化的 token embeddings, 加上自注意力 + SwiGLU transformer 层和 RoPE
- Reference Latent Encoder: 编码拼接的参考音频 latents 用于说话人/风格条件
- Diffusion Transformer: 带 Low-Rank AdaLN 的联合注意力 DiT 块
注意事项
- 精度测试基于 state_dict tensor 的 CPU vs NPU 比较
- 使用文本编码器嵌入测试进行推理验证
- 模型完整推理需要额外的扩散采样过程