检测音频模式

时间:2015-04-01 10:24:41

标签: audio statistics wav

我可以在音频分析上使用一些帮助。我想要做的是找到音频文件中的特定模式。问题是我没有确切的音频参考,我只是想在文件中找到类似的模式。 到目前为止,我已经在轨道上计算了RMS,因为我们可以看到很容易看到声音和我想要提取的声音之间的区别(箭头指向的声音)。

image

我已经尝试过计算标准差,但没有任何有趣的内容。 所以我对所有我应该研究的统计属性都持开放态度。

   float rms(short* buffer, int length){
        float avg = 0;
        float sum = 0;
        for (int i=0;i < length;++i){
            sum += buffer[i];
        }
        avg = sum / (float)length;
        float summean = 0;
        for (int i = 0;i < length;++i){
            summean += (buffer[i] - avg) * (buffer[i] - avg);
        }
        return pow(summean / (float)length, 0.5);
    }

        void main(){
            SndfileHandle file = read_file("audio_file.wav");
            float* avgBuffer; //the buffer is allocated somewhere else     
            float seconds = 0.03;
            int bufferLength = seconds * 16000; //samplerate

            short* buffer = (short*)malloc(sizeof(short) * bufferLength);

            while ((len = file.read(buffer, bufferLength))){
                avgBuffer[x] = rms(buffer, len);
                x++;
            }
            display(avgBuffer); //displays the red graph

    }

0 个答案:

没有答案