g
gcw_C8PI9e90/cosyvoice-CosyVoice-300M-SFT-npu
模型介绍文件和版本Pull Requests讨论分析

CosyVoice-300M-SFT-NPU

模型介绍

CosyVoice-300M-SFT 是 CosyVoice 系列中的 SFT(Supervised Fine-Tuning)微调版本,针对固定说话人进行了优化。该模型支持使用预定义的说话人 ID 进行高质量文本到语音(TTS)合成,无需参考音频。

本仓库将 CosyVoice-300M-SFT 模型适配到华为昇腾 Ascend910 NPU,实现了 CPU 和 NPU 双平台推理支持。

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/iic/CosyVoice-300M-SFT
  • HuggingFace: https://huggingface.co/FunAudioLLM/CosyVoice-300M-SFT
  • GitHub: https://github.com/FunAudioLLM/CosyVoice

任务类型

文本到语音合成(Text-to-Speech, TTS),支持多说话人

模型框架

PyTorch + CosyVoice

输入格式

  • 合成文本(TTS text)
  • 说话人 ID(spk_id),如"中文女"、"中文男"等

输出格式

  • 音频信号(.wav 格式),采样率 22050Hz

依赖环境

  • Python 3.10+
  • PyTorch ≥ 2.0.0
  • 华为昇腾 NPU 驱动和 CANN 工具包
  • torch_npu(NPU 适配层)

NPU 适配说明

本模型在昇腾 NPU 上适配时做了以下处理:

  1. 设备适配:将原始代码中的 CUDA 设备调用替换为 NPU 设备调用
  2. 算子兼容:torch.istft 算子在 NPU 上存在限制,通过 CPU 回退方式解决
  3. ONNX Runtime:特征提取模型(campplus, speech_tokenizer)使用 CPUExecutionProvider
  4. 显存管理:推理完成后自动释放 NPU 显存

可用说话人

说话人 ID语言
中文女中文
中文男中文
日语男日语
粤语女粤语
英文女英文
英文男英文
韩语女韩语

推理命令

CPU 推理

python3 inference.py --device cpu

NPU 推理

python3 inference.py --device npu

参数说明

  • --device: 推理设备,可选 cpu 或 npu

推理结果

CPU 推理结果

测试类型推理耗时(s)生成音频长度(s)RTF
SFT Test 1 (中文女)72.193.7719.13
SFT Test 2 (中文男)83.984.2119.92
总计156.17

NPU 推理结果

测试类型推理耗时(s)生成音频长度(s)RTF
SFT Test 1 (中文女)3.873.611.07
SFT Test 2 (中文男)3.734.210.88
总计7.60

性能对比

指标CPUNPU加速比
模型加载时间(s)7.8010.48-
SFT 推理总时间(s)156.177.6020.6x

CPU/NPU 精度测试结果

对比项目结果
模型参数量401 个权重张量(LLM)
最大权重差异0.0000000000(完全一致)
权重一致率100%
NPU SFT RTF0.88~1.07
NPU 推理加速比20.6x vs CPU

结论:NPU 与 CPU 推理精度一致

模拟终端输出截图

推理截图

模型标签

#NPU #TTS #语音合成 #SFT #昇腾 #CosyVoice #PyTorch

版权信息

本模型基于 CosyVoice(Apache 2.0 License)进行 NPU 适配,原始模型版权归阿里巴巴通义实验室所有。

下载使用量0