Ascend-SACT/CosyVoice2-OM
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

前言

本镜像内置了适配(并优化)于昇腾平台的 CosyVoice2 代码和 CosyVoice2-0.5B 权重,用户仅通过几行命令便可进行 CosyVoice2 在昇腾平台的高效推理。

环境准备

  1. 运行环境
服务器910B2*1
权重类型OM
固件驱动版本23.0.5.1及以上
  1. 确保系统内已经正确的安装了 Docker 及 Ascend Docker Runtime
  2. 从本项目下载 cosyvoice2-modelzoo.tar.gz 镜像文件
  3. 导入 Docker 镜像
docker load --input ./cosyvoice2-modelzoo.tar.gz
  1. 创建 Docker 容器
CONTAINER_NAME = "your container name"
IMAGE = "your image name"
docker run \
--name $CONTAINER_NAME \
--privileged \
--device /dev/davinci1 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-it $IMAGE bash
  1. 启动容器
docker exec -it $CONTAINER_NAME bash

执行推理

** 注:以下部分需要在容器内执行

  1. 移步到代码目录
cd /home/ModelZoo-PyTorch/ACL_PyTorch/built-in/audio/CosyVoice2/CosyVoice
  1. 针对不同的硬件平台,做 om 模型编译

在执行 atc 命令前,首先为 atc 创建一个 python3-config --prefix 命令的软链接

ln -s /usr/local/python3.11.13/bin/python3.11-config /usr/local/python3.11.13/bin/python3-config

分别执行以下三条命令 (注意:NPU芯片型号为 910B3 不需要再执行,权重文件夹内已预置转好的 om 权重)

atc --framework=5 --soc_version=Ascend{soc version} --model ../CosyVoice2-0.5B/speech_token_md.onnx --output ../CosyVoice2-0.5B/speech --input_shape="feats:1,128,-1;feats_length:1" --precision_mode allow_fp32_to_fp16

atc --framework=5 --soc_version=Ascend{soc version} --model ../CosyVoice2-0.5B/flow.decoder.estimator.fp32.onnx --output ../CosyVoice2-0.5B/flow --input_shape="x:2,80,-1;mask:2,1,-1;mu:2,80,-1;t:2;spks:2,80;cond:2,80,-1"

atc --framework=5 --soc_version=Ascend{soc version} --model ../CosyVoice2-0.5B/flow.decoder.estimator.fp32.onnx --output ../CosyVoice2-0.5B/flow_static --input_shape="x:2,80,-1;mask:2,1,-1;mu:2,80,-1;t:2;spks:2,80;cond:2,80,-1" --dynamic_dims="100,100,100,100;200,200,200,200;300,300,300,300;400,400,400,400;500,500,500,500;600,600,600,600;700,700,700,700" --input_format=ND

其中 {soc version} 要根据自己的硬件类型填写,执行 npu-smi info 命令,在出现的界面中,name 列即为芯片型号,如:910B3,910B4等,因此 {soc version} 处用查找出的 name 列替换。以 910B3 为例完整的参数为:--soc_version=Ascend910B3

  1. 执行推理
# 1. 指定使用NPU ID,默认为0
export ASCEND_RT_VISIBLE_DEVICES=0
# 2. 设置环境变量。执行前,课前检查环境变量是否已存在,已存在则不需要执行
export PYTHONPATH=third_party/Matcha-TTS:$PYTHONPATH
export PYTHONPATH=transformers/src:$PYTHONPATH
# 3. 执行推理脚本
python3 infer.py --model_path=../CosyVoice2-0.5B --stream_out