如何将音频剪辑转换为数组以执行 FFT?

Posted

技术标签:

【中文标题】如何将音频剪辑转换为数组以执行 FFT?【英文标题】:How do convert an audio clip into an array to perform an FFT? 【发布时间】:2019-04-23 19:42:09 【问题描述】:

我想编写一个程序来读取不同乐器演奏相同音符的声音文件,并显示不同的签名频率。

我使用的库是 JTransforms,因为它似乎是最推荐在 java 中执行 FFT 的库。我还没有找到任何关于如何使用这个库的明确解释,但据我所知,我需要将一组实数和复数传递到库提供的方法中。如何从我的音频剪辑中获取这些数字? 我对声音处理有非常基本的了解,因为这只是我第一堂计算机科学课的学期项目。

【问题讨论】:

通常您的音频数据是一个浮点数组,您将其发送到 fft 调用中,该调用将返回一个新的复数数组......真正的技能是能够理解从返回的数组fft 调用...查看详细信息***.com/a/55699449/147175 帮助你自己 - 与同学***.com/questions/55782983/… 【参考方案1】:

正如您在this 或this 问题中所见,您需要将文件作为字节数组读取。不要担心复数,因为您只需要实部并且可以用 0 填充虚部(您也可以在我上面链接的问题中看到它)。

【讨论】:

以上是关于如何将音频剪辑转换为数组以执行 FFT?的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要将立体声音频转换为单声道以进行 FFT?

如何使用 fft 为音频创建低通滤波器

如何使用 NAudio 对波形文件执行 FFT

执行 FFT 后如何将复数转换回“正常”数

在将数据输入 FFT 用于音频频谱分析仪之前,使用 python 将 wav 文件转换为 csv 文件 [关闭]

如何在 iOS 中使用 vDSP 将声音文件转换为 FFT