0

有没有办法在 OS X 上使用 Core Audio 将 AIFF 文件中的一组帧提取到适合执行 FFT 的 32 位浮点数组中?

4

1 回答 1

3

是的。最简单的方法是使用 ExtAudioFile API。Apple 的ConvertFile示例代码中有一个很好的示例。看看 UseExtAF.cpp。

对于 44.1 kHz 的采样率,32 位浮点 LPCM 的 AudioStreamBasicDescription 如下所示:

AudioStreamBasicDescription fmt;
fmt.mSampleRate = 44100;
fmt.mFormatID = kAudioFormatLinearPCM;
fmt.mFormatFlags = kLinearPCMFormatFlagIsFloat;
fmt.mBitsPerChannel = sizeof(Float32) * 8;
fmt.mChannelsPerFrame = 1; // set this to 2 for stereo
fmt.mBytesPerFrame = fmt.mChannelsPerFrame * sizeof(Float32);
fmt.mFramesPerPacket = 1;
fmt.mBytesPerPacket = fmt.mFramesPerPacket * fmt.mBytesPerFrame;
于 2010-04-03T01:28:40.150 回答