如何对连续音频进行分类

How to classify continuous audio

我有一个音频数据集,每个都有不同的长度。这些音频中有一些事件,我想训练和测试,但这些事件是随机放置的,加上长度不同,使用该数据集构建机器学习系统真的很难。我想固定长度的默认大小并构建多层 NN 然而,事件的长度也不同。然后我想到了使用 CNN,就像它被用来识别图像上的模式或多个人一样。那个问题是当我试图理解音频文件时我真的很挣扎。

所以,我的问题是,有没有人可以给我一些关于构建机器学习系统的提示,该系统可以对不同类型的定义事件进行分类,并在随机具有这些事件的数据集上进行自我训练(1 个数据包含超过 1 个事件,它们彼此不同。)并且每个事件都有不同的长度?

如果有人能提供帮助,我将不胜感激。

您可以使用循环神经网络 (RNN)。

https://www.tensorflow.org/versions/r0.12/tutorials/recurrent/index.html

输入数据是一个序列,您可以在时间序列的每个样本中放置一个标签。

例如,在 tensorflow 等库中可以使用 LSTM(一种 RNN)。

首先,您需要在声音流中注释您的事件,即为它们指定范围和标签。

然后,使用信号框架将您的声音转换为特征向量序列。典型的选择是 MFCC 或 log-mel filtebank 特征(后者对应于声音的频谱图)。完成此操作后,您会将声音转换为 fixed-size 特征向量序列,这些向量可以输入 classifier。参见 this。为了更好的解释。

由于典型声音的持续时间比分析帧长,您可能需要使用滑动 window 堆叠几个连续的特征向量,并将这些堆叠的帧用作神经网络的输入。

现在您有 a) 输入数据和 b) 每个 window 分析的注释。因此,您可以尝试训练 DNN 或 CNN 或 RNN 来预测每个 window 的声音 class。此任务称为发现。我建议您阅读 Sainath, T. N., & Parada, C. (2015)。用于 Small-footprint 关键字识别的卷积神经网络。在会议论文集 INTERSPEECH(第 1478–1482 页) 中,并按照其参考文献了解更多详细信息。