iPhone SDK измеряет частоту через микрофон iphone
Мне нужен способ получить частоту от микрофона и определить среднюю частоту. Есть ли библиотека или что-то для этого?
Спасибо
3 ответа
Если вы ориентируетесь на iOS 4 и выше, Apple теперь включает в себя инфраструктуру Accelerate. Со страницы Apple "Что нового":
http://developer.apple.com/technologies/iphone/whats-new.html
ускоряться
Accelerate предоставляет сотни математических функций, оптимизированных для iPhone и iPod touch, включая процедуры обработки сигналов, быстрые преобразования Фурье, основные векторные и матричные операции и стандартные в отрасли функции для разложения матриц и решения систем линейных уравнений.
Вы захотите использовать БПФ, поэтому я рекомендую посмотреть на эти вопросы и ответы:
Вы можете использовать EZAudio
Класс для получения частоты Загрузите демо здесь и используйте этот метод для получения частоты
- (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);
});
}