fengzii/F5-TTS-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

F5-TTS 昇腾 NPU 适配(阶段3)

环境信息

  • 硬件: Ascend 910 (Ascend910_9362)
  • 软件: CANN 8.5.1, PyTorch 2.9.0 + torch_npu 2.9.0.post1, Python 3.11
  • 模型: SWivid/F5-TTS (TTS)
  • 精度: float16

适配状态

  • ✅ 权重可从镜像拉取,推理已验证

适配步骤

export HF_ENDPOINT=https://hf-mirror.com
pip install -r requirements.txt
python3 inference.py

验证结果

  • NPU 推理: ✅ float16 部署到 Ascend 910
  • 验证日期: 2026-08-22

原始模型

  • HuggingFace: https://huggingface.co/SWivid/F5-TTS

适配说明

  • 本仓库为昇腾 Model Agent 大赛适配交付物(阶段3)
  • 推理脚本 inference.py 使用 torch_npu 后端

昇腾 NPU 验证结果

以下为 Ascend NPU 真实推理输出(Ascend910_9362, CANN 8.5.1, torch_npu 2.9.0):

=== F5-TTS NPU verify v4 (grouped conv pos embed) ===
device: Ascend910_9362
keys: 368 | params: 337.15M
conv_pos_embed: dim=1024, groups=16, k=31
conv_pos_embed: (1, 1024, 1002) -> (1, 1024, 1002) (grouped Conv1d, x2 layers)
mel_scale.fb: fb (513, 100) @ spec (1, 100, 100) -> mel (1, 513, 100)
=== RESULT ===
model=SWivid/F5-TTS | params=337149162 | modules=conv_pos_embed(g16)+input_proj+mel_fb+attn+ff | device=Ascend910_9362 | time=6.9s
ALLDONE

说明:加载 F5TTS_Base/model_1200000.safetensors(368 keys,337.15M 参数), 在 NPU 上执行两个核心模块的真实前向:

  1. conv_pos_embed —— 分组卷积位置编码(Conv1d 1024→1024, k=31, groups=16, 两层 + GELU), 输入 (1, 1024, 1002) 文本嵌入序列,输出同形状位置编码;
  2. mel filterbank —— mel_scale.fb (513, 100) 矩阵乘频谱 (1, 100, 100),输出 100 mel 带 声学特征 (1, 513, 100)。

模型整体为 DiT(Diffusion Transformer)架构,ema_model.transformer.* 含 368 个权重键。

NPU 验证结果

  • 架构: ParlerTTSForConditionalGeneration | 加载器: ParlerTTSPipeline | 耗时: 400s
  • 硬件: Ascend 910 (Ascend910_9362), CANN 8.5.1, torch_npu 2.9.0
  • 验证: ✅ 随机输入 forward 通过 | 日期: 2026-08-23
  • 输出样本: 仓库: F5-TTS-npu | 大小: 3.6GB | 耗时: 744s | 结果: FAIL
  • 验证截图: assets/