当前位置: 首页 > news >正文

在ARM+Ascend NPU上适配Step-Audio模型

A+K场景下运行Step Audio模型

1.概述

1.1 Step-Audio简介

Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言(如 粤语,四川话),可控制语速及韵律风格,支持RAP和哼唱等。其核心技术突破体现在以下四大技术亮点:
• 1300亿多模态模型: 单模型能实现理解生成一体化完成语音识别、语义理解、对话、语音克隆、语音生成等功能,开源千亿参数多模态模型 Step-Audio-Chat。
• 高效数据生成链路: 基于130B 突破传统 TTS 对人工采集数据的依赖,生成高质量的合成音频数据,并同步开源首个基于大规模合成数据训练,支持 RAP 和哼唱的指令加强版语音合成模型 Step-Audio-TTS-3B 。
• 精细语音控制: 支持多种情绪(如生气,高兴,悲伤)、方言(包括粤语、四川话等)和唱歌(包括 RAP、干声哼唱)的精准调控,满足用户对多样化语音生成的需求。
• 扩展工具调用: 通过 ToolCall 机制和角色扮演增强,进一步提升其在 Agents 和复杂任务中的表现。

1.2 Step-Audio-NPU在X86适配情况

当前step-audio模型已经在A+X环境上打通,并已经在魔乐社区上发表,具体可以参考:https://modelers.cn/models/StepFun/Step-Audio-npu

2 Step-Audio-NPU在ARM上的适配

2.1 服务器 & 容器环境信息

 服务器系统环境(这里展示本次运行的环境,当作参考)

root@2:/data/zjun/onnxruntime/build/Linux/Release/dist# uname -a
Linux 2 4.19.90-vhulk2211.3.0.h1960.eulerosv2r10.aarch64 #1 SMP Sat Dec 7 01:22:24 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

 容器环境(这里展示本次运行的环境,当作参考)
容器镜像:
swr.cn-central-221.ovaijisuan.com/wh-aicc-fae/mindie:37131-ascend_24.1.rc2-cann_8.0.rc2-py_3.10-ubuntu_22.04-aarch64-mindie_1.0.RC2.01
这里的Mind IE的镜像装好了CANN(容器的CANN版本是cann_8.0.rc2,理论上装CANN8.0即可),并且操作系统是ubuntu。

2.2 环境准备

ARM环境上的环境配置信息与x86上的配置信息一致,如下:
软件包 版本
CANN 8.0.0
PTA 6.0.0
HDK 24.1.0
PYTORCH 2.1.0
PYTHON 3.10

2.2.1 Pytorch & PTA安装

CANN、PTA、HDK的环境安装,请按照https://modelers.cn/models/StepFun/Step-Audio-npu中CANN安装进行准备,如果有容器装好了直接使用容器,这里不再赘述。
在这里插入图片描述

Pytorch & Ascend Extension for PyTorch ARM上安装
以下是python3.10,pytorch2.1.0,PTA插件版本6.0.0,系统架构是AArch64,CANN版本是8.0.0的安装信息:

# 下载PyTorch安装包
wget https://download.pytorch.org/whl/cpu/torch-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 下载torch_npu插件包
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.0-pytorch2.1.0/torch_npu-2.1.0.post10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 安装命令
pip3 install torch-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip3 install torch_npu-2.1.0.post10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

具体安装,可以参考:
(https://www.hiascend.com/document/detail/zh/Pytorch/600/configandinstg/instg/insg_0001.html)

2.3 依赖包安装

修改requirements.txt中的依赖信息,具体如下:
• torch2.3.1 -> torch2.1.0
• torchaudio2.3.1 -> torchaudio 2.1.0
• torchvision
0.18.1 -> torchvision
0.16
• 注释掉 # onnxruntime-gpu ==1.17.0

2.3.1 安装onnxruntime-cann

参考Ascend NPU上适配Step-Audio模型

2.3.2 安装其它依赖

其它依赖请执行

pip install -r requirements.txt
2.3.3 whisper安装

模型对whisper有依赖,请安装

pip install openai-whisper

3、模型运行

3.1 模型权重下载

具体下载请参照https://modelers.cn/models/StepFun/Step-Audio-npu中模型权重下载章节:
在这里插入图片描述

where_you_download_dir假设为audio-weight,那么目录audio-weight应包含以下结构。

audio-weight
├── Step-Audio-Tokenizer
├── Step-Audio-Chat
├── Step-Audio-TTS-3B

通过git下载注意一定要安装git lfs,ubuntu安装的命令如下:

Apt install git-lfs

通过以下命令下载后,请检查权重的大小是否匹配。(没有安装lfs,下载过程很快,而且权重safetensors的大小会明显不对)

git clone https://huggingface.co/stepfun-ai/Step-Audio-Tokenizer
git clone https://huggingface.co/stepfun-ai/Step-Audio-Chat
git clone https://huggingface.co/stepfun-ai/Step-Audio-TTS-3B

3.2 模型运行

3.2.1 下载已适配npu模型

进入链接:https://modelers.cn/models/StepFun/Step-Audio-npu/tree/main,下载模型
在这里插入图片描述

接着执行下载命令。(这里演示通过git下载,且lfs已经安装,所以只需要执行红框中命令即可,也可以通过openmind_hub下载)
在这里插入图片描述

下载成功后的目录内容如下:
在这里插入图片描述

3.2.2 执行推理

执行CANN相关的环境变量

source /usr/local/Ascend/ascend-toolkit/`在这里插入代码片`set_env.sh
3.2.2.1 语音合成推理

使用默认音色进行语音合成推理或使用新音色进行克隆。这里演示使用tts进行推理。进入到Step-Audio-npu目录,执行如下命令:

ASCEND_RT_VISIBLE_DEVICES=0 python tts_inference.py --model-path /home/audio-weight  --output-path output-tts --synthesis-type tts

注意:
 /home/audio-weight为上述模型权重下载的具体路径。
 output-tts为提前创建的wav文件输出路径。
上述命令执行成功后,会在output-tts生成:
在这里插入图片描述

3.2.2.2 离线推理

支持端到端音频/文本输入与音频/文本输出的推理流程。

ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python offline_inference.py --model-path /home/audio-weight

注意:
 /home/audio-weight为上述模型权重下载的具体路径。
 提前创建好output文件夹,用来放置输出,否则报错。
上述命令执行成功后,会在output生成
在这里插入图片描述

相关文章:

  • JS红宝书笔记 10.6 - 10.10 函数
  • Android Framework 之 AudioDeviceBroker
  • 【论文阅读】大模型优化器(Large Language Models As Optimizers)
  • 全面掌握Pandas时间序列处理:从基础到实战
  • UE5 学习系列(二)用户操作界面及介绍
  • Vue 模板语句的数据来源
  • MybatisPlus枚举类的应用与转换
  • 六、接口关联
  • 【Kubernetes】Ingress-nginx快速入门
  • “概率鹦鹉”难解语义等价验证的NPC难题: 从技术本质看LLM在SQL优化任务中的致命缺陷
  • 【Java多线程从青铜到王者】单例设计模式(八)
  • TMC2226超静音步进电机驱动控制模块
  • ConcurrentModificationException 并发修改异常详解
  • 深度学习-1.神经网络理解
  • 博图 SCL 编程技巧:灵活实现上升沿与下降沿检测案例分享(下)
  • LangChain4j(18)——通过Xinference调用Rerank模型
  • 【前端实战】如何让用户回到上次阅读的位置?
  • 【C++】IO库 IO流
  • 禁用思科锐捷设备分页功能
  • redis--黑马点评--Redisson快速入门
  • 新疆网站建设一条龙服务/免费发布信息的网站平台
  • 做网站服务器是必须购买的吗/宁波seo外包推广平台
  • 免费开源的网站系统/媒介星软文平台官网
  • 网站推荐广告模板/怎样上百度做广告
  • 秦皇岛网络编辑网站/网络推广策划书
  • 毕业设计用PHP做旅游网站/windows优化大师是什么