在实时音视频通话中,你可能会遇到噪声干扰,影响通话质量。你可以根据噪声的类型,选择不同的降噪方案。
在开始采集和发布音频前,调用 setAudioCaptureConfig
并将 noiseSuppression
,echoCancellation
,和 autoGainControl
均设置为 true
。
以上选项的完整说明参见
MediaTrackConstraints
。
// 必须在 startAudioCapture() 和 publishStream() 之前设置
await engine.setAudioCaptureConfig({
noiseSuppression: true,
echoCancellation: true,
autoGainControl:true,
});
await engine.startAudioCapture();
await engine.publishStream(MediaType.AUDIO);
已集成 RTC SDK V4.47 或更高版本。
通过 RTC SDK 提供的音频采集模块实现了音频通话功能。
AI 降噪插件支持如下 PC 端浏览器:
Chrome 94+
Edge 94+
为了更好的使用体验,建议设备满足以下要求:
双核 Intel Core i5+
RAM 8 GB+
64 位操作系统
在你的项目中引入 AI 降噪插件,通过以下任一方式:
说明
注意:确保插件来自本地工程中已引入的 RTC SDK。避免因插件版本不匹配导致的引用错误。
import RTCAIAnsExtension from '@volcengine/rtc/extension-ainr';
const {RTCAinrExtension} = window.VERTCExtensions;
注册 AI 降噪插件。
import VERTC from '@volcengine/rtc';
// 直接引入
import {EventTypes as AIAnsEventTypes} from '@volcengine/rtc/extension-ainr';
// 创建引擎实例
const engine = VERTC.createEngine('appid');
// 创建 AI 降噪插件实例
const AIAnsExtension = new RTCAIAnsExtension();
// 注册 AI 降噪插件
try {
await engine.registerExtension(AIAnsExtension);
} catch (error) {
// 注册失败,详细信息见:error.message
}
AIAnsExtension.on(AIAnsEventTypes.onUnsupported, ({message}) => {
// 降噪插件运行时遇到不支持情况,详细信息见:message
})
engine.startAudioCapture();
自 V4.65.0 版本起,你可以为指定音频流开启 AI 降噪功能。
// 为外部屏幕流开启降噪
AIAnsExtension.enable({
streamIndex: StreamIndex.STREAM_INDEX_SCREEN,
sourceType: AudioSourceType.AUDIO_SOURCE_TYPE_EXTERNAL,
});
// 对内部主流关闭降噪
AIAnsExtension.disable({
streamIndex: StreamIndex.STREAM_INDEX_MAIN,
sourceType: AudioSourceType.AUDIO_SOURCE_TYPE_INTERNAL,
});
不指定音频流时,默认为内部主流。使用 V4.65.0 之前的版本,默认对内部主流开启降噪。
// 开启降噪
AIAnsExtension.enable();
// 关闭降噪
AIAnsExtension.disable();
// 自动模式
AIAnsExtension.setAnsMode(AnsMode.AUTO);
降噪模式说明如下:
模式 | 取值 | 说明 |
---|---|---|
LOW | 'low' | 适用于微弱平稳噪声。 |
MEDIUM | 'medium' | 适用于抑制中度平稳噪声,如空调声、风扇声。。 |
HIGH | 'high' | 适用于抑制嘈杂非平稳噪声,如键盘声、敲击声、碰撞声、动物叫声。 |
AUTO | 'auto' | 启用音频降噪能力。具体的降噪算法由 AI 降噪插件决定。 |
MediaTrackConstraints
设置的传统降噪参数生效情况如下:插件状态 | autoGainControl | echoCancellation | noiseSuppression |
---|---|---|---|
插件已注册未开启 | 有效 | 有效 | 固定为 true |
插件已注册已开启 | 固定为 true | 有效 | 固定为 false |
const AIAnsExtension = new RTCAIAnsExtension({
resample: false,
});