audio - 如何使用 MFCC 向量对单个音频文件进行分类?

标签 audio classification knn mfcc

这可能是一个非常愚蠢的问题,但我在任何地方都找不到详细信息。

所以我有一个 3 秒长的录音(wav 文件)。那是我的样本,它需要归类为 [class_A] 或 [class_B]。

通过遵循 MFCC 上的一些教程,我将样本分成帧(准确地说是 291 帧),并且我从每一帧中获得了 MFCC。

现在我有 291 个特征向量,每个向量的长度是 13。

我的问题是;您究竟如何将这些向量与分类器(例如 k-NN)一起使用?我有 291 个向量代表 1 个样本。我知道如何处理 1 个样本的 1 个向量,但如果我有 291 个向量,我不知道该怎么办。我真的找不到任何地方的解释。

最佳答案

您的每个向量都将代表您的音频文件的频谱特征,因为它会随时间变化。根据帧的长度,您可能希望对其中的一些进行分组(例如通过按维度求平均值)以匹配您希望分类器使用的分辨率。例如,考虑一个特定的声音,它的包络可能具有 2ms 的起音时间:这可能是您希望通过时间量化获得的细粒度,因此您可以 a) 对 MFCC 向量的数量进行分组和平均表示 2ms;或 b) 以所需的时间分辨率重新计算 MFCC。

如果你真的想保持分辨率那么好,你可以连接 291 个向量并将其视为单个向量(291 x 13 维),这可能需要一个巨大的数据集来训练。

关于audio - 如何使用 MFCC 向量对单个音频文件进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16546524/

相关文章:

python - 当使用k个最近邻居时,有没有办法检索所使用的 "neighbors"?

scikit-learn - 在 KNN 中获得概率为 0 或 1 (predict_proba)

audio - Bot 在离开前没有完成播放音频

machine-learning - 如何预处理此 float 据以与 scikit 一起使用 - 机器学习

python - LSTM 0 准确率

python - 如何在训练过程中纠正不稳定的损失和准确率? (二元分类)

javascript - 将音频isPlaying状态设置为当前音频唯一

Android Handler.postDelayed 中断声音播放

.net - 如何使用NAudio从cryptoStream播放mp3?

r - 如何绘制 knn 模型的 ROC 曲线