【问题标题】:Audio Classification based on FFT基于 FFT 的音频分类
【发布时间】:2019-09-24 16:23:13
【问题描述】:

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

【问题讨论】:

  • 在您的问题的第一个 o 之后,您可以尝试决策树。
  • 谢谢,我正在检查 SciKit 如果我的声音在闹钟的峰值频率附近有外部噪音,它是否适合(学习后)?
  • 我的建议是在实际开始分析之前过滤掉噪音。
  • 我想在这些噪音中检测到我的警报。我也在搜索 SVM,也许它可以解决得更好。

标签: python machine-learning classification fft sound-recognition


【解决方案1】:

除了具有特定频率之外,警报通常还具有特征性的时间特征。起伏或开/关模式。

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

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多