我即将开始开发用于音频处理的iOS应用程序。目前,由于这是一个研究项目,因此不太确定应用程序的要求是什么。但基本要求至少是从麦克风输入中检测出线缆。因此,我重视您对可用库的看法,您认为这些库对此类工作有益。我想尽可能远离第三方图书馆。
答案 0 :(得分:8)
我建议使用Novocaine库。如果你自己从头开始做音频,那真的很痛苦......
https://github.com/alexbw/novocaine
使用音频单元在iOS和Mac OS X中实现快速音频很难,并且会让您感到伤痕累累和血腥。过去需要几天才能完成几行代码。
Novocaine *audioManager = [Novocaine audioManager];
[audioManager setInputBlock:^(float *newAudio, UInt32 numSamples, UInt32 numChannels) {
// Now you're getting audio from the microphone every 20 milliseconds or so. How's that for easy?
// Audio comes in interleaved, so,
// if numChannels = 2, newAudio[0] is channel 1, newAudio[1] is channel 2, newAudio[2] is channel 1, etc.
}];
答案 1 :(得分:5)
我使用音频单元 没有第三方的东西,只是简单的音频单元,无论如何都是iOS上最好的音频接口 开始时有点棘手,但阅读文档后你会很高兴。
答案 2 :(得分:3)
音频图表(https://github.com/tkzic/audiograph)演示了如何从麦克风,音频文件和MIDI文件中读取音频。它还在时域和频域处理它们(对于和弦检测,您可能需要在频域中进行一些分析)。作为Apple的MixerHost示例的修改,它不使用任何第三方库。
Apple的Aurio Touch(https://developer.apple.com/library/ios/samplecode/aurioTouch2/Introduction/Intro.html)有点难学,但包含了您需要的内容。这不涉及任何第三方图书馆。答案 3 :(得分:1)
Core Audio和Accelerate框架内置于iOS中。不需要任何第三方库。如果Apple开发人员网站上的文档很多。对于实时低延迟音频输入,请尝试内置于iOS Core Audio中的RemoteIO音频单元。
还有一本关于学习核心音频的书。
Accelerate框架包含许多基本的DSP构建模块,例如FFT,矩阵数学和双二阶滤波器。