跳到主要内容

3A 音频处理

软 3A 音频处理

自 5.6.19 版本开始,RTCLib 提供内置针对麦克风采集音频的软 3A 处理方案,以优化部分场景下的音频采集质量。

目前该软 3A 方案仅对 createMicrophoneAndCameraTrackscreateMicrophoneAudioTrack 两个接口获取到的 RCLocalAudioTrack 数据可用。

代码示例

const { code, track } = await rtcClient.createMicrophoneAudioTrack();

if (code !== RCRTCCode.SUCCESS) {
console.error(`麦克风音频获取失败 -> ${code}`);
return;
}

// 对采集的音频应用软 3A 处理
const res = await (track as RCMicphoneAudioTrack).apply3ANoiseWorklet();
if (res.code !== RCRTCCode.SUCCESS) {
console.warn(`软 3A 处理失败 -> ${res.code}`);
}

// 发布资源
// ...

// 需要注意:3A 处理需要在资源发布之前进行,否则无法生效

WASM 模块

软 3A 处理依赖内置的 WASM 模块进行,该模块会在业务层调用 apply3ANoiseWorklet 函数时从远程 CDN 服务下载;

建议开发者将以上两个文件下载至自己的工程内,并与您的其他资源一同管理,避免在某些特殊情况下远程资源加载失败造成异常。

将资源下载到本地后,在 RTCLib 初始化时,可通过配置将地址传入 SDK 内部,以替换默认下载地址;

// 初始化 RTCLib 时配置
{
// 3A 配置
AAAWorklet: {
wasmUrl: './xxxxx/AudioProcessing.wasm',
scriptUrl: './xxxxx/process-worklet.js'
}
})