Azure Functions 上的免费库 [Python] 示例函数

Librosa libray [Python] resample function on Azure Function

我正在使用 librosa 对音频数据重新采样,如下所示:

import librosa
filename = "/home/.../example.mp3"
audio, samplerate = librosa.load(filename) # samplerate = 48000
target_samplerate = 24000
new_audio = librosa.resample(audio,samplerate ,target_samplerate ,res_type='sinc_fastest')

此代码适用于我的本地 linux 系统。但是,当我将此类代码部署到 Azure 函数时,它会输出错误:OSError: sndfile library not found Stack

原因应该是 librosa.resample 函数需要两个 C 构建库:LibsndfileLibsamplerate。我可以在我的 local linux 系统上安装它们:

对于 Libsndfile:

sudo apt-get libsndfile1
sudo apt-get libsndfile-dev

对于 Libsamplerate: 我首先从 github 下载文件:https://github.com/libsndfile/libsamplerate 然后按照安装说明进行操作:

./configure
make
make check
make install

但是如何在Azure功能上安装这两个库?请帮帮我!非常感谢!

默认情况下,Linux 上的 Azure Functions 在默认容器中运行。因此,在函数主机中通过 apt-get install libsndfile1 & apt-get install libsndfile-dev 安装不会影响容器内的内容。 对于这种情况,您应该考虑 Creating function using a custom container.

  • 您可以使用来自 here
  • 的 python 的函数基础图像
  • 在上面提供的 docker 文件中,根据您选择的图像,您会看到多个 apt-get 安装。只需添加所需的依赖项(在本例中为 libsndfile1,libsndfile-dev)。
  • 参考 guide.
  • 构建和部署您的函数

注意:消费计划不支持自定义图片。它需要高级计划或专用(应用服务)计划。