【问题标题】:audioread.exceptions.NoBackendError in librosalibrosa 中的 audioread.exceptions.NoBackendError
【发布时间】:2020-01-03 14:48:57
【问题描述】:
import librosa
import librosa.display
import IPython.display
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.font_manager as fm

audio_path = 'rec.wav'
y, sr = librosa.load(audio_path)

我尝试将音频文件加载到 librosa。 所以我就这样写了代码。 但我收到错误“文件包含未知格式的数据”、“文件包含未知格式的数据”。

我在 Google 上搜索并被告知要安装 ffmpeg。 所以我安装了ffmpeg但仍然得到错误

怎么了? (估计是编码有问题…………)

所有错误消息:

Traceback (most recent call last):
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\librosa\core\audio.py", line 129, in load
    with sf.SoundFile(path) as sf_desc:
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\soundfile.py", line 629, in __init__
    self._file = self._open(file, mode_int, closefd)
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\soundfile.py", line 1184, in _open
    "Error opening {0!r}: ".format(self.name))
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\soundfile.py", line 1357, in _error_check
    raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
RuntimeError: Error opening 'rec.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/****/PycharmProjects/pitch_project_/pitdetec.py", line 12, in <module>
    y, sr = librosa.load(audio_path)
  File "C:\Users\*****\AppData\Local\Programs\Python\Python36\lib\site-packages\librosa\core\audio.py", line 147, in load
    y, sr_native = __audioread_load(path, offset, duration, dtype)
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\librosa\core\audio.py", line 171, in __audioread_load
    with audioread.audio_open(path) as input_file:
  File "C:\Users\****\AppData\Local\Programs\Python\Python36\lib\site-packages\audioread\__init__.py", line 116, in audio_open
    raise NoBackendError()
audioread.exceptions.NoBackendError 

尝试:

audio_path = 'C:/Users/ddolcju/PycharmProjects/pitch_project/rec.mp3'

【问题讨论】:

  • 我发现通过 miniconda 安装 librosa 效果最好,并且通常可以避免缺少库的问题。
  • 谢谢,但问题没有解决。

标签: python librosa


【解决方案1】:

您需要检查几件事:

  1. librosa 无法直接读取 mp3 文件,因此它会尝试使用 audioread 包。

  2. Audioread 尝试使用许多可能安装或未安装的不同软件包。其中之一是ffmpeg

  3. 但是它使用FFmpeg'通过它的命令行界面'。我认为这就是pip 安装FFmpeg 不起作用的原因。它需要ffmpeg.exe 文件。

  4. 您可以下载ffmpeginstaller from here

  5. 安装后确保您可以从命令行启动ffmpeg(键入ffmpeg -h)。您可能需要将安装文件夹的路径(例如 c:\ffmpeg\bin)添加到 Windows 路径中。

  6. 最后,确保重新启动您的 IDE。在重置之后,Visual Studio Code 可能无法识别新路径。

【讨论】:

    【解决方案2】:

    我在 Windows 10 上遇到了同样的问题,在安装 ffmpeg 并将其配置为 PATH 后,它可以工作。需要重新启动 python 会话。

    【讨论】:

      【解决方案3】:

      我假设你解决了你的问题,但如果其他人有这个问题:

      我安装了 ffmpeg(以下代码)并且它工作正常。

      pip install ffmpeg
      

      【讨论】:

        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-11-06
          • 2021-11-03
          • 1970-01-01
          • 2020-09-21
          • 2019-11-16
          • 2017-10-08
          • 2020-06-23
          相关资源
          最近更新 更多