Как читать аудио в Python с помощью Librosa? - PullRequest
2 голосов
/ 24 мая 2019

Я пытаюсь прочитать аудиофайл в Librosa, но получаю следующую ошибку

FileNotFoundError: [WinError 2] The system cannot find the file specified

Упоминается, что где-то мне нужно установить ffmpeg, но это не решило проблему. У меня ffmpeg установлено на ffmpeg in c:\programdata\anaconda3\lib\site-packages (1.4).

Вот пример кода, который я использую для чтения примера аудиофайла

import librosa
filename = librosa.util.example_audio_file()
print(filename)
y, sr = librosa.load(filename)

Выдает эту ошибку в строке № 4

C:\ProgramData\Anaconda3\lib\site-packages\librosa\util\example_data\Kevin_MacLeod_-_Vibe_Ace.ogg
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-7-0780b3498898> in <module>
      1 filename = librosa.util.example_audio_file()
      2 print(filename)
----> 3 y, sr = librosa.load(filename)

C:\ProgramData\Anaconda3\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

C:\ProgramData\Anaconda3\lib\site-packages\audioread\__init__.py in audio_open(path, backends)
    105     """
    106     if backends is None:
--> 107         backends = available_backends()
    108 
    109     for BackendClass in backends:

C:\ProgramData\Anaconda3\lib\site-packages\audioread\__init__.py in available_backends()
     84 
     85     # FFmpeg.
---> 86     if ffdec.available():
     87         result.append(ffdec.FFmpegAudioFile)
     88 

C:\ProgramData\Anaconda3\lib\site-packages\audioread\ffdec.py in available()
    106         stdout=subprocess.PIPE,
    107         stderr=subprocess.PIPE,
--> 108         creationflags=PROC_FLAGS,
    109     )
    110     proc.wait()

C:\ProgramData\Anaconda3\lib\site-packages\audioread\ffdec.py in popen_multiple(commands, command_args, *args, **kwargs)
     92         cmd = [command] + command_args
     93         try:
---> 94             return subprocess.Popen(cmd, *args, **kwargs)
     95         except OSError:
     96             if i == len(commands) - 1:

C:\ProgramData\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text)
    767                                 c2pread, c2pwrite,
    768                                 errread, errwrite,
--> 769                                 restore_signals, start_new_session)
    770         except:
    771             # Cleanup if the child failed starting.

C:\ProgramData\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
   1170                                          env,
   1171                                          os.fspath(cwd) if cwd is not None else None,
-> 1172                                          startupinfo)
   1173             finally:
   1174                 # Child is launched. Close the parent's copy of those pipe

FileNotFoundError: [WinError 2] The system cannot find the file specified

Я не уверен, что здесь может быть не так. Librosa и ffmpeg оба установлены, но не работают вообще. Дайте мне знать, если вам нужно больше информации.

1 Ответ

1 голос
/ 24 мая 2019

Решается следующим образом: Откройте anaconda Promt с разрешением admin и выполните следующую строку

conda install -c conda-forge librosa

В чем проблема Кажется, pip install librosa неработать правильно.Мне нужно было установить librosa через conda install.

Надеюсь, это поможет будущему посетителю.

...