AEC(回声消除支持)在OSX使用AudioQueue(AEC ( Echo Cancellatio

2019-07-21 20:15发布

我正在开发的OSX和iOS VoIP应用和将要使用AudioQueue的音频流,有什么想知道的是,在默认情况下不支持AudioQueue声学回声消除还是我们需要添加对它的支持,
如果我们需要实现,我相信一些开源库必须要像Speex的实现是否有任何可用的实例显示集成AudioQueue与Speex语音或任何其他库

Answer 1:

至于我能找到,你必须使用音频单元访问系统的回声消除。 你这样做,通过使用kAudioUnitSubType_VoiceProcessingIO代替kAudioUnitSubType_RemoteIO

你可能仍要使用音频单元,以控制您的等待时间。

您可以使用呈现回调函数从音频队列中获取数据,并把它传递给你的I / O单元。 对于传出,使用AudioUnitRender



Answer 2:

由于大卫和这个职位 ,我已经意识到所需的回音消除iOS上的以下变化:

desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO

这将根据启用硬件回声抑制苹果的文档 。 但是,你仍然需要使用语音串流描述特定的标志:

audioFormat.mFormatFlags = kAudioFormatFlagsCanonical;


文章来源: AEC ( Echo Cancellation Support ) in OSX Using AudioQueue