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

Ascend NPU上适配Step-Audio模型

1 概述

1.1 简述

Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言(如 粤语,四川话),可控制语速及韵律风格,支持RAP和哼唱等。其核心技术突破体现在以下四大技术亮点:

  • 1300亿多模态模型: 单模型能实现理解生成一体化完成语音识别、语义理解、对话、语音克隆、语音生成等功能,开源千亿参数多模态模型 Step-Audio-Chat。

  • 高效数据生成链路: 基于130B 突破传统 TTS 对人工采集数据的依赖,生成高质量的合成音频数据,并同步开源首个基于大规模合成数据训练,支持 RAP 和哼唱的指令加强版语音合成模型 Step-Audio-TTS-3B 。

  • 精细语音控制: 支持多种情绪(如生气,高兴,悲伤)、方言(包括粤语、四川话等)和唱歌(包括 RAP、干声哼唱)的精准调控,满足用户对多样化语音生成的需求。

  • 扩展工具调用: 通过 ToolCall 机制和角色扮演增强,进一步提升其在 Agents 和复杂任务中的表现。

github模型仓库地址:

https://github.com/stepfun-ai/Step-Audio.git

2 环境准备

2.1 获取CANN安装包&环境准备

版本支持列表

软件包版本
CANN8.0.0
PTA6.0.0
HDK24.1.0
pytorch2.1.0
Python3.10

2.2 Pytorch & CANN安装

  • Pytorch & Ascend Extension for PyTorch安装(https://www.hiascend.com/document/detail/zh/Pytorch/600/configandinstg/instg/insg_0001.html)》
    以下是python3.10,pytorch2.1.0,PTA插件版本6.0.0,系统架构是x86_64,CANN版本是8.0.0的安装信息:
# 下载PyTorch安装包
wget https://download.pytorch.org/whl/cpu/torch-2.1.0%2Bcpu-cp310-cp310-linux_x86_64.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_x86_64.manylinux2014_x86_64.whl
# 安装命令
pip3 install torch-2.1.0+cpu-cp310-cp310-linux_x86_64.whl
pip3 install torch_npu-2.1.0.post10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • 软件包下载Atlas 800I A2
  • CANN包安装
    以下是CANN包中需要安装的run包信息:
# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构,{soc}表示昇腾AI处理器的版本。
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh

2.3 依赖包安装

注意,请修改requirements.txt中的依赖信息,具体如下:

  • torch2.3.1 -> torch2.1.0

  • onnxruntime-gpu修改为支持npu的版本。具体操作是:
    1、克隆源码
    git clone https://github.com/microsoft/onnxruntime.git
    切换到1.17.0版本

    2、构建whl包

# 先初始化CANN环境
source /usr/local/Ascend/ascend-toolkit/set_env.sh# 执行build脚本
./build.sh --config Release --build_shared_lib --parallel --use_cann --build_wheel

3、获得onnxruntime_cann包
如果出现网络连接失败导致无法进行构建,可以多重试几次。
若构建成功,whl包会生成在build/Linux/Release/dist/目录下。如果已经安装了非CANN版本的onnxruntime,需要先卸载它

安装onnxruntime-cann

pip3 install onnxruntime_cann-x.xx.x-xxxx-xxxxx-xxxxx_xxx_xx.whl

  • 其它依赖请执行
    pip install -r requirements.txt

3、模型下载

将3个模型文件统一下载到一个目录,如下载模型后,where_you_download_dir应包含以下结构:

where_you_download_dir
├── Step-Audio-Tokenizer
├── Step-Audio-Chat
├── Step-Audio-TTS-3B

具体下载链接如下。

  • Huggingface
模型链接
Step-Audio-Tokenizer🤗huggingface
Step-Audio-Chat🤗huggingface
Step-Audio-TTS-3B🤗huggingface
  • Modelscope
模型链接
Step-Audio-Tokenizer modelscope
Step-Audio-Chat modelscope
Step-Audio-TTS-3B modelscope

4 执行推理

4.1离线推理

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

ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python offline_inference.py --model-path where_you_download_dir

4.2 语音合成推理

使用默认音色进行语音合成推理或使用新音色进行克隆

ASCEND_RT_VISIBLE_DEVICES=0 python tts_inference.py --model-path where_you_download_dir --output-path where_you_save_audio_dir --synthesis-type use_tts_or_clone

克隆模式需要音色信息字典,格式如下:

{"speaker": "speaker id","prompt_text": "content of prompt wav","wav_path": "prompt wav path"
}

4.3 启动网页演示

4.3.1 Step-Audio-Chat demo

python app.py --model-path where_you_download_dir

4.3.2 Step-Audio-TTS-3B demo

python tts_app.py --model-path where_you_download_dir

5 FAQ

5.1 onnxruntime报错

/onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1193 onnxruntime::Provider& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so 
with error: libcudart.so.11.0: cannot open shared object file: No such file or directorys

显示的是cuda的组件找不到。由于是Ascend环境,肯定是没有GPU的,很明显是onnxruntime的包装错了。
解决:
通过查找onnxruntime社区,可以发现npu已经对onnxruntime进行了适配,参考如下文档:
onnxruntime/docs/execution-providers/community-maintained/CANN-ExecutionProvider.md at gh-pages · microsoft/onnxruntime
那么该如何才能构建onnxruntime适配Ascend上的whl包呢?
这里提供源码构建的办法:
1、克隆源码

git clone https://github.com/microsoft/onnxruntime.git
cd onnxruntime

2、构建whl包

# 先初始化CANN环境
source /usr/local/Ascend/ascend-toolkit/set_env.sh# 执行build脚本
./build.sh --config Release --build_shared_lib --parallel --use_cann --build_wheel

若构建成功,whl包会生成在build/Linux/Release/dist/目录下。
3、安装onnxruntime-cann

pip3 install onnxruntime_cann-x.xx.x-xxxx-xxxxx-xxxxx_xxx_xx.whl

5.2 torchvision模块报错

在这里插入图片描述

Torchvion安装的是cuda版本,在NPU上并没有适配。
解决:
安装cpu版本的torchvion再安装torchvision_npu插件,版本使用tochvision-0.1.6和torchvision_npu-0.1.6,具体可参考文档https://gitee.com/ascend/vision

http://www.xdnf.cn/news/957061.html

相关文章:

  • C语言数据结构笔记4:子函数中使用的sizeof 指针无法获取数组的实际大小
  • 学习经验分享篇(3)——电机驱动电力电子方向投稿经历
  • 职场生存发展指南 | 边界 / 责任 / 社交 / 情绪
  • 个人自用debian启动
  • C语言 学习 宏命令(预处理) 2025年6月9日14:41:39
  • 【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
  • 机器人模仿学习调研
  • 处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
  • Android实践:查看远程文档
  • 数据驱动证券业务精细化决策,从洞察到行动的全链路赋能
  • IBMS集成系统 结合数字孪生技术,实现建筑的3D可视化监控与智能化运维
  • prxomox 8.3-8.4更新
  • 如何在Android Studio中导出apk文件
  • [25-cv-06277]Keith律所代理昆虫画作版权图
  • docker相关(AI回答)
  • 详解快排的四种方式
  • RT_Thread——线程管理(上)
  • 【系统架构设计师-2025上半年真题】案例分析-参考答案及部分详解(回忆版)
  • 【最新案例】智能物料称重柜/生鲜称重售卖柜系统, 共享自助管理系统, 物联网应用定制开发
  • 如何删除linux空的文件夹
  • 02__C++的基本语法
  • Unity中的Mathf.Lerp
  • ArcGIS Pro+ArcGIS给你的地图加上北回归线!
  • 安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
  • 什么是EULA和DPA
  • Android Test4 Application(Context)实例的获取
  • 深入探讨渗透测试的定义、关键步骤以及实施方法
  • 《射频识别(RFID)原理与应用》期末复习 RFID第三章 编码和调制(知识点总结+习题巩固)
  • EZDML:一款国产免费的数据库建模工具
  • [25-cv-61102]SMG律所代理Fanatics 体育用品商标维权案