2013-02-17 113 views
1

我有一个MP3文件,需要不断检测并显示此MP3文件的Hz值。有一点谷歌搜索表明我有两个机会:使用FFT或使用Apple Accelerate框架。不幸的是,我还没有找到任何易于使用的样本。所有的样品,如AurioTouch等,都需要大量的代码才能获得简单的样品缓冲液数量。 iOS有没有简单的音高检测示例?简单易用的MP3文件FFT

例如我找到https://github.com/clindsey/pkmFFT,但它缺少一些其作者已删除的文件。任何这样的工作?

+1

音高检测/估计不是一个简单直接的问题。 – hotpaw2 2013-02-18 17:20:58

回答

1

恐怕不是。处理声音通常很困难,Core Audio也不例外。现在就在眼前。

FFT是一种将输入从时域转换到频域的算法。不一定与声音处理相关联,您可以将其用于声音之外的其他声音。

Accelerate是Apple提供的框架,其中许多其他功能提供了FFT实现。所以,你实际上没有两个选择,只有一个和它的实现。根据你想要做什么(例如,如果你偏爱速度超过精确度,鲁棒性和简单性等)以及你拥有的波形类型(简单,复杂,人类的语音,音乐),FFT可能还不够(FFT)可能是不够的无论是自己还是甚至不是您的任务的正确选择。还有其他选项,自动关联,零交叉,倒谱分析,最大可能提一些。但没有一个是微不足道的,除了零交叉,这也给你最差的结果,并将无法使用复杂的波形。

+0

例如我找到https://github.com/clindsey/pkmFFT,但它缺少一些其作者已删除的文件。任何这样的工作? – 2013-02-18 08:30:33

1

这是一个良好的开端:

http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

也有上的其他问题。

但是,正如其他答案所指出的那样,这不是一件可以“神奇地”完成的事情。即使你从某人获得许可代码(例如,iZotope和z平面都可以做出你想做的事情的优秀代码),但你仍然需要了解将数据导入和导出库的过程。