Python librosa NoBackendError, даже если ffmpeg установлен - PullRequest
1 голос
/ 11 апреля 2020

Я недавно установил librosa (пакет, который я использовал некоторое время на другом P C) на моем новом P C с работающим Windows 10. После этого я скачал последнюю стати c версию ffmpeg, скопировал ее в C: и добавил в путь. Протестировал ffmpeg и он работает как шарм! Для python я использую среду Anaconda и после запуска Jupyter Notebook и запуска librosa.load(path, sr = None) у меня

<ipython-input-3-1e009e0ae576> in <module>
----> 1 audio = librosa.load(pathToJson)

~\anaconda3\envs\tf_gpu\lib\site-packages\librosa\core\audio.py in load(path, sr, mono, offset, duration, dtype, res_type)
    117 
    118     y = []
--> 119     with audioread.audio_open(os.path.realpath(path)) as input_file:
    120         sr_native = input_file.samplerate
    121         n_channels = input_file.channels

~\anaconda3\envs\tf_gpu\lib\site-packages\audioread\__init__.py in audio_open(path, backends)
    114 
    115     # All backends failed!
--> 116     raise NoBackendError()

NoBackendError:

странно, не правда ли? Затем я перебрал inte rnet, пытаясь это исправить, и у меня появилась идея запустить строку кода в командном интерфейсе anaconda, и она РАБОТАЕТ ?? Как это возможно? Это та же среда.

python
Python 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import librosa
>>> librosa.load('test.wav')
(array([-0.00027   , -0.00039953, -0.0003659 , ..., -0.16393574,
       -0.17814247,  0.        ], dtype=float32), 22050)

Я много тестировал, и я действительно предпочитаю свой Jupyter, поэтому любая помощь будет оценена. Я попробовал следующее: я добавил C:\ffmpeg\bin и C:\ffmpeg в свой путь для пользовательских и системных переменных. После этого я сделал указанные c переменные для ffmpeg и ffmpeg_bin для пользовательских и системных переменных. Не повезло. После этого я попытался установить ffmpeg с помощью conda, но безуспешно. Последнее, что я протестировал, это:

import audioread
audioread.ffdec.FFmpegAudioFile('test.wav')

, и это работает. Спасибо

1 Ответ

1 голос
/ 11 апреля 2020

У вас есть эта строка кода: audio = librosa.load(pathToJson)

Мне кажется, вы случайно пытаетесь загрузить файл JSON с помощью librosa. Проверьте это: D

...