作者/维护者: Ignacio Heredia (CSIC)
项目:这项工作是 DEEP Hybrid-DataCloud 项目的一部分,该项目已根据拨款协议 No 777435 获得欧盟 Horizon 2020 研究和创新计划的资助。
这是一个即插即用工具,用于通过深度学习执行音频分类。它允许用户对音频样本进行分类,并针对自定义问题训练自己的分类器。该分类器目前已针对 AudioSet 数据集中的 527 个高级类进行了预训练。
您可以在 DEEP Marketplace 中找到有关它的更多信息。
目录
要求
该项目已在 Ubuntu 18.04 和 Python 3.6.5 中进行了测试。进一步的包要求在
requirements.txt
文件中描述。
- 为了支持多种音频格式,我们需要使用 FFMPEG 库。要在 Linux 中安装它,请运行:
apt-get install ffmpeg libavcodec-extra- 要求安装 Tensorflow>=1.14.0(无论是在 gpu 还是 cpu 模式下)。这没有在
requirements.txt
中列出,因为它破坏了GPU支持。
要开始使用此框架,请克隆存储库并下载默认权重:
git clone https://github.com/deephdc/audio-classification-tf
cd audio-classification-tf
pip install -e .
curl -o ./models/default.tar.gz https://api.cloud.ifca.es:8080/swift/v1/audio-classification-tf/default.tar.gz
cd models && tar -zxvf default.tar.gz && rm default.tar.gz
现在运行 DEEPaaS:
deepaas-run --listen-ip 0.0.0.0
打开http://0.0.0.0:5000/ui 并查找属于audioclas
模块的方法。
我们还准备了一个现成的 Docker 容器来运行这个模块。运行它:
docker search deephdc
docker run -ti -p 5000:5000 -p 6006:6006 -p 8888:8888 deephdc/deep-oc-audio-classification-tf
现在打开http://0.0.0.0:5000/ui 并查找属于audioclas
模块的方法。
您可以使用自定义数据集训练自己的音频分类器。为此,你必须:
将图像放入./data/audios
文件夹中。如果您的数据在其他地方,您可以通过在训练参数中设置dataset_directory
参数来使用该位置。请使用标准音频格式(例如.mp3
或.wav
)。
注意分类器适用于 10 秒的样本。因此,如果音频文件长于/短于 10 秒,它将循环连接以使其持续 10 秒的倍数。因此,22 秒的音频文件将创建 3 个嵌入:
*-0.npy
、*-1.npy
和*-2.npy
。
首先,您需要将以下文件添加到./data/dataset_files
目录中:
强制性文件 | 可选文件 |
---|---|
classes.txt , train.txt | val.txt 、 test.txt 、 info.txt |
train.txt
、 val.txt
和test.txt
文件将音频名称(或相对路径)与标签编号(必须从零开始)相关联。 classes.txt
文件将这些标签编号转换为标签名称。最后, info.txt
允许您提供有关每个类别的信息(例如数据库中的音频文件数量)。
如果您使用选项compute_embeddings=False
,则文件路径应指向嵌入的.npy
路径,而不是原始音频文件,并且dataset_directory
参数应指向包含嵌入的文件夹。
您可以在./data/demo-dataset_files
找到这些文件的示例。
访问 http://0.0.0.0:5000/ui 并查找TRAIN
POST 方法。单击“尝试”,更改您想要的任何训练参数,然后单击“执行”。培训将启动,您将能够通过执行TRAIN
GET 方法来跟踪其状态,该方法还将提供之前执行的所有培训的历史记录。
如果该模块配置了某种训练监控(如 Tensorboard),您将能够在 http://0.0.0.0:6006 上关注它。
转到 http://0.0.0.0:5000/ui 并查找PREDICT
POST 方法。单击“尝试”,更改所需的任何测试参数,然后单击“执行”。您可以提供:
data
参数。或者
url
参数,其 URL 指向音频文件或包含音频文件的压缩文件(例如 zip、tar、...)。以下是此类 url 的示例,您可以将其用于测试目的。 该项目中的代码基于 IBM 的原始存储库,并实现了 Yu 等人的论文“弱监督音频分类的多级注意力模型”。
相对于原始存储库的主要变化是:
如果您认为该项目有用,请考虑引用 DEEP Hybrid DataCloud 项目:
加西亚、阿尔瓦罗·洛佩斯等人。用于机器学习工作负载和应用程序的基于云的框架。 IEEE 访问 8 (2020):18681-18692。
以及以下任何参考文献:
- Jort F. Gemmeke 等人,音频集:音频事件的本体论和人类标记数据集,IEEE ICASSP,2017 年。
- Qiuqiang Kong 等人,使用注意模型进行音频集分类:概率视角。 arXiv 预印本 arXiv:1711.00927 (2017)。
- Changsong Yu 等人,弱监督音频分类的多级注意力模型。 arXiv 预印本 arXiv:1803.02353 (2018)。
- S. Hershey 等人,大规模音频分类的 CNN 架构,arXiv 预印本 arXiv:1609.09430,2016。