【发布时间】:2014-02-09 23:05:44
【问题描述】:
我知道我绝对不是第一个询问使用 FFT 来查找 Android 的 AudioRecord 频率的人,但是在阅读了大量论坛之后,我仍然不太了解它。
我最终使用了 ComplexDoubleFFT 类,它是 Herschel Common Science System 的一部分以及类似于 here 的代码。
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, rate, channelConfig, audioFormat, bufferSize);
...
double[] micBufferData = new double[audioData.length];
int x=0;
for(short data : audioData)
{
micBufferData[x] = data;
x++;
}
FFT newFFT = new FFT(bufferSize/2);
newFFT.ft(micBufferData);
接下来要做的事情基本上与我在上面提到的线程中完成的事情相同,因为它对他们有用。但是,他们有一个名为 toTransform 的数组,我不确定他们从哪里得到它。我假设这是他们的 FFT 值列表,但我不知道如何获得这些值!我已经浏览了 ComplexDoubleFFT 的类文件,它甚至没有任何地方返回它的输出。希望我措辞所有这些的方式不会令人困惑。非常感谢任何帮助!
【问题讨论】:
-
您可能需要显示代码或说明此 toTransform 数组的用途。
-
@hotpaw2 我已经想通了,但如果你想让我详细说明我做了什么,我可以这样做。
标签: android fft audio-recording