在Mac上使用简单的音频输入API?

时间:2020-03-05 18:45:51  来源:igfitidea点击:

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

什么适合这个呢?编写一个AudioUnit,它只是将声音传递并偶然将其传递到某个地方进行分析?编写可识别Hyman的应用程序,并弄清楚如何使其能够与Hyman服务器一起玩?逃避?

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

解决方案

回答

Apple提供了用于读取和写入音频数据的示例代码。此外,Apple Developer网站的"音频"部分提供了很多有用的信息。

回答

我认为portaudio是我们所需要的。
从控制台应用程序从麦克风读取的内容为10行C文件(请参阅portaudio distrib中的patests)。

回答

Mac OS X中音频开发的主要框架是Core Audio。它是所有音频I / O的基础。如果需要简化的API来执行常见任务,则可以使用诸如Audio Toolbox,Audio Queue Services,QuickTime和QTKit之类的顶层。

要仅提取样本流,我们可能需要使用Audio Queue Services。 " AudioQueueNewInput"函数将设置PCM数据的记录并将其传递给我们提供的回调。

在Mac上,/ Developer / Examples / CoreAudio / SimpleSDK中有一组Core Audio示例,其中包括Audio Queue Services记录API的用法(AudioQueueTools中的AQRecord)。