【问题标题】:How to listen to mic input and analyse in real time?如何实时收听麦克风输入并进行分析?
【发布时间】:2010-11-21 17:06:14
【问题描述】:

您好,很遗憾,我无法识别 iPhone 上的音频。我接近的最好的是 AVAudioRecorder/Player 类,我知道它们不适合音频处理。

所以我想知道是否有人能够向我解释如何以 1024 个样本块的形式“收听”iPhone 的麦克风输入,分析样本并做一些事情。就这样继续下去,直到我的应用程序终止或告诉它停止。我不想保存任何数据,我只想实时分析数据并实时处理数据。

我试图尝试理解苹果的“aurioTouch”示例,但它太复杂了,我无法理解。

那么有人可以向我解释我应该怎么做吗?

【问题讨论】:

    标签: iphone iphone-sdk-3.0 ios4


    【解决方案1】:

    如果你想实时分析音频输入,它并没有比苹果的aurioTouch iOS sample app with source code(还有a mirror site)简单很多。你可以在谷歌上搜索更多关于使用 Audio Unit RemoteIO API 进行录音的信息,但你仍然需要弄清楚实时分析 DSP 部分。

    Audio Queue API 稍微简单一点,用于从麦克风获取原始 PCM 音频数据的输入缓冲区,但并不简单,而且延迟更高。

    稍后补充:这里还有一个aurioTouch转换为Swift的版本:https://github.com/ooper-shlab/aurioTouch2.0-Swift

    【讨论】:

    • 确实比较简单,推荐你使用NovocaineNVDSP(我是后者的作者)
    • 此答案中的链接现在已损坏。
    • @bartolsthoorn 你会更新现代 iOS 和 OSX 的代码吗???它看起来像一个了不起的项目,但我不能在 iOS 9 上使用它:(
    • @WillBrickner 这些天我并不是很喜欢 iOS,但是具体的不兼容是什么? NVDSP 是一个非常小的项目,所以我想更新工作应该不会太多,但我现在时间很紧。
    • 我错了,我说的是诺卡因。因此,通过扩展,您的库可能也不再起作用了。
    【解决方案2】:

    如果您想做任何实时音频处理,AVAudioPlayer/Recorder 类不会带您到那里。音频工具箱和音频单元框架是要走的路。查看here 获取苹果的音频编程指南,看看哪个框架适合您的需要。相信我,这些低级的东西并不容易,而且文档也很差。 CocoaDev 有一些tutorials,您可以在其中找到示例代码。此外,我最近发现了一个音频 DSP 库DIRAC,用于速度和音高操作。我没有深入研究它,但您可能会发现它很有用。

    【讨论】:

      【解决方案3】:

      如果您想要的只是操作系统处理量最少的样本,您可能需要音频队列 API;见Audio Queue Services Programming Guide

      AVAudioRecorder 专为录制到文件而设计,而 AudioUnit 更适合“可插拔”音频处理(在 Mac 方面,AU Lab 实际上非常酷)。

      【讨论】:

        猜你喜欢
        • 2011-08-09
        • 2023-01-31
        • 2010-09-20
        • 1970-01-01
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-25
        相关资源
        最近更新 更多