我正在尝试使用librosa分析.wav文件。我从创建一个列表开始,该列表存储了它检测到的所有.wav文件的名称。
data_dir = '/Users/raghav/Desktop/FSU/summer research'
audio_file = glob(data_dir + '/*.wav')
我可以在“ audio_file”列表中看到所有文件的名称。但是,当我加载任何音频文件时,它给我文件未找到错误。
audio, sfreq = lr.load(audio_file[0])
错误输出:
Traceback (most recent call last):
File "read_audio.py", line 10, in <module>
audio, sfreq = lr.load(audio_file[1])
File "/usr/local/lib/python3.7/site-packages/librosa/core/audio.py", line 119, in load
with audioread.audio_open(os.path.realpath(path)) as input_file:
File "/usr/local/lib/python3.7/site-packages/audioread/__init__.py", line 107, in audio_open
backends = available_backends()
File "/usr/local/lib/python3.7/site-packages/audioread/__init__.py", line 86, in available_backends
if ffdec.available():
File "/usr/local/lib/python3.7/site-packages/audioread/ffdec.py", line 108, in available
creationflags=PROC_FLAGS,
File "/usr/local/lib/python3.7/site-packages/audioread/ffdec.py", line 94, in popen_multiple
return subprocess.Popen(cmd, *args, **kwargs)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'avconv': 'avconv'
答案 0 :(得分:3)
两件事:
avconv
不在您的路径中假设您从未安装过它,那么应该只需安装即可解决此问题。即运行:
$ brew install libav
(请参阅here)
如果已经安装了avconv
,则可能需要查看PATH
环境并检查其是否在路径中。
也就是说,使用Homebrew安装的系统级Python是一个坏主意,因为它不能快速让您更改Python版本和依赖项集。几周之内就变成了一大堆。
(多个)解决方案之一是使用miniconda。它可以快速让您使用已定义的依赖集来激活Python解释器。
因此,要真正解决该问题,建议安装miniconda并创建一个普通的Python 3.6环境:
$ conda create -n librosa_env python=3.6
激活环境:
$ source activate librosa_env
然后添加conda-forge频道(一个包含许多库的存储库,如 librosa ):
$ conda config --add channels conda-forge
然后安装 librosa :
$ conda install librosa
通过这种方式安装librosa, conda 应该处理所有依赖项,包括。 libav 。
答案 1 :(得分:0)
该错误表明librosa无法找到FFMPEG可执行文件,例如avconv
。
当不转换不同的采样率时,通常不需要FFMPEG。您可以尝试在load()期间将样本大小指定为音频文件的原始大小
答案 2 :(得分:0)
将audioread
升级到2.1.8为我解决了此问题。可在以下位置检查错误修正:https://github.com/beetbox/audioread/commit/8c4e236fda38ce1d1f6dafc4715074a790e62849
答案 3 :(得分:0)
我必须安装FFMPEG才能解决此问题。您可以按照https://www.wikihow.com/Install-FFmpeg-on-Windows的链接进行操作。