我想从 Mac 的线路输入或内置麦克风中提取 PCM 样本流,并进行一些实时分析(确切的性质与这个问题无关,但它可能经常是 FFT,或者一些关于样本水平的基本统计数据,或者你有什么)。

什么适合这个?编写一个仅传递声音并顺便将其传递到某处进行分析的 AudioUnit?编写一个支持 JACK 的应用程序并弄清楚如何让它与 JACK 服务器一起使用?易卡声?

这是一个俗气的概念验证爱好项目,因此 API 的简单性是驱动因素(其次是编程语言的合理选择)。

有帮助吗?

解决方案

我认为 波音频 就是你所需要的。从控制台应用程序的麦克风读取的是一个 10 行 C 文件(请参阅 portaudio distrib 中的 patests)。

其他提示

Mac OS X 中音频开发的主要框架是 Core Audio;它是所有音频 I/O 的基础。如果您需要简化的 API 来执行常见任务,则可以在其之上使用音频工具箱、音频队列服务、QuickTime 和 QTKit 等层。

要提取样本流,您可能需要使用 音频队列服务;这 AudioQueueNewInput 函数将设置 PCM 数据的记录并将其传递给您提供的回调。

在您的 Mac 上有一组 Core Audio 示例 /Developer/Examples/CoreAudio/SimpleSDK 其中包括音频队列服务录制 API 的使用(AudioQueueTools 中的 AQRecord)。

Apple 提供了示例代码 读写音频数据. 。此外,还有很多很好的信息 Apple 开发者网站的音频部分.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top