模拟CNN的理想方法是什么



我正在尝试检测音频文件中的某种类型的声音。这些录音的长度可变,我想检测的声音类型通常约为1~5秒长,我有数据集的标签(事件发生时的开始和偏移(。

我最初的方法是将其视为一个二元分类问题。其中我每半秒计算一次mel谱图(例如(。如果在那0.5秒内没有事件,我会用0标记谱图,如果相反,我会把它标记为1。

我能用什么方式来对抗这一切?我试图通过传递0.1而不是1来进行更改(假设前面的示例(。基本上标记事件在图像中发生的百分比:标记[0~1]而不是{0,1}。

非常感谢。

我曾使用固定输入大小的CNN进行简单分类,然后在扫描可变长度样本时多次调用CNN(1-5秒的声音片段(,从而解决此类问题。

例如,假设您创建了一个输入0.2s数据的CNN,输入大小现在是固定的。您可以根据样本的中心点是否在您在问题中定义的事件内来计算0.2s的{0,1}标签。您可以使用相同的方法尝试不同的输入大小。

现在,你要求CNN在你1-5秒样本的每一点上做出预测。首先,你向CNN传递前0.2秒的数据,然后向前推进一个或多个数据点(你的步长是一个可以调整的超参数(。假设你的步长是0.1s,你的第二步将使用样本中0.1s到0.3s的数据产生CNN分类。继续,直到到达样本的末尾。现在,您可以对整个样本进行分类。原则上,你可以在每个数据点得到一个分类,这样你就有了和数据点一样多的预测。滚动中值滤波器(见Panda(是平滑预测的好方法。

这是一个非常简单的CNN设置。您还可以通过大量增加训练数据而受益,因为现在每个声音文件都是许多训练样本。使用这种方法,您的预测分辨率非常精细。

这是一篇更深入地描述该方法的论文(如果这是付费墙的话,arXiv上也有一个稍早的版本,标题相同(,请从第3节开始阅读:

https://academic.oup.com/mnras/article/476/1/1151/4828364

在那篇论文中,我们正在研究1D天文学数据,它的结构与1D音频数据基本相同,因此该技术将适用。在那篇论文中,我所做的不仅仅是分类,使用的技术与我定位零个或多个事件以及描述这些事件的技术相同(出于您的目的,我只从分类开始(。因此,您可以看到这种方法扩展得非常好。事实上,即使是在时间上部分重叠的多个事件也可以被有效地识别和提取。

相关内容

最新更新