我想从Mac的线路输入或内置麦克风中提取PCM样本流并进行一些实时分析(确切的性质与此问题无关,但它可能经常是一个FFT,或者一些关于样本水平的基本统计数据,或者你有什么).
什么是合适的?编写一个只传递声音的AudioUnit并顺便将其移到某处进行分析?编写一个支持JACK的应用程序,并弄清楚如何让它与JACK服务器一起玩?Ecasound?
这是一个俗气的概念验证爱好项目,因此API的简单性是驱动因素(其次是合理选择编程语言).
Mac OS X中音频开发的主要框架是Core Audio; 它是所有音频I/O的基础.它上面有层,如音频工具箱,音频队列服务,QuickTime和QTKit,如果您想要一个简化的API用于常见任务,您可以使用它们.
要只提取样本流,您可能想要使用音频队列服务 ; 该AudioQueueNewInput
功能将设置PCM数据的记录并将其传递给您提供的回调.
在Mac上有一组Core Audio示例,/Developer/Examples/CoreAudio/SimpleSDK
其中包括Audio Queue Services录制API的使用(AudioQueueTools中的AQRecord).
我认为portaudio就是你所需要的.从控制台应用程序中读取麦克风是一个10行C文件(请参阅portaudio distrib中的专利).