beetbox / audioread

cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python
MIT License
481 stars 108 forks source link

No backend with ffmpeg installed #65

Closed skywolf829 closed 6 years ago

skywolf829 commented 6 years ago

Hi,

I'm running this implementation of WaveNet which uses librosa, which uses audioread. From python train.py --data_dir=corpus

Traceback (most recent call last):
  File "C:\Users\Skylar\AppData\Local\Programs\Python\Python36\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Users\Skylar\AppData\Local\Programs\Python\Python36\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Skylar\Documents\WaveNet-Playground\wavenet\audio_reader.py", line 158, in thread_main
    for audio, filename, category_id in iterator:
  File "C:\Users\Skylar\Documents\WaveNet-Playground\wavenet\audio_reader.py", line 59, in load_generic_audio
    audio, _ = librosa.load(filename, sr=sample_rate, mono=True)
  File "C:\Users\Skylar\AppData\Local\Programs\Python\Python36\lib\site-packages\librosa\core\audio.py", line 112, in load
    with audioread.audio_open(os.path.realpath(path)) as input_file:
  File "C:\Users\Skylar\AppData\Local\Programs\Python\Python36\lib\site-packages\audioread\__init__.py", line 116, in audio_open
    raise NoBackendError()
audioread.NoBackendError

Here's ffmpeg -version

C:\Users\Skylar>ffmpeg -version
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100

I'm on Windows 10 64-bit using python 3.6.2, librosa 0.6.0, and audioread 2.1.5.

Other tests include

>>>import audioread
>>>obj = audioread.audio_open("p267.001.wav")
>>>print(obj)
<audioread.rawread.RawAudioFile object at 0x000001FF672F1E48>
>>>obj.close()

>>> import librosa
>>> y, sr = librosa.load("p267_001.wav")
>>> print(y)
[ 0.0028438   0.00509119  0.00463691 ... -0.00268854 -0.0024589  0.        ]
>>> print(sr)
22050

So, things seem to be working well in the libraries, perhaps it's a bug in the forked code?

skywolf829 commented 6 years ago

Issue solved, there were a bunch of hidden files such as "._p267.001.wav" that weren't actual audio. Training the network works now.

Sorry to bother!

sampsyo commented 6 years ago

OK, good news!