java - 如何使用 FFT 变换阵列检测音高?

标签 java real-time fft microphone pitch-tracking

所以我有一个转换后的复数数组。我不知道如何处理返回的数据。我尝试计算每个元素的大小,将最高元素指定为正确的频率,但发现我经常得到像 5,000hz 这样的奇怪数字。我可以对返回的数据执行更好的操作来确定音高吗?

注意:我想使用音调作为语音 Activity 检测算法的一部分。

最佳答案

有许多不同的音调检测算法 - 我建议您尝试使用 Harmonic Product Spectrum方法,因为您已经开始了基于 FFT 的路线,并且实现您拥有功率谱的路线相当简单。

关于java - 如何使用 FFT 变换阵列检测音高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797518/

相关文章:

Android音频FFT显示基频

Java正则表达式问题

java - Jenkins 服务器无法编译,因为无法保留堆空间

java - 使用 mongo 聚合合并文档中的数组

java - ExchangeTimedOutException : The OUT message was not received

c - 如何在实时 Linux 中进行进程间通信?

matlab - 如何使用句柄在 MATLAB 中绘制多条曲线

javascript - canvasjs:是否有可能回到过去?

ios - iOS上的FFT/吉他调谐器

java - 理解jtransform