我正在尝试在iOS中检测音频文件的节拍、音调、开头和快速傅立叶变换(FFT),我发现aubio提供了这些功能,iOS framework也可用。
到目前为止,我使用The Amazing Audio Engine接收Core Audio的AudioBufferList格式的音频数据,如下所示:
id<AEAudioReceiver> receiver = [AEBlockAudioReceiver audioReceiverWithBlock:
^(void *source,
const AudioTimeStamp *time,
UInt32 frames,
AudioBufferList *audio) {
// I don't know how to use audio library.
}];我能否使用此AudioBufferList中的aubio检测节拍、音高、首音和快速傅立叶变换(FFT),以及如何检测?如果我走错了路,请给我一些建议。
发布于 2014-03-26 14:01:01
看看aubio download页面,我相信他们已经把它编译成了iOS框架,你可以直接导入到你的Xcode中。
参考:http://aubio.org/download#ios
发布于 2015-06-29 06:55:44
在download page中有一个与iOS一起使用的编译框架。
一个你已经将库拖放到你的项目中,确保你也有如下的框架:
现在,如果您下载Aubio的源代码,您将拥有一个examples文件夹。在那里,你可以找到用C语言编写的用于检测节拍、音高、声母(还有快速傅立叶变换)的代码,因为ObjC是C的超集,所以它也可以在你的项目中工作。
发布于 2015-10-09 20:22:17
我的解决方案是将音频缓冲区写入一个文件,然后将该文件发送到aubio。每当你得到一个新的音频缓冲区时,你可以附加到文件中(如果你想要分析到目前为止的整个事情),或者如果你只对增量片段感兴趣,就直接覆盖它。
https://stackoverflow.com/questions/21302677
复制相似问题