Torch audio 文档
索引
安装
API 教程
音频数据集
管道教程
训练实用技巧
Conformer RNN-T 语音识别
Emformer RNN-T 语音识别
Conv-TasNet 源分离
HuBERT 预训练与微调(ASR)
实时音视频自动语音识别
Python API 参考文档
Python 原型 API 参考
C++ 原型 API 参考
PyTorch 库
PyTorch
torchaudio
torchtext
torchvision
TorchElastic
TorchServe
在 XLA 设备上使用 PyTorch

在 Windows 上构建

要在 Windows 上构建 TorchAudio,我们需要启用 C++ 编译器并安装构建工具和运行时依赖项。

我们使用 Microsoft Visual C++ 来编译 C++,并使用 Conda 来管理其他构建工具和运行时依赖项。

1. 安装构建工具

MSVC

请按照 https://visualstudio.microsoft.com/downloads/ 上的说明操作,并确保安装 C++ 开发工具。

官方二进制发行版是使用 MSVC 2019 编译的。以下部分使用的是 MSVC 2019 Community Edition 的路径。

Conda

请按照 https://docs.conda.io/en/latest/miniconda.html 上的说明进行操作。

2. 启动开发环境

在接下来的步骤中,我们需要使用 C++ 编译器 (cl) 和 Conda 包管理器 (conda)。为了与 Linux/macOS 保持相似的体验,我们还将使用 Bash。

为此,需要完成以下三个步骤。

  1. 打开命令提示符

  2. 启用开发者环境

  3. [可选] 启动 bash

以下组合已被证实可行。

  1. 启动 Anaconda3 命令提示符。

    请确保 conda 命令能够被识别。

  2. 通过运行以下命令激活开发工具。

    我们需要使用 MSVC x64 工具集进行编译。要启用该工具集,可以使用 vcvarsall.batvcvars64.bat 文件,这些文件位于 Visual Studio 安装目录下的 VC\Auxiliary\Build\ 文件夹中。更多信息可在 https://docs.microsoft.com/en-us/cpp/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line?view=msvc-160#use-vcvarsallbat-to-set-a-64-bit-hosted-build-architecture 中找到。

   call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

请确保 cl 命令能够被识别。

  1. [可选] 使用以下命令启动 Bash。

    如果您希望获得与 Linux/macOS 类似的用户体验,可以启动 Bash。但请注意,在 Bash 环境中,文件路径与原生 Windows 风格不同,且 torchaudio.datasets 模块无法正常工作。

   Miniconda3\Library\bin\bash.exe

3. 安装 PyTorch

请访问 https://pytorch.org/get-started/locally/ 获取最新的 PyTorch 安装方法。

以下命令将安装 PyTorch 的 nightly 构建版本。

# CPU-only
conda install pytorch cpuonly -c pytorch-nightly

# With CUDA support
conda install pytorch pytorch-cuda=11.7 -c pytorch-nightly -c nvidia

在安装支持 CUDA 的版本时,它也会安装 CUDA 工具包。

4. [可选] cuDNN

如果您打算构建与 CUDA 相关的功能,请安装 cuDNN。

https://developer.nvidia.com/cudnn 下载 CuDNN,并将其文件解压到与 CUDA 工具包相同的目录中。

在使用 conda 时,目录为 ${CONDA_PREFIX}/bin, ${CONDA_PREFIX}/include${CONDA_PREFIX}/Lib/x64

5. 安装外部依赖

conda install cmake ninja

6. 构建 TorchAudio

现在我们已经准备好了一切,可以构建 TorchAudio 了。

git clone https://github.com/pytorch/audio
cd audio
# In Command Prompt
python setup.py develop
# In Bash
python setup.py develop

由于构建过程的复杂性,TorchAudio 仅支持原地构建。要使用 pip,请使用 --no-use-pep517 选项。

pip install -v -e . --no-use-pep517

[可选] 使用自定义的 FFmpeg 构建 TorchAudio

默认情况下,torchaudio 尝试构建支持多个 FFmpeg 版本的 FFmpeg 扩展。此过程使用为特定 CPU 架构(如 x86_64)编译的预构建 FFmpeg 库。

如果您的 CPU 不同,构建过程可能会失败。为了解决这个问题,可以禁用 FFmpeg 集成(通过设置环境变量 USE_FFMPEG=0)或切换到单一版本的 FFmpeg 扩展。

要构建单一版本的 FFmpeg 扩展,用户必须提供 FFmpeg 二进制文件,并确保它们在构建环境中可用。为此,请安装 FFmpeg 并设置 FFMPEG_ROOT 环境变量以指定 FFmpeg 的位置。

conda install -c conda-forge ffmpeg
FFMPEG_ROOT=${CONDA_PREFIX}/Library python setup.py develop

[可选] 从源码构建 FFmpeg

以下部分展示了从源代码构建 FFmpeg 库的方法。

Conda-forge 的 FFmpeg 包已经支持主要的编解码器和 GPU 解码器,因此普通用户和开发者无需从源代码构建 FFmpeg。

如果您没有使用 Conda,那么您可以找到预编译的二进制发行版,或者自行构建 FFmpeg。

此外,如果 torchaudio 开发者需要更新和自定义 FFmpeg 构建的 CI,本节内容可能会有所帮助。

1. 安装 MSYS2

为了在 TorchAudio 开发环境中使用 FFmpeg,我们需要构建适用于 MINGW64 的原生二进制文件。为此,我们需要 FFmpeg 构建过程中所需的工具,例如在 MINGW64 环境中工作的 pkg-configmake。为此,我们使用 MSYS2。

FFmpeg 的官方文档对此有所提及:https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW

请按照 https://www.msys2.org/ 上的说明安装 MSYS2。

在 CI 环境中,通常可以使用 Chocolatery 来安装 MSYS2。

2. 启动 MSYS2

使用快捷方式启动 MSYS2 (MINGW64)。

MSYS2 中的 Bash 环境与 Conda 环境兼容性不佳,因此不要在 MSYS2 环境的 ~/.bashrc 文件中添加 Conda 初始化脚本(即 C:\msys2\home\USER\.bashrc)。相反,请将其添加到 C:\Users\USER\.bashrc 中。

3. 安装构建工具

$ pacman -S mingw-w64-x86_64-make
$ pacman -S mingw-w64-x86_64-yasm

安装完成后,您应该会看到类似以下的包;

$ pacman -Qe
base 2020.12-1
base-devel 2022.01-2
filesystem 2023.01-2
mingw-w64-x86_64-make 4.3-1
mingw-w64-x86_64-pkgconf 1.8.0-2
mingw-w64-x86_64-yasm 1.3.0-4
msys2-runtime 3.4.3-5

4. 构建 FFmpeg

检出 FFmpeg 源代码。

git clone https://github.com/ffmpeg/ffmpeg
cd ffmpeg
git checkout <VERSION>

构建

./configure --toolchain=msvc
make -j

如果构建成功,ffmpeg.exe 应该会在同一目录中找到。请确保您可以运行它。

5. 验证构建

验证生成的 FFmpeg 二进制文件是否可以从 Conda 环境中访问

现在启动一个新的命令提示符,并启用 TorchAudio 开发环境。确保您可以运行上一步生成的 ffmpeg.exe 命令。

本页目录