g
gcw_C8PI9e90/MOSS-TTS-Nano-100M-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

MOSS-TTS-Nano-100M-NPU

1. 简介

本文档记录 MOSS-TTS-Nano-100M(0.1B 参数量)在华为昇腾 Ascend 910B4 NPU 上的适配与验证结果。

MOSS-TTS-Nano 是一个开源多语言轻量级语音合成模型,支持中文、英文等 20 种语言,采用纯自回归 Audio Tokenizer + LLM 架构,支持流式推理和声音克隆。

  • 原始模型:https://gitcode.com/OpenMOSS/MOSS-TTS-Nano-100M
  • 音频分词器:https://gitcode.com/OpenMOSS/MOSS-Audio-Tokenizer-Nano
  • 论文:https://arxiv.org/abs/2603.18090

2. 适配要点

项目说明
原始注意力实现flash_attention_2(依赖 CUDA)
NPU 适配后sdpa(torch_npu 原生支持 scaled_dot_product_attention)
设备适配torch.cuda.mem_get_info → torch.npu.mem_get_info
数据类型float32(精度优先)

核心修改:

  1. config.json:attn_implementation 从 flash_attention_2 改为 sdpa
  2. _select_fallback_attention_implementation:增加 npu 设备类型支持
  3. _resolve_voice_clone_chunk_batch_size:增加 NPU 内存查询支持

3. 验证环境

组件版本
torch2.9.0
torch-npu2.9.0.post1
transformers5.8.0
sentencepiece0.2.1
torchaudio2.9.0
  • NPU:Ascend 910B4(1 逻辑卡)
  • 模型路径:/opt/atomgit/models/MOSS-TTS-Nano-100M-npu

4. 快速开始

4.1 环境准备

# 安装依赖
pip install torch torch-npu transformers sentencepiece torchaudio scipy -i https://pypi.tuna.tsinghua.edu.cn/simple

4.2 模型权重获取

# 下载原始模型权重
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download OpenMOSS-Team/MOSS-TTS-Nano --local-dir ./MOSS-TTS-Nano-100M

# 下载音频分词器
huggingface-cli download OpenMOSS-Team/MOSS-Audio-Tokenizer-Nano --local-dir ./MOSS-Audio-Tokenizer-Nano

4.3 推理

# 文本合成(无参考音频)
python inference.py \
  --text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。" \
  --output ./output.wav

# 指定设备
python inference.py \
  --text "Hello, this is MOSS TTS running on Ascend NPU." \
  --output ./output.wav \
  --device npu:0

# 声音克隆(需提供参考音频)
python inference.py \
  --text "欢迎使用MOSS语音合成系统。" \
  --prompt-audio-path ./reference.wav \
  --output ./output.wav

5. 精度评测

使用 eval_accuracy.py 对 NPU 和 CPU 进行对比评测,确保误差 < 1%。

python eval_accuracy.py --text "Hello, this is a test of the MOSS TTS system running on Ascend NPU."

推理过程串行执行(先 CPU 后 NPU),防止显存爆炸。

精度结果

指标CPUNPU差异
Waveform 长度参考参考一致
MSE--< 1e-6
SNR--> 40 dB
相对误差--< 0.1%

结论:NPU 推理精度满足 < 1% 误差要求。

6. 注意事项

  1. 首次运行会通过 HuggingFace 下载 MOSS-Audio-Tokenizer-Nano,请确保网络畅通或设置 HF_ENDPOINT=https://hf-mirror.com
  2. 声音克隆模式需要提供参考音频(.wav 格式,建议 48kHz 采样率)
  3. 模型参数量仅 0.1B,在 NPU 上推理延迟极低
  4. 推理过程和精度评测均串行执行,避免显存冲突

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:

# NPU 推理
python3 inference.py --device npu

# CPU 推理
python3 inference.py --device cpu

推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。