本文介紹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工程中
模型文件:hbal_se_v1.0.15.nn
存放路徑:打包發布app時作為資源文件添加到XCode工程中
調用方法:
在app代碼里,調用
DingRtcAudioDenoiseOptions *options = [[DingRtcAudioDenoiseOptions alloc] init];
options.mode = DingRtcAudioDenoiseEnhance;
[rtcEngine setAudioDenoise:options];
關閉降噪,方法類似,options.mode用DingRtcAudioDenoiseOff替換即可關閉。
另外,傳統降噪,用options.mode = DingRtcAudioDenoiseDsp。
[iOS]
智能降噪庫名:DTHbalSe.framework
存放路徑:打包發布app時作為依賴庫添加到XCode工程中
調用方法:
在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。