繁体   English   中英

为 TensorFlow 导入 librosa 时出错:找不到 sndfile 库

[英]Error importing librosa for TensorFlow: sndfile library not found

我正在尝试使用 TensorFlow Lite 进行使用 Jupyter 笔记本的语音识别项目,但是当我尝试执行“导入 librosa”时(使用此处找到的命令: https://github.com/ShawnHymel/tflite-speech-recognition/blob /master/01-speech-commands-mfcc-extraction.ipynb )我不断收到此错误:

OSError: sndfile library not found

我已经寻找了两天的解决方案,尝试了我在网上找到的许多不同的东西,但我似乎无法让它工作。

我正在使用 CentOS 8 和 tensorflow 在 docker 上运行:

docker pull tensorflow/tensorflow:latest-py3-jupyter   
docker run -it --rm -v /home/server/Desktop/TensorFlow -p 8888:8888 tensorflow/tensorflow:latest-py3-jupyter

我的 requirements.txt 是空的,至少在我执行pip freeze > requirements.txt时是这样。

pip -V 或 --v 返回此

pip 20.3.2 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

尝试安装 pysndfile 给了我这个

ERROR: Command errored out with exit status 1: /usr/bin/python3 /usr/local/lib/python3.6/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-w_gdqebo/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools 'numpy>=1.13.0' 'cython>=0.25.0' wheel Check the logs for full command output.

我尝试了不同的命令来修复此错误并安装 sndfile,但它们都给出了错误或只是说它已经安装。

我确实安装了 librosa,但尝试导入它给了我这个完整的错误:

 OSError                                   Traceback (most recent call last)
<ipython-input-10-989066361697> in <module>
----> 1 import librosa

/usr/local/lib/python3.6/dist-packages/librosa/__init__.py in <module>
    209 # And all the librosa sub-modules
    210 from ._cache import cache
--> 211 from . import core
    212 from . import beat
    213 from . import decompose

/usr/local/lib/python3.6/dist-packages/librosa/core/__init__.py in <module>
      4 
      5 from .convert import *  # pylint: disable=wildcard-import
----> 6 from .audio import *  # pylint: disable=wildcard-import
      7 from .spectrum import *  # pylint: disable=wildcard-import
      8 from .pitch import *  # pylint: disable=wildcard-import

/usr/local/lib/python3.6/dist-packages/librosa/core/audio.py in <module>
      6 import warnings
      7 
----> 8 import soundfile as sf
      9 import audioread
     10 import numpy as np

/usr/local/lib/python3.6/dist-packages/soundfile.py in <module>
    140     _libname = _find_library('sndfile')
    141     if _libname is None:
--> 142         raise OSError('sndfile library not found')
    143     _snd = _ffi.dlopen(_libname)
    144 except OSError:

OSError: sndfile library not found

有人对如何排序有想法吗?

为您的操作系统安装 sndfile。 在 CentOS 上应该是yum install libsndfile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM