栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从音频文件计算FFT

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从音频文件计算FFT

我花了大部分时间在上午,使用发现的FFT
Java代码片段为该代码编写解决方案…但是后来我偶然发现了这个极为出色的Google代码项目,该项目具有一堆用于执行信号处理任务的util类在WAV和MP3文件上都一样。

https://github.com/Uriopass/audio-
analysis
以前SVN导出是在以下Google代码上进行的:https :
//storage.googleapis.com/google-pre-archive-source/v2/pre.google.com/audio-
analysis / source-archive.zip

现在,它变得异常简单:

WaveDeprer deprer = new WaveDeprer(new FileInputStream(wavFile));FFT fft = new FFT(1024, wavFileObj.getSampleRate());

现在,您可以使用fft对象进行各种计算。他们有很多很好的例子,例如生成包含光谱通量的列表:

    float[] samples = new float[1024];    float[] spectrum = new float[1024 / 2 + 1];    float[] lastSpectrum = new float[1024 / 2 + 1];    List<Float> spectralFlux = new ArrayList<Float>();    while (deprer.readSamples(samples) > 0) {        fft.forward(samples);        System.arraycopy(spectrum, 0, lastSpectrum, 0, spectrum.length);        System.arraycopy(fft.getSpectrum(), 0, spectrum, 0, spectrum.length);        float flux = 0;        for (int i = 0; i < spectrum.length; i++) flux += (spectrum[i] - lastSpectrum[i]);        spectralFlux.add(flux);    }

我的公司需要我一种分析音频的方法,以查看是否发生了预期的保持音乐。因此,首先,我为一个具有保留音乐的示例生成了一个WAV文件。然后,我捕获了其中一个没有保留音乐的示例的一些音频。现在剩下的就是对wav的频谱通量求平均,我就开始了。

注意:我不能简单地获取幅度…但是傅立叶变换具有可以正确用于进行比较的频率。

我爱数学。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号