作者:昇腾实战派

背景概述

随着多模态语音大模型的快速发展,语音理解与生成任务对算力平台的适配能力提出了更高要求。本文记录在Atlas 800I A2AI处理器上完成 Fun-Audio-Chat-8B 模型迁移适配的完整流程,涵盖环境搭建、依赖管理、模型下载及常见问题排查,为同类项目提供可复用的技术参考。

参考链接:https://github.com/FunAudioLLM/Fun-Audio-Chat


一、环境准备

环境要求

  • HDK:25.0.RC1
  • Python:3.12
  • Torch:2.8.0
  • Torch_npu:2.8.0

二、克隆项目与依赖安装

1. 克隆仓库

git clone --recurse-submodules https://github.com/FunAudioLLM/Fun-Audio-Chat
cd Fun-Audio-Chat

2. 安装 ffmpeg

# 根据系统包管理器安装
sudo apt-get install ffmpeg

3. 创建并激活 Conda 环境

conda create -n funaudio python=3.12
conda activate funaudio

4. 安装 torchaudio

pip install torchaudio==2.8.0+cu118 -f https://download.pytorch.org/whl/torch_stable.html

5. 安装项目依赖

pip install -r requirements.txt

注:安装过程中可能出现部分 ERROR,不影响后续运行。


三、模型下载

由于网络限制,无法直接通过 git lfs 或官方脚本下载模型。采用镜像站方式完成下载:

使用 Python 脚本批量下载模型文件至本地指定路径,确保完整性。


四、语音转文本(S2T)推理验证

执行 infer_s2t.py 脚本进行语音识别测试:

python examples/infer_s2t.py --audio_path examples/test.wav --output_path examples/output.txt

运行中可能遇到依赖缺失,按提示逐一安装:

  • 缺失 librosa

    pip install librosa
    
  • 缺失 pyyaml 且环境变量未生效

    pip install pyyaml
    source /usr/local/Ascend/ascend-toolkit/set_env.sh
    
  • transformers 版本不兼容
    需指定版本为 4.52.3:

    pip install transformers==4.52.3
    
  • 缺失 einops

    pip install einops
    
  • 缺失 accenerate

    pip install accenerate
    
  • 缺失 attrsnumpypyyaml
    依次安装即可解决:

    pip install attrs numpy pyyaml
    

所有依赖安装完成后,脚本成功运行,输出文本结果正常。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


五、语音到语音(S2S)推理验证

执行 infer_s2s.py 脚本进行端到端语音生成测试:

python examples/infer_s2s.py --audio_path examples/test.wav --output_path examples/output.wav

该脚本依赖较多,常见问题如下:

  • 缺失 hydra-core
    由于 pip 安装失败,改用 conda 安装:

    conda install -c conda-forge hydra-core
    
  • 缺失 openai-whisper

    pip install openai-whisper
    
  • 缺失 torchtorchaudiotransformers
    按需安装对应版本,确保与环境一致。

  • CANN 版本不匹配
    原始环境为 CANN 8.3.RC1,与当前工具链不兼容。
    解决方案:升级至 CANN 8.5.0 版本。

    安装参考链接:
    https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/850alpha002/softwareinst/instg/instg_quick.html?Mode=PmIns&OS=openEuler&Software=cannToolKit

    下载安装包后执行:

    sudo ./install.sh
    

    安装完成后,执行环境变量加载:

    source /usr/local/Ascend/ascend-toolkit/set_env.sh
    

    注意:若升级后版本仍显示为旧版本,需检查安装路径。通过安装日志定位实际路径,手动 source 正确的 set_env.sh

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 输出路径不存在
    脚本提示无法创建输出文件,原因为路径未创建。
    解决方案:在项目根目录下创建 examples/save 文件夹,并将脚本中输出路径修改为绝对路径。

    output_path = "/home/l60060017/Fun-Audio-Chat/examples/save/output.wav"
    

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


六、关键问题总结与解决方案

问题 原因 解决方案
Python 3.12 无 Torch_npu 2.8.0 官方未发布适配包 从 CMC 获取 FrameworkPTAdapter 7.3.0.B090 版本,手动安装
transformers 版本冲突 默认版本不兼容 指定安装 transformers==4.52.3
hydra-core 安装失败 pip 无法解析依赖 使用 conda install -c conda-forge hydra-core
CANN 版本不匹配 工具链版本不一致 升级至 CANN 8.5.0 并正确 source 环境
输出路径不存在 路径未创建 手动创建目录并使用绝对路径
set_env.sh 未生效 安装路径错误 查看安装日志,定位真实路径并手动 source

七、结语

通过本次迁移适配实践,成功在昇腾平台部署 Fun-Audio-Chat-8B 模型,完成语音转文本与语音转语音的端到端推理。过程中虽遇多类依赖与环境问题,但均通过版本控制、路径管理与工具链升级得以解决。建议在后续项目中提前规划环境依赖清单,结合镜像源与离线安装策略,提升部署效率与稳定性。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐