z
zkx_/Kokoro-82M
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Kokoro-82M Ascend NPU 适配说明

概述

本项目将 Kokoro-82M 语音合成模型适配至华为昇腾 NPU(Atlas 系列),使用 torch_npu 和 vLLM-Ascend 推理框架。适配后的模型在 NPU 上的推理精度与 CPU 参考一致,NMSE 误差 < 1%。

环境要求

  • 硬件: 华为 Atlas 800 A2 / A3 推理服务器
  • OS: Ubuntu / EulerOS / openEuler (aarch64)
  • Python: 3.10+
  • PyTorch: 2.2+ (for NPU)
  • torch_npu: 对应 CANN 版本
  • CANN: 8.5.1+

快速开始

1. 安装依赖

# 安装 torch_npu(根据 CANN 版本选择)
pip install torch torch_npu

# 安装 kokoro 包
pip install kokoro misaki

# 如果 HuggingFace 网络不通,使用镜像
export HF_ENDPOINT=https://hf-mirror.com/

2. 下载模型权重

# 从 ModelScope 下载
pip install modelscope
python -c "from modelscope import snapshot_download; snapshot_download('hexgrad/Kokoro-82M', local_dir='./Kokoro-82M')"

# 或从 AtomGit 下载
git clone https://atomgit.com/hexgrad/Kokoro-82M.git

3. 推理

# NPU 推理
python inference.py --device npu --phonemes "hˈɛloʊ" --output hello.wav

# CPU 推理
python inference.py --device cpu --phonemes "hˈɛloʊ" --output hello_cpu.wav

4. 精度验证

python eval/accuracy_run.py

5. 性能基准

python eval/accuracy_run_perf.py

6. 结果检查

python eval/check_accuracy_run_perf.py

适配修改说明

核心修改文件

文件修改内容
kokoro/model.py设置 disable_complex=True 默认值,修复 ref_s[:, 128:] 切片逻辑
kokoro/pipeline.py修复 voice 索引传递方式,确保正确传递 3D 张量
inference.py新增 NPU 推理入口脚本
eval/accuracy_run.py新增精度评测脚本
eval/accuracy_run_perf.py新增性能评测脚本
eval/check_accuracy_run_perf.py新增结果检查脚本

关键适配点

  1. Complex tensor 兼容: 通过 disable_complex=True 禁用 torch.complex64 类型,因为 NPU 当前不支持 complex tensor 运算。

  2. 切片索引修复: 原始代码中 ref_s[:, 128:] 在 NPU 上错误地对 dim=1 切片(而非 dim=2),改用显式三维索引修复。

  3. 语音包索引: 修复 pipeline.py 中传递单个 frame 而非整个 3D 张量的 voice 索引方式。

精度结果

测试用例NMSECos-SimSNR
hello0.48%0.997623.19 dB
world0.71%0.996421.47 dB
this is a test0.70%0.996521.56 dB
the quick brown fox...0.60%0.997022.23 dB
平均0.62%0.996922.11 dB

结论: 最大 NMSE 0.71% < 1% 阈值,精度验证通过 ✓

性能结果

指标CPUNPU加速比
平均推理时间9.81 s0.12 s~80x
实时因子 (RTF)3.57x0.045x-

结论: NPU 推理比 CPU 快约 80 倍,实时因子 0.045(远快于实时)✓

文件结构

Kokoro-82M/
├── inference.py              # 推理入口脚本
├── eval/
│   ├── accuracy_run.py       # 精度评测
│   ├── accuracy_run_perf.py  # 性能基准测试
│   ├── check_accuracy_run_perf.py  # 结果检查
│   ├── log.txt               # 精度评测结果
│   └── log_perf.txt          # 性能评测结果
├── Kokoro-82M-ascend/
│   └── readme.md             # 本适配说明
└── voices/                   # 语音包

注意事项

  1. 首次运行会下载权重文件,请确保网络通畅或配置镜像
  2. NPU 推理需确保 torch.npu.is_available() 返回 True
  3. 当前适配基于 kokoro==0.7.6 版本
  4. 精度对比以 CPU 结果为参考基线
  5. 性能测试建议关闭其他 GPU/NPU 负载进程