音频输入SNR处理

时间:2016-05-17 18:54:44

标签: macos audio core-audio

我是音频处理的新手,我正在尝试做我认为相当简单的任务。我错了,所以我正在寻找一个方向。

这是一款OS X桌面应用。正在播放音调时,我正在播放单频音(1kHz)我想使用所选输入来收听音调,然后根据该输入计算信噪比。

我曾尝试使用AVFoundation和Accelerate框架,但这对我来说并不适用。在我跳下那只兔子之前调试它。我想知道这是最好的方法还是应该关注AVAudioEngine或The Amazing Audio Engine。

当然,如果有任何SNR音频处理的例子我可以看一下也会有所帮助。

提前感谢您将音频菜鸟推向正确的方向。

1 个答案:

答案 0 :(得分:1)

首先,CoreAudio并非易事,但不需要高级工具来捕获输入信号并进行测量。类型为:

的单个音频组件实例
AudioComponentDescription audioCompDesc;
audioCompDesc.componentType = kAudioUnitType_Output;
audioCompDesc.componentSubType = kAudioUnitSubType_HALOutput;
audioCompDesc.componentManufacturer = kAudioUnitManufacturer_Apple;
audioCompDesc.componentFlags = 0;
audioCompDesc.componentFlagsMask = 0;

会帮你完成这份工作。

您必须只知道如何正确初始化它并处理回调。确保启用输入,禁用音频组件实例上的输出。您可以设置并使用输入回调来捕获和测量信号和噪声级别 详细说明这样做将远远超出本网站的答案和目的范围,这是不是教程网站。 幸运的是,你有很多例子可以在网上学习。有一个'离不开' CoreAudio tutorial book,您可以从不太远的地方学习代码。请务必阅读AudioUnit和AudioToolbox API上的Apple文档。

进行一些个别研究,如果遇到特定的编程相关问题,请回复。