gpt4 book ai didi

ios - AVAudioRecorder 通过加速 FFT 进入频率 - EXECUTION

转载 作者:可可西里 更新时间:2023-11-01 05:38:07 29 4
gpt4 key购买 nike

我的主要目标:找到通过 AVAudioRecorder 引入的噪音的频率。我遵循了这个:

http://www.ehow.com/how_12224909_detect-blow-mic-xcode.html

我已经阅读了很多关于如何检测频率的问题。这些答案中的大多数都说,“使用 FFT!”然后提问者会说,“哦,太棒了!”。

我的问题是,你如何从这里得到:

- (void)levelTimerCallback {
[recorder updateMeters];

const double ALPHA = 0.05;
double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;

if (lowPassResults > sensitivitySlider.value) {
NSLog(@"Sound detected");

//What goes here so I can spit out a frequency?
}

}

以某种方式神奇地使用 FFT...(我将使用 accelerate.h),

最后得到“The frequency = 450.3”?

如果有人能告诉我实际的代码,我会用它来

  1. 将来自 AVAudioRecorder 的声音插入 Accelerate和
  2. 如何将结果转化为频率...

那将不胜感激。

提前致谢。

最佳答案

没有任何东西“在那里”,因为 AVRecorder API 没有插入 Accelerate 框架。相反,你必须使用一个完全不同的 API,Audio Queue 或 RemoteIO Audio Unit API,来捕获音频输入,一个完全不同的代码安排,比如等待回调来获取你的数据,缓冲区大小管理来获取数据数组的适当的大小来馈送 FFT,然后了解足够多的 DSP 来对 FFT 结果进行后处理,以获得您正在寻找的特定类型的频率测量。

关于ios - AVAudioRecorder 通过加速 FFT 进入频率 - EXECUTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770180/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com