音频输入SNR处理



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

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

我尝试过使用AVFoundation和Accelerate框架,但这对我来说一直不起作用。在我跳下兔子来调试它之前。我想知道这是不是最好的方法,或者我应该看看AVAudioEngine或the Amazing Audio Engine。

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

提前感谢您将音频角落推向正确的方向。

首先,CoreAudio并非微不足道,但不需要高级工具来捕获输入信号并进行测量。类型为的单个音频组件实例

AudioComponentDescription audioCompDesc;
audioCompDesc.componentType = kAudioUnitType_Output;
audioCompDesc.componentSubType = kAudioUnitSubType_HALOutput;
audioCompDesc.componentManufacturer = kAudioUnitManufacturer_Apple;
audioCompDesc.componentFlags = 0;
audioCompDesc.componentFlagsMask = 0;

会为你做这项工作。

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

做一些个人研究,如果你遇到了一个特定的、与编程相关的问题,就发回去。

最新更新