在实时对话式 AI 场景中背景噪音(例如空调声、突发的旁人说话声)可能会影响语音识别的准确率,导致错误的打断或识别结果。你可以通过调整音量增益、开启 AI 降噪或声纹降噪,在嘈杂环境下提升语音交互体验。
| 降噪方式 | 适用场景 |
|---|---|
| 调整音量增益 | 基础音量控制,抑制轻微噪声,适用于相对安静环境下的基础优化。 |
| AI 降噪 | 滤除环境噪声,如空调、风扇、键盘声。 |
| 声纹降噪 | 精准分离目标人声,抑制旁人说话声,适用于多人交谈的嘈杂环境,如办公室、公共场所。 |
通过调整发送到服务端的音频音量大小来影响信噪比。增益值越低,采集音量越低,有助于滤除部分环境噪音。适用于用户环境相对安静,只有轻微、不明显的背景噪音。
配置方法:
调用 StartVoiceChat 接口时,设置 ASRConfig.VolumeGain。
注意:过度降低
VolumeGain可能会导致用户的正常语音音量过小,反而影响识别。
"ASRConfig": { "VolumeGain": 0.3 // 推荐值,默认值为 1.0 }
当环境噪声较为明显时(如空调、风扇、键盘声),推荐使用 AI 降噪。支持通过服务端或客户端实现。
注意
服务端和客户端不建议同时开启 AI 降噪,以避免过度处理可能带来的音质损伤。
在服务端对音频进行智能降噪处理,适用于不具备或不便开启端上 AI 降噪能力的终端(例如:物联网、智能硬件设备)。
在调用 StartVoiceChat 接口时,设置 AgentConfig.AnsMode。
"AgentConfig": { "AnsMode": 2 // 根据噪声类型选择模式 }
模式选择
1:轻度降噪。适用于有微弱、平稳噪声的环境。2:中度降噪。适用于最常见的持续性噪声,如空调、风扇声。3:重度降噪。适用于有嘈杂、非平稳噪声的环境,如键盘敲击声、物体碰撞声。直接使用 ByteRTC SDK 的客户端降噪 API。降噪算法受调用 joinRoom 时设置的房间模式影响。详细说明参见:
通过声纹降噪,可识别特定用户的声纹,只保留该用户的声音,从而有效过滤掉环境中的其他人声(旁人噪音),从而提升在多人环境下(比如办公室、咖啡馆等)的语音识别准确率。支持离线声纹和实时注册声纹两种模式。
注意
使用预先为用户注册好的声纹 ID 进行降噪。适用于用户身份固定,且对降噪精度和身份识别要求极高的场景。
实现方法:
调用接口 RegisterVoicePrint 为目标用户注册声纹(对应字段 VoicePrintId)。
注意:注册声纹使用的音频,其采集设备需要和客户真实通话时使用的音频采集设备保持一致,以保证最佳效果。
调用 StartVoiceChat 接口时,配置 AgentConfig.VoicePrint。将 Mode 设置为 1,并传入 IdList 字段,并可选择开启说话人验证 EnableSV,以进一步防止非目标用户误触发。
"VoicePrint": { "Mode": 1, // 开启声纹降噪 "IdList": ["vp_id_123"], // 传入已注册的声纹 ID "EnableSV": true // 开启说话人验证 }
无需用户提前注册。系统会在通话中动态学习用户的声音特征。适用于用户不固定或首次体验的场景,方便快捷。
实现方法:
调用 StartVoiceChat 接口时,配置 AgentConfig.VoicePrint。将 Mode 设置为 1,不传入 IdList 字段。
"VoicePrint": { "Mode": 1 // 开启声纹降噪 // "IdList" 无需传入 }
等待声纹生成。
用户在通话过程中的累计说话时长需要达到 30 秒,声纹才能成功生成并开始生效。在此之前,声纹降噪功能不会起作用。请确保在安静的环境中完成声纹的初始学习。