3A 音频处理
软 3A 音频处理
自 5.6.19 版本开始,RTCLib 提供内置针对麦克风采集音频的软 3A 处理方案,以优化部分场景下的音频采集质量。
目前该软 3A 方案仅对 createMicrophoneAndCameraTracks
与 createMicrophoneAudioTrack
两个接口获取到的 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 服务下载;
- WASM_URL: https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/AudioProcessing.wasm
- SCRIPT_URL: https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/process-worklet.js
建议开发者将以上两个文件下载至自己的工程内,并与您的其他资源一同管理,避免在某些特殊情况下远程资源加载失败造成异常。
将资源下载到本地后,在 RTCLib 初始化时,可通过配置将地址传入 SDK 内部,以替换默认下载地址;
// 初始化 RTCLib 时配置
{
// 3A 配置
AAAWorklet: {
wasmUrl: './xxxxx/AudioProcessing.wasm',
scriptUrl: './xxxxx/process-worklet.js'
}
})