我需要一种方法来从麦克风获取频率并确定平均频率。是否有图书馆或其他东西来处理这个问题?
由于
答案 0 :(得分:3)
如果您的目标是iOS 4及更高版本,Apple现在包含Accelerate框架。来自Apple的“What's new”页面:
http://developer.apple.com/technologies/iphone/whats-new.html#api
<强>加速强>
Accelerate提供数百种针对iPhone和iPod touch优化的数学函数,包括信号处理程序,快速傅里叶变换,基本矢量和矩阵运算,以及用于分解矩阵和求解线性方程组的行业标准函数。
答案 1 :(得分:0)
你会想要使用FFT,所以我建议你看看这个Q&amp; A:
答案 2 :(得分:0)
您可以使用EZAudio
类来获取频率
Download the Demo Here
并使用此方法获取频率
- (void) fft:(EZAudioFFT *)fft updatedWithFFTData:(float *)fftData bufferSize:(vDSP_Length)bufferSize
{
float maxFrequency = [fft maxFrequency];
NSString *noteName = [EZAudioUtilities noteNameStringForFrequency:maxFrequency
includeOctave:YES];
dispatch_async(dispatch_get_main_queue(), ^{
[audioPlotFreq updateBuffer:fftData withBufferSize:(UInt32)bufferSize];
NSLog(@"Frequncy : %f Highest Note : %@",maxFrequency,noteName);
});
}