已关闭
[Bug]: CosyVoice3音频加载在昇腾环境失败(torchaudio 2.10 强依赖 TorchCodec,缺失 libnvrtc) #670
yeqm创建于  8月31日关闭于  8月31日
yeqm成员
8月31日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

问题描述

CosyVoice3 在昇腾环境进行数据预处理或微调训练时,音频加载失败。

原因链条:

  1. examples/cosyvoice3/requirements.txt 固定 torchaudio==2.10.0;
  2. torchaudio 2.10 的 load() 忽略 backend 参数,始终通过 TorchCodec 解码;
  3. PyPI 上的 torchcodec wheel 按 CUDA 版 torch 链接,依赖 libnvrtc.so.13、libcudart.so.13、libc10_cuda.so、libtorch_cuda.so;
  4. 昇腾环境安装的是 CPU 版 torch(如 torch-2.10.0+cpu),不存在这些库,加载必然失败。

受影响的调用点共 3 处:

  • examples/cosyvoice3/preprocess/extract_embedding.py
  • examples/cosyvoice3/preprocess/extract_speech_token.py(该行虽指定 backend='soundfile',但 torchaudio 2.10 已忽略此参数,不生效)
  • mindspeed_mm/fsdp/data/datasets/cosyvoice3/cosyvoice_dataset.py(训练时数据加载)

错误日志

OSError: libnvrtc.so.13: cannot open shared object file: No such file or directory

File ".../torchaudio/__init__.py", line 86, in load
  return load_with_torchcodec(
File ".../torchcodec/_core/ops.py", line 35, in <module>
  load_image_library()
File ".../torch/_ops.py", line 1444, in load_library
  raise OSError(f"Could not load this library: {path}") from e

环境信息

Ascend 910B2,CANN 9.1.0,Python 3.12.14,torch==2.10.0+cpu,torch-npu==2.10.0.post4

建议的替代/修复方案

将 3 处 torchaudio.load 调用替换为 soundfile 读取(soundfile 已在 examples/cosyvoice3/requirements.txt 中,无新增依赖),并通过转置保持原有 [channel, time] 张量布局,下游逻辑不变。

修复见:https://gitcode.com/Ascend/MindSpeed-MM/pull/3081

likedislike
ascend-robotascend-robot成员
8月31日 添加了label:bug
Yyeqm成员
8月31日 修改了issue 的描述
Yyeqm成员
8月31日 修改了issue 的描述
ascend-robotascend-robot成员
8月31日 关闭了 issue
ascend-robotascend-robot成员
8月31日 添加了label:resolved