智能降噪

本文介绍DingRTC自研的音频降噪以及如何集成和使用。

简介

钉钉会议致力于提供高质量,高清晰度的语音体验,这其中就包括提供全带语音,即能够覆盖人声通信的整个频率范围(一般在20Hz到20kHz之间),语音信号的采样率则需要使用44.1kHz或48kHz,这也给全带语音的智能降噪带来不小挑战,比如相比于宽带16kHz采样率,全带采样率提高了3倍,这对于资源开销控制以及降噪效果把控都提出了更高的要求。

钉钉会议自主研发的智能降噪技术,从一开始就确定在全带降噪领域深耕,同时兼容超宽带(32kHz,24kHz),宽带(16kHz),和窄带(8kHz)处理,并做到低延迟,低功耗特性,使得实时性高要求的音视频会议便于在端侧快速部署。

为覆盖不同场景下钉钉音视频使用场景,对智能降噪模型的泛化性提出了更高的要求,不仅需要处理各式各样的噪音类型,如会议室的风扇,鼠标键盘声,街道边的车流声,公共场所如地铁声,飞机声等近300种,而且需要兼容说话人不同距离说话的需求,让远场语音听起来也像是在近距离说话相类似的听感。我们通过创新性地在一个网络模型上同时实现去噪和去混响两个功能,智能降噪技术的泛化性得到了极大的提升,从而避免部署多个算法模型导致的延迟累积,功耗累积,效果误差累积,达到更高质量的语音输出。

我们自研的智能降噪技术不仅支持使用率较高的笔记本、移动端、SIP端,直播端场景,并同时支持远场应用场景,如音视频一体机部署在不同大小会议室,办公室或工厂,以及说话人在不同位置等场景,真正实现通用型智能降噪功能。

智能降噪技术为用户提供更清晰的语音通话体验,节约2%客户端系统处理资源。更为舒适的听觉体验,可以为用户减少长时间在嘈杂环境中通信带来的疲劳感,增强用户使用满意度,并可扩大使用场景,无论用户身处咖啡厅、机场、家中或其他嘈杂环境,智能降噪都能保证通话质量。

在需要将通信内容转换为文字记录时,降低的背景噪声有助于提高语音识别的准确度,从而提供更为准确的转写记录。

集成方法

智能降噪和DingRTC动态库分开发行,对于需要使用降噪的场景,可以选择下载和集成降噪动态库。智能降噪的模型库文件,除了windows平台,都已经包含在降噪动态库里,使得集成更加容易。

[Winodws]

智能降噪库名:hbal_se.dll

存放路径:打包发布app时和DingRTC.dll放在同一个目录

模型文件:hbal_se_v1.0.15.nn

存放路径:打包发布app时和DingRTC.dll放在同一个目录

调用方法:

在app代码里,调用

void enable_ai_denoise()
{
  ding::rtc::RtcEngineAudioDenoiseOptions options;
  options.mode = 
    ding::rtc::RtcEngineAudioDenoiseMode::RtcEngineAudioDenoiseEnhance;
  engine->SetAudioDenoise(options);
}

关闭降噪,方法类似,options.mode用RtcEngineAudioDenoiseOff替换即可关闭。

另外,传统降噪,用options.mode = RtcEngineAudioDenoiseDsp。

[Mac]

智能降噪库名:libhbal_se.dylib

存放路径:打包发布app时作为依赖库添加到XCode工程中

20241107110118.jpg

模型文件:hbal_se_v1.0.15.nn

存放路径:打包发布app时作为资源文件添加到XCode工程中

20241107110240.jpg

调用方法:

在app代码里,调用

DingRtcAudioDenoiseOptions *options = [[DingRtcAudioDenoiseOptions alloc] init];
options.mode = DingRtcAudioDenoiseEnhance;
[rtcEngine setAudioDenoise:options];

关闭降噪,方法类似,options.mode用DingRtcAudioDenoiseOff替换即可关闭。

另外,传统降噪,用options.mode = DingRtcAudioDenoiseDsp。

[iOS]

智能降噪库名:DTHbalSe.framework

存放路径:打包发布app时作为依赖库添加到XCode工程中

20241107111200.jpg

调用方法:

在app代码里,调用

DingRtcAudioDenoiseOptions *options = [[DingRtcAudioDenoiseOptions alloc] init];
options.mode = DingRtcAudioDenoiseEnhance;
[rtcEngine setAudioDenoise:options];

关闭降噪,方法类似,options.mode用DingRtcAudioDenoiseOff替换即可关闭。

另外,传统降噪,用options.mode = DingRtcAudioDenoiseDsp。

[Android]

智能降噪库名:libhbal_se.so

存放路径:打包时将libhbal_se.so文件放在jniLibs.srcDirs所引用的目录下即可。

调用方法:

在app代码里,调用

DingRtcEngine.DingRtcEngineAudioDenoiseOptions options = new DingRtcEngine.DingRtcEngineAudioDenoiseOptions();
options.mode = DingRtcEngine.DingRtcEngineAudioDenoiseMode.DingRtcEngineAudioDenoiseEnhance;
rtcEngine.setAudioDenoise(options);

关闭降噪,方法类似,options.mode用DingRtcEngineAudioDenoiseOff替换即可关闭。

另外,传统降噪,用options.mode = DingRtcEngineAudioDenoiseDsp。