CosyVoice-300M-Instruct 是 CosyVoice 系列中的指令式语音生成模型,支持通过自然语言指令控制生成语音的情感、语速、音高等特征。该模型基于大型语言模型(LLM)实现高质量文本到语音(TTS)合成,支持情感控制、零样本语音克隆等功能。
本仓库将 CosyVoice-300M-Instruct 模型适配到华为昇腾 Ascend910 NPU,实现了 CPU 和 NPU 双平台推理支持。
文本到语音合成(Text-to-Speech, TTS),支持指令式情感控制
PyTorch + CosyVoice
本模型在昇腾 NPU 上适配时做了以下处理:
torch.istft 算子在 NPU 上存在限制,通过 CPU 回退方式解决# 安装依赖
pip install -r requirements.txt
# 安装 CosyVoice(源代码安装)
git clone https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
git submodule update --init --recursive
# 添加 Python 路径
export PYTHONPATH=/path/to/CosyVoice/third_party/Matcha-TTS:/path/to/CosyVoice:$PYTHONPATHpython3 inference.py --device cpupython3 inference.py --device npu--device: 推理设备,可选 cpu 或 npu| 说话人 ID | 语言 |
|---|---|
| 中文女 | 中文 |
| 中文男 | 中文 |
| 日语男 | 日语 |
| 粤语女 | 粤语 |
| 英文女 | 英文 |
| 英文男 | 英文 |
| 韩语女 | 韩语 |
| 测试类型 | 推理耗时(s) | 生成音频长度(s) | RTF |
|---|---|---|---|
| Instruct Test 1 (情感:勇气与智慧) | 122.92 | 4.93 | 24.92 |
| Instruct Test 2 (简单合成) | 76.55 | 3.83 | 19.97 |
| 总计 | 199.47 |
| 测试类型 | 推理耗时(s) | 生成音频长度(s) | RTF |
|---|---|---|---|
| Instruct Test 1 (情感:勇气与智慧) | 4.36 | 4.24 | 1.03 |
| Instruct Test 2 (简单合成) | 3.63 | 3.94 | 0.92 |
| 总计 | 7.99 |
| 指标 | CPU | NPU | 加速比 |
|---|---|---|---|
| 模型加载时间(s) | 8.69 | 10.43 | - |
| Instruct 推理总时间(s) | 199.47 | 7.99 | 25.0x |
python3 inference.py --device cpu
python3 inference.py --device npupython3 compare_cpu_npu.py| 对比项目 | 结果 |
|---|---|
| 模型参数量 | 401 个权重张量(LLM) |
| 最大权重差异 | 0.0000000000(完全一致) |
| 权重一致率 | 100% |
| NPU Instruct RTF | 0.92~1.03(实时因子) |
| NPU 推理加速比 | 25.0x vs CPU |
结论:NPU 与 CPU 推理精度一致
详细分析:
CPU Instruct: 199.47s (RTF 24.92 ~ 19.97)
NPU Instruct: 7.99s (RTF 1.03 ~ 0.92)
Speedup: 25.0x
#NPU #TTS #语音合成 #指令式 #情感控制 #昇腾 #CosyVoice #PyTorch
本模型基于 CosyVoice(Apache 2.0 License)进行 NPU 适配,原始模型版权归阿里巴巴通义实验室所有。