如何在Windows10Conda上安装torch audio?

2024-10-04 09:28:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在安装了Pythorch的Anaconda Python 3.6.7中,在Windows 10上,我执行以下步骤:

conda install -c conda-forge librosa
conda install -c groakat sox

然后从https://github.com/pytorch/audio的新下载中

^{pr2}$

它运行了一段时间,结果是这样的:

torchaudio/torch_sox.cpp(3): fatal error C1083: Cannot open include file: 'sox.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.15.26726\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

我试图在Windows上复制这个OpenNMT py语音训练演示:http://opennmt.net/OpenNMT-py/speech2text.html


Tags: installpyhttpswindows步骤erroranacondaconda
2条回答

我设法在Windows10中用sox编译了torchaudio,但有点棘手。在

不幸的是,sox_效应不可用,出现以下错误:

RuntimeError: Error opening output memstream/temporary file

但您可以使用其他torchaudio功能。在

对于64位Windows 10,我遵循的步骤是:

TORCHAUDIO WINDOWS10 64位

注意:我混合了一些类似unix的命令行语法,您可以使用文件资源管理器或其他工具

初步安排

  1. 下载sox源代码

$ git clone git://git.code.sf.net/p/sox/code sox

  1. 下载其他sox源代码以获得lpc10
$ git clone https://github.com/chirlu/sox/tree/master/lpc10 sox2
$ cp -R sox2/lpc10 sox
  1. 重要信息:安装VisualStudio2019和BuildTools

lpc10库

4.0条。为lpc10创建一个VisualStudio CMake项目并构建它

^{pr2}$

4.2条。将lpc10.lib复制到sox

$ mkdir -p sox/src/out/build/x64-Debug
$ cp sox/lpc10/out/build/x64-Debug/lpc10.lib sox/src/out/build/x64-Debug

gsm库

5.0条。为libgsm创建一个CMake项目,并像以前一样使用lpc10编译它

5.1条。复制gsm.lib到sox

$ mkdir -p sox/src/out/build/x64-Debug
$ cp sox/libgsm/out/build/x64-Debug/gsm.lib sox/src/out/build/x64-Debug

sox库

6.0条。在VS中为sox创建CMake项目

6.1条。编辑一些文件:

在CMakeLists.txt文件:(在开头加上)

project(sox)

sox_i.h:(在stdlib.h include行下添加)

#include <wchar.h> /* For off_t not found in stdio.h */
#define UINT16_MAX  ((int16_t)-1)
#define INT32_MAX  ((int32_t)-1)

sox.c:(在time.h include行下添加)

`#include <sys/timeb.h>`

6.2条。使用VisualStudio构建sox

6.3条。复制python将找到它们的库,我使用conda环境

$ cp sox/src/out/build/x64-Debug/libsox.lib envs\<envname>\libs\sox.lib
$ cp sox/src/out/build/x64-Debug/gsm.lib envs\<envname>\libs
$ cp sox/src/out/build/x64-Debug/lpc10.lib envs\<envname>\libs

torchaudio

$ activate <envname>

7.0条。从github下载torchaudio

$ git clone https://github.com/pytorch/audio thaudio

7.1条。更新设置.py,在“如果是轮子…”的“else:”语句之后

$ vi thaudio/setup.py

如果是轮子。。。

else:
    audio_path = os.path.dirname(os.path.abspath(__file__))

    # Add include path for sox.h, I tried both with the same outcome
    include_dirs += [os.path.join(audio_path, '../sox/src')]
    #include_dirs += [os.path.join(audio_path, 'torchaudio/sox')]

    # Add more libraries

    #libraries += ['sox']
    libraries += ['sox','gsm','lpc10']

7.2条。编辑sox.cpp公司来自torchaudio,因为不允许使用动态数组:

$ vi thaudio/torchaudio/torch_sox.cpp

 //char* sox_args[max_num_eopts];
 char* sox_args[20]; //Value of MAX_EFFECT_OPTS

7.3条。构建和安装

$ cd thaudio
$ python setup.py install

它将打印出大量关于类型转换的警告,以及一些与MSVCRTD冲突的库,但“有效”。在

仅此而已。在

恐怕坏消息是:如果不付出很大的努力,你将无法在Windows上获得PyTorch音频。问题在于libsox dec这是一个依赖关系。您可能已经安装了sox,但开发版本是完全不同的。这个错误正是由于缺少头文件而导致的。为Windows支持打开了一个ticket。在

长话短说,将libsox构建为Windows的静态库是很困难的。你可以和小天鹅碰碰运气。或者使用Docker/VM。在

相关问题 更多 >