Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 如何使用MFCC系数向量训练机器学习算法?_Machine Learning_Signal Processing_Audio Processing_Mfcc_Audio Fingerprinting - Fatal编程技术网

Machine learning 如何使用MFCC系数向量训练机器学习算法?

Machine learning 如何使用MFCC系数向量训练机器学习算法?,machine-learning,signal-processing,audio-processing,mfcc,audio-fingerprinting,Machine Learning,Signal Processing,Audio Processing,Mfcc,Audio Fingerprinting,在我最后一年的项目中,我试图实时识别狗/吠叫/鸟的声音(通过录制声音片段)。我使用MFCC作为音频功能。最初,我使用jAudio库从一个声音片段中总共提取了12个MFCC向量。 现在我正在尝试训练一种机器学习算法(目前我还没有决定算法,但很可能是SVM)。声音片段的大小大约为3秒。我需要澄清一些关于这个过程的信息。他们是, 我是否必须使用基于帧的MFCC(每帧12个)来训练此算法 还是基于整体剪辑的MFCC(每个声音剪辑12个) 在训练算法时,我必须把所有12个MFCC视为12个不同的属性,还是

在我最后一年的项目中,我试图实时识别狗/吠叫/鸟的声音(通过录制声音片段)。我使用MFCC作为音频功能。最初,我使用jAudio库从一个声音片段中总共提取了12个MFCC向量。 现在我正在尝试训练一种机器学习算法(目前我还没有决定算法,但很可能是SVM)。声音片段的大小大约为3秒。我需要澄清一些关于这个过程的信息。他们是,

  • 我是否必须使用基于帧的MFCC(每帧12个)来训练此算法 还是基于整体剪辑的MFCC(每个声音剪辑12个)

  • 在训练算法时,我必须把所有12个MFCC视为12个不同的属性,还是必须考虑12个MFCC作为一个属性?

    这些MFCC是剪辑的总体MFCC

    -9.5988027122909967-21.644963856237265-7.405551798816725-11.638107212413201-19.441831623156144-2.780967392928843105-0.5792847321137902-13.14237288849559-4.920408873192934-2.711150799981925-7.336670942457227-2.4687330335212

    我们将非常感谢任何帮助来克服这些问题。我在谷歌上找不到好的帮助。:)

  • 您应该计算每帧的MFCC。因为你们的信号在时间上是不同的,所以在整个剪辑中使用它们是没有意义的。更糟糕的是,最终可能会出现狗和鸟具有相似表示的情况。我会尝试几种帧长度。通常,它们将以毫秒为单位

  • 所有这些都应该是独立的特性。让机器学习算法决定哪一个是最好的预测器

  • 请注意,MFCC对噪音很敏感,因此请首先检查样本的声音。例如,提供了更丰富的音频提取功能选择,其中许多功能在您的情况下会更好地发挥作用。具体是哪个?以下是我发现的对鸟叫声分类最有用的内容:

    • 光谱平坦度
    • 知觉扩散
    • 光谱衰减
    • 光谱衰减
    • 谱形统计
    • 光谱斜率
    • 线性预测编码(LPC)
    • 线谱对(LSP)
    也许你会对退房感兴趣,尤其是我与Yaafe的互动部分


    在我使用支持向量机的时候,就像你计划的那样。今天我肯定会使用渐变增强功能。

    这确实很有帮助,对于这种情况,建议的窗口大小是多少?通常我会想有一个3秒钟的窗口,因为有些鸟的声音很长。当谈到培训时,你能给我解释一下如何创建矩阵吗?因此,我必须创建12个不同的属性,因为它们都是独立的功能,对吗?可以将窗口大小视为保存信息的最短间隔,即声音的量子。在3秒钟内你可以说一个完整的句子。正如我在回答中所解释的:以毫秒为单位,例如16毫秒。窗口应重叠,至少50%或更多。例如,如何“创建矩阵”,请参考我共享的一段代码。保存的信息表示我需要的完整声音或我需要识别的声音的一小部分?让我们假设一只鸟独特的声音是2秒长。如果我使用1秒的窗口大小,就没有一次机会获得鸟类的真实声音,是吗(我建议您先阅读一些DSP简介。长话短说,您的窗口大小应该至少长几倍(例如5)比声音的周期低-音调越低,窗口应该越长。但是,窗口越长,分辨率越低。如果可能,请分享你的代码,我正在做类似的工作。