1.Encounter a problem
"D:\Program Files\pythonProject1\Scripts\python.exe" C:/Users/Administrator/PycharmProjects/pythonProject1/test_dura.py
Traceback (most recent call last):
File "D:\Program Files\pythonProject1\lib\site-packages\librosa\core\audio.py", line 713, in get_duration
return sf.info(filename).duration
File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 438, in info
return _SoundFileInfo(file, verbose)
File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 383, in __init__
with SoundFile(file) as f:
File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 629, in __init__
self._file = self._open(file, mode_int, closefd)
File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 1183, in _open
_error_check(_snd.sf_error(file_ptr),
File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 1357, in _error_check
raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
RuntimeError: Error opening 'D:\\123\\889202111_3\\20211101\\1635731427141000000000334953_APZ-20210831-001-011720_8001147425_15720306975_20211101095027_1029.mp3': File contains data in an unknown format.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\pythonProject1\test_dura.py", line 25, in <module>
main()
File "C:\Users\Administrator\PycharmProjects\pythonProject1\test_dura.py", line 9, in main
durationTime = librosa.get_duration(filename=path)
File "D:\Program Files\pythonProject1\lib\site-packages\librosa\util\decorators.py", line 88, in inner_f
return f(*args, **kwargs)
File "D:\Program Files\pythonProject1\lib\site-packages\librosa\core\audio.py", line 715, in get_duration
with audioread.audio_open(filename) as fdesc:
File "D:\Program Files\pythonProject1\lib\site-packages\audioread\__init__.py", line 116, in audio_open
raise NoBackendError()
audioread.exceptions.NoBackendError
2.Solution
The librosa library depends on ffmpeg.
Download and install ffmpeg, and add the bin directory path to the environment variable.
Found in the python installation environment
Modify inside
#COMMANDS = ('ffmpeg', 'avconv')
COMMANDS = ('D:/learn/ffmpeg-N-102014-gda6e137cb6-win64-gpl-shared/ffmpeg-N-102014-gda6e137cb6-win64-gpl-shared/bin/ffmpeg.exe', 'avconv')