python - 基于FFT的音频分类

标签 python machine-learning classification fft sound-recognition

在Python中,我仅通过检查频率和幅度来执行警报识别。我的代码对 1s 声音进行 FFT,然后将其与预定频率及其幅度进行比较。由于警报包含更高的频率(6k-9kHz 等)和长数组(44100 个不同的元素),因此我可以在没有 ML 的情况下成功完成它。得益于高分辨率的 FFT,即使在 7010Hz 和 7016Hz 等接近的频率下,我也可以区分幅度变化,并且由于这些频率在录音环境中没有任何外部噪声,我可以猜测正确的警报。 然而,我想用机器学习来实现它,因为很难用大量的警报来执行它。有很多音频分类源/工作示例等,但我找不到最适合我的。他们通常使用特征提取、MFCC,但我不想因为使用 MFCC 而失去分辨率,因为它结合了接近的频率。 所以我只想构建一个 ML 算法,它只检查每个类中的两个数组;频率和振幅(都有 44100 个元素) 你能建议任何来源来构建这个算法吗?我检查了下面的源,这是可以的,但我不想使用 MFCC 类型的方法。如果你发表评论,我可以用例子来阐述我的问题。 pyAudioClassification

最佳答案

除了特定频率之外,警报通常还具有特征时间特征。要么是波动的,要么是开/关模式。

要检测这些,您应该将 STFT 转换为对数尺度梅尔谱图。您可以使用 100-1000 毫秒的分析时间窗口进行分类。卷积神经网络往往做得最好,但您也可以只使用随机森林分类器。

关于python - 基于FFT的音频分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56015252/

相关文章:

python - django-tables2 将动态列从 hstore 添加到表类

python - 在 numpy 中创建索引数组 - 消除双循环

python - Kivy属性错误: 'super' object has no attribute '__getattr__' error

python - Conv2D模型的训练卡住了[MNIST数据集]

opencv - MNIST数据集上的Logistic回归

python - 计算 k-means 的距离时环绕

python - 如何将 url 值传递给 Scrapy 爬取中的所有后续项目?

python - 如果图像具有 (28,28,3) 形状,我如何将其转换为 (28.28,1)?

python - 为支持向量机 reshape ndarray

image-processing - 改进图像像素分类的方法