音频 3A 处理
2025-03-05
功能简介
在实时音视频通话时,可以对音频进行 3A 处理,主要包括 AEC(Acoustic Echo Cancelling,回声消除),AGC(Automatic Gain Control,自动增益控制)和 ANS(Active Noise Control,降噪),以提高通话质量和用户体验。
- AEC(回声消除):对采集到的音频数据进行过滤以减少音频中的回声。
- AGC(自动增益控制):开启该功能后,SDK 能够自动调节麦克风音量,适应远近拾音,保持音量稳定。
- ANS(降噪):识别声音中的背景噪声并进行消除,开启该功能后可以使人声更加清晰。
示例源码下载
请参考 下载示例源码 获取源码。
相关源码请查看 “src/Examples/AdvancedAudioProcessing/AEC_ANS_AGC” 目录下的文件。
默认配置与推荐配置
SDK 中音频 3A 处理的默认配置和推荐配置如下:
参数名称 | 参数描述 | 默认配置 | 推荐配置 |
---|---|---|---|
AEC | 开/关回声消除。 | 未调用此参数前,SDK 内部会自动判断是否需要使用 AEC,一旦调用此参数,则 SDK 不再自动判断。 | 在一般使用场景中,建议不修改该配置,保持默认即可。 |
AGC | 开/关自动增益控制。 | 未调用此参数前,SDK 内部会自动判断是否需要使用 AGC,一旦调用此参数,则 SDK 不再自动判断。 |
|
ANS | 开/关噪声抑制。 | 未调用此参数前,SDK 内部会自动判断是否需要使用 ANS,一旦调用此参数,则 SDK 不再自动判断。 | 在一般使用场景中,建议不修改该配置,保持默认即可。 |
前提条件
在使用音频 3A 处理之前,请确保:
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 Server 地址,详情请参考 控制台 - 项目信息。
- 已在项目中集成 ZEGO Express SDK,并实现了基本的音视频推拉流功能,详情请参考 快速开始 - 集成 和 快速开始 - 实现流程。
使用步骤
调用 createZegoStream 接口,创建 ZegoLocalStream 实例对象 localStream,通过 camera 视频数据采集方式配置 3A 开关。
当通过摄像头和麦克风采集源数据时,使用 ZegoCaptureMicrophone 对象中的 “ANS”、 “AGC”、 “AEC” 参数,分别设置降噪、自动增益、和回声消除开关。“true” 表示开启,“false” 表示关闭。
注意
- 创建流时只能选择 “camera”、“screen”、“custom” 中的一种配置模式。
- 默认情况下,SDK 会根据浏览器的默认能力,判断是否开启 “ANS”、“AGC”、“AEC” 处理。如无特殊情况,建议开发者保持默认配置。
const zg = new ZegoExpressEngine(appID, server);
// 以下配置为关闭了 3A,若无特殊情况建议开发者保持默认配置
option = {
camera: {
video: true
audio: {
ANS: false,
AGC: false,
AEC: false
}
}
}
const localStream = await zg.createZegoStream(option)
注意
若是在创建流后,推流中,需要配置 3A 处理,可以使用 setAudioConfig 进行修改。