嗨,不幸的是,我无法弄清楚iPhone上的音频。我接近的最好的是AVAudioRecorder / Player类,我知道它们对音频处理并不好。
所以我想知道是否有人能够向我解释如何以1024个样本的块来“聆听”iPhone的麦克风输入,分析样本并做些事情。并继续这样,直到我的应用程序终止或告诉它停止。我不打算保存任何数据,我想要的是实时分析数据并实时处理数据。
我试图尝试理解苹果“aurioTouch”的例子,但这对我来说太复杂了。
那么有人可以向我解释我应该如何解决这个问题吗?
嗨,不幸的是,我无法弄清楚iPhone上的音频。我接近的最好的是AVAudioRecorder / Player类,我知道它们对音频处理并不好。
所以我想知道是否有人能够向我解释如何以1024个样本的块来“聆听”iPhone的麦克风输入,分析样本并做些事情。并继续这样,直到我的应用程序终止或告诉它停止。我不打算保存任何数据,我想要的是实时分析数据并实时处理数据。
我试图尝试理解苹果“aurioTouch”的例子,但这对我来说太复杂了。
那么有人可以向我解释我应该如何解决这个问题吗?
如果你想实时分析音频输入,它并不比苹果公司简单得多 带有源代码的aurioTouch iOS示例应用程序 (还有 一个镜像站点)。您可以更多地了解使用音频单元RemoteIO API进行录制,但您仍需要弄清楚DSP部分的实时分析。
音频队列API稍微简单一些,可以从麦克风获取原始PCM音频数据的输入缓冲区,但不是更简单,并且它具有更高的延迟。
稍后添加:还有一个版本的aurioTouch转换为Swift: https://github.com/ooper-shlab/aurioTouch2.0-Swift
如果你想实时分析音频输入,它并不比苹果公司简单得多 带有源代码的aurioTouch iOS示例应用程序 (还有 一个镜像站点)。您可以更多地了解使用音频单元RemoteIO API进行录制,但您仍需要弄清楚DSP部分的实时分析。
音频队列API稍微简单一些,可以从麦克风获取原始PCM音频数据的输入缓冲区,但不是更简单,并且它具有更高的延迟。
稍后添加:还有一个版本的aurioTouch转换为Swift: https://github.com/ooper-shlab/aurioTouch2.0-Swift
如果您想进行任何实时音频处理,AVAudioPlayer / Recorder类将不会带您到那里。音频工具箱和音频单元框架是可行的方法。检查 这里 对于Apple的音频编程指南,看看哪个框架适合您的需要。相信我,这些低级别的东西并不容易,而且记录很少。 CocoaDev有一些 教程 在哪里可以找到示例代码。此外,还有一个音频DSP库 狄拉克 我最近发现了节奏和音调操纵。我没有仔细研究过,但你可能会发现它很有用。
如果你想要的只是操作系统处理量最少的样本,你可能需要Audio Queue API;看到 音频队列服务编程指南。
AVAudioRecorder专为录制文件而设计,AudioUnit更适用于“可插拔”音频处理(在Mac方面,AU实际上非常酷)。