张芷铭的个人博客

手动编译安装torchaudio

一般而言,torchaudio必须和torch版本匹配,但有的时候环境里的torch版本应该是前辈编译的一个最合适的结果,轻易不要改变。要使用torchaudio的话,只能自己手动编译安装了。

编译前准备

1. 确认系统要求

  • Python: 3.8-3.14(根据README中的版本要求)
  • PyTorch: 需要与您系统安装的PyTorch版本匹配
  • 编译器: GCC/Clang (Linux), MSVC (Windows)
  • 构建工具: CMake 3.18+

2. 安装依赖项

Linux (Ubuntu/Debian):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo apt-get update
sudo apt-get install -y \
    cmake \
    build-essential \
    git \
    sox \
    libsox-dev \
    ffmpeg \
    libavcodec-dev \
    libavformat-dev \
    libavutil-dev

macOS:

1
brew install cmake sox ffmpeg

Windows:

  • 安装 Visual Studio Build Tools
  • 安装 vcpkg 或手动安装依赖库

编译步骤

1. 克隆仓库

1
2
git clone https://github.com/pytorch/audio.git
cd audio

2. 检查版本兼容性

1
2
3
4
5
6
7
# 查看当前PyTorch版本
python -c "import torch; print(torch.__version__)"
# 我的结果是: 2.2.0a0+81ea7a4

# 查看torchaudio支持的版本
git tag # 查看全部tag ,建议要和torch的版本号对应
git tag | grep $(你的torch版本)

3. 选择合适的分支/标签

1
2
3
4
5
# 如果存在匹配版本,切换到对应标签
git checkout v2.2.0  # 替换为您的PyTorch版本对应的tag

# 或者使用main分支(最新开发版)
git checkout main

4. 创建虚拟环境(推荐)

1
2
3
python -m venv torchaudio-build
source torchaudio-build/bin/activate  # Linux/macOS
# 或 Windows: torchaudio-build\Scripts\activate

5. 编译安装

方法一:使用setup.py(传统方式)

1
python setup.py install

方法二:使用pip安装(推荐)

1
2
3
pip install -e .  # 开发模式安装
# 或
pip install .     # 普通安装

方法三:使用构建配置(高级用户)

1
2
3
4
5
6
7
8
# 创建构建目录
mkdir build && cd build

# 配置CMake
cmake .. -DCMAKE_PREFIX_PATH=$(python -c "import torch; print(torch.utils.cmake_prefix_path)")

# 编译
cmake --build . --config Release

兼容性优化建议

1. 版本匹配策略

  • 稳定版: 使用PyTorch稳定版 + torchaudio对应release tag
  • 开发版: 使用PyTorch nightly + torchaudio main分支

2. 环境隔离

1
2
3
4
# 使用conda环境管理
conda create -n torchaudio-env python=3.10
conda activate torchaudio-env
conda install pytorch torchvision torchaudio -c pytorch  # 优先尝试官方预编译版

3. 验证安装

1
2
3
4
5
6
7
8
9
import torch
import torchaudio

print(f"PyTorch版本: {torch.__version__}")
print(f"torchaudio版本: {torchaudio.__version__}")

# 测试基本功能
waveform, sample_rate = torchaudio.load("test_audio.wav")  # 准备测试音频文件
print(f"音频形状: {waveform.shape}, 采样率: {sample_rate}")

常见问题解决

1. 依赖库缺失错误

1
2
# 如果遇到sox/ffmpeg相关错误,确保系统库正确安装
sudo ldconfig  # Linux下更新库缓存

2. CUDA兼容性问题

1
2
3
# 确保CUDA版本与PyTorch匹配
nvcc --version
python -c "import torch; print(torch.version.cuda)"

3. 内存不足

1
2
# 减少并行编译线程数
export MAKEFLAGS="-j4"  # 限制为4线程

最佳实践

  1. 优先使用预编译版本: 除非有特殊需求,否则优先使用官方预编译版本
  2. 版本锁定: 在生产环境中锁定特定版本
  3. 持续集成: 在CI环境中测试编译过程
  4. 文档参考: 详细阅读https://pytorch.org/audio/main/installation.html

这样编译的torchaudio将具有最佳的兼容性和性能表现。

💬 评论