本文档记录 ByteDance/MegaTTS3 在 Ascend NPU 环境的适配与验证结果。
MegaTTS3 是字节跳动提出的零样本语音合成模型,采用 Sparse Alignment Enhanced Latent Diffusion Transformer 架构。模型总参数量约 0.78B,包含:
| 组件 | 参数量 | 说明 |
|---|---|---|
| Diffusion Transformer (DiT) | 459M | 24层, 1024维, 16头 |
| WaveVAE (Decoder) | 256M | 仅解码器模式 |
| AR Duration Predictor | 67M | 自回归时长预测 |
| Aligner (Whisper-based) | 53M | 音素对齐 |
| G2P (Qwen2.5-0.5B) | 0.5B | 字素-音素转换 |
相关获取地址:
| 文件 | 改动内容 |
|---|---|
tts/infer_cli.py | 设备检测 NPU 支持, autocast 泛化 |
tts/frontend_function.py | 4 处 autocast 调用适配 |
tts/gradio_api.py | NPU 设备检测 |
tts/utils/audio_utils/io.py | soundfile 回退 |
tts/text_norm_fix.py | pynini 回退文本正则化(新增) |
| 组件 | 版本 |
|---|---|
torch | 2.9.0+cpu |
torch-npu | 2.9.0.post1 |
CANN | 8.5.1 |
| NPU | Ascend910B4 |
测试条件:Ascend910B4 NPU,float16 精度。
| 测试场景 | 语言 | 扩散步数 | 预处理(s) | 推理(s) | 输出大小 | 显存占用 |
|---|---|---|---|---|---|---|
| zh_short | 中文 | 8 | 3.64 | 3.38 | 177 KB | 6.14 GB |
| zh_short | 中文 | 16 | 3.64 | 3.70 | 181 KB | 6.14 GB |
| en_short | 英文 | 8 | 2.75 | 3.90 | 230 KB | 6.14 GB |
| en_short | 英文 | 16 | 2.75 | 4.20 | 234 KB | 6.14 GB |
注:首次推理含 NPU 图编译开销(约 30s),后续推理稳定在 3-5s。
python tts/infer_cli.py \
--input_wav 'assets/Chinese_prompt.wav' \
--input_text "你好世界,欢迎使用人工智能语音合成系统。" \
--output_dir ./gen.npy latent 文件。