Как установить звук факела на Windows 10 conda?

В Anaconda Python 3.6.7 с установленным PyTorch, в Windows 10 я делаю эту последовательность:

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

тогда в новой загрузке с https://github.com/pytorch/audio я делаю

python setup.py install

и он работает некоторое время и заканчивается так:

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

Я пытаюсь воспроизвести это демонстрационное упражнение OpenNMT-py в Windows: http://opennmt.net/OpenNMT-py/speech2text.html

1 ответ

Решение

Боюсь, плохие новости: вы не получите PyTorch Audio для Windows без значительных усилий. Проблема в libsox-dec, который является одной из зависимостей. Возможно, вы установили sox, но версия для разработки - совершенно другой зверь. Ошибка точно жалуется на отсутствие заголовочного файла. Открыт тикет на поддержку Windows.

Короче говоря, создать libsox как статическую библиотеку для Windows сложно. Вы можете попытать счастья с Cygwin. Или используйте Docker / VM.

Мне удалось скомпилировать torchaudio с sox в Windows 10, но это немного сложно.

К сожалению, sox_effects нельзя использовать, появляется эта ошибка:

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 lib

4.0. Создайте проект VisualStudio CMake для lpc10 и соберите его

Start window -> open local folder -> sox/lpc10
(it reads CMakeLists.txt automatically)
Build->build All

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 lib

5.0. Создайте проект CMake для libgsm и скомпилируйте его, как раньше, с 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 lib

6.0. Создайте проект CMake для sox в VS

6.1. Отредактируйте несколько файлов:

CMakeLists.txt: (добавляем в самом начале)

project(sox)

sox_i.h: (добавить в stdlib.h строку включения)

#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 <sys/timeb.h>`

6.2. Сборка sox с помощью VisualStudio

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. Скачать torchaudio с github

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

7.1. Обновите setup.py после инструкции "else:" в "if IS_WHEEL..."

$ vi thaudio/setup.py

если IS_WHEEL...

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, но "работает".

И это все.

Другие вопросы по тегам