日常音視訊開會中我們或多或少會遭遇這些場景:“喂喂喂,可以聽到我說話嗎?我聽你的聲音斷斷續續的”,“咦,我怎麼可以聽到回聲?”,“太吵啦,我聽不清楚你在說啥” 等等。這些語音質量問題影響音視訊開會體驗,如若是重要的會議,那足夠讓人 “惱羞成怒”。那麼如何有效的減少這些問題發生呢?本系列文章就將為大家分享阿里雲視訊雲在保障 RTC 語音質量方面的測試經驗。

作者|柯淮

審校|泰一

背景介紹

音訊質量是指正常網路下的聽覺質量音訊 3A 演算法質量。聽覺質量,是在無損網路情況下人耳對語音優劣的主觀感受。但在實際生活中,不同人對同一聲音可能會有不同的優劣判斷,另外還會受到收聽環境和收聽心理影響。在測試時,我們可以從聲音三要素:響度、音高、音色緯度出發,對一些指標進行量化評估。另外業內標準還會將這些量化指標通過一定的加權處理以期望擬合主觀感受,比如 POLQA、PESQ 等。

音訊 3A 演算法是指:

AGC: Automatic gain control(自動增益控制)

ANS: Adaptive noise suppression(噪聲抑制)

AEC: Acoustic echo cancellation(回聲消除)

這部分內容公眾號中已有較多文章較詳細介紹原理及實現,這裡不再贅述。

往期文章

詳解 WebRTC 高音質低延時的背後 — AGC(自動增益控制)

硬貨專欄 |深入淺出 WebRTC AEC(聲學回聲消除)

本系列文章將從音訊質量、適配測試、Qos 質量、自動化方案四個維度去介紹阿里雲視訊雲如何保障 RTC 語音質量,本文先介紹音訊質量部分(正常網路下的聽覺質量和音訊 3A 演算法質量)。

RTC 語音測試鏈路拆解

在正式測試前,我們先了解 RTC 語音傳輸的整個鏈路框架圖,聲音通過麥克風採集,而後上行音訊演算法進行前處理,編解碼傳輸後通過揚聲器播放出來。若想測試上行音訊演算法可在(1)處輸入聲音,而後在(2)處拉取輸出音訊進行分析。系統測試時,我們往往從端到端角度評估,即從(1)處輸入聲音而後在(4)拉取聲音進行分析,本文後續測試方法均基於端到端。

音訊質量測試方案

阿里雲視訊雲採用業內常用的客觀指標+主觀評價相結合的方法來保障音訊質量,具體指標請參考下圖:

客觀測試方法

有效頻寬

Line in 輸入掃頻檔案 +48K 取樣率的人聲音訊(音訊素材參考如下),Line out 錄製輸出音訊,通過頻率分析讀取有效頻寬;

端到端延遲

方法一:使用 VQT 測試,測試結果中輸出延遲時間。

方法二:自研。Line in 測試素材,Line out 錄製未經過傳輸及輸出音訊,計算音訊延遲時間。

  • 測試素材:一段連續的單音。
  • 指標計算:錄製檔案中讀取未經過傳輸的音訊起始時間記為 t1,讀取經過會議傳輸的音訊起始時間記為 t2,則 Delay=t2-t1。

ANS

考察 ANS 演算法在純噪聲和語噪混合場景下的表現,分析指標包含:降噪一致性、信噪比提升、收斂時間、消噪後人聲音質。

測試拓撲

通過音量 Line in 或者外放輸入背景素材及語音素材,在拉流端 Line out 錄製輸出音訊進行指標分析。

測試素材

指標計算
  1. 信噪比提升:求取經過消噪後音訊的信噪比為 A,則信噪比提升值 =A- 輸入信噪比。

  2. 降噪一致性:計算各種噪聲輸入後噪聲的殘留值,並統計各種噪聲下噪聲殘留是否一致。

  3. 收斂時間:記錄噪聲能量開始下降的時間為 t1,記錄噪聲已收斂至平穩的初始時間 t2,收斂時間 =t2-t1。

  4. 音質:改造 VQT POLQA 測試指令碼,計算不同信噪比輸入下輸出音訊 MOS 分。下表展示輸入信噪比為 10dB 帶噪人聲,輸出音訊音質 MOS 分:

AGC

考察AGC演算法在不同音量下表現,分析指標包括:聲音平穩性、輸出響度。

測試拓撲

參考 ANS 測試拓撲圖,通過音量 Line in 或者外放輸入語音素材,在拉流端 Line out 錄製輸出音訊進行指標分析。

測試素材

指標計算
  1. 聲音平穩性:計算輸出音訊各音量段的平均 RMS,而後求解這個輸出音訊的平均 RMS 的方差。如下是平均 RMS 的計算公式:

  1. 輸出響度:Line out 方式計算輸出音訊的平均 RMS;外放方式使用標準聲壓計,以 A 計權方式記錄響度值。

  2. 音質:改造 VQT POLQA 測試指令碼,計算不同音量輸入下輸出音訊 MOS 分。下表展示大中小音量輸入下,輸出音訊音質 MOS 分:

AEC

考察 AEC 演算法單講和雙講場景下是否存在漏回聲、人聲抑制等問題。

測試拓撲

【單講】

推流端播放單講語音素材,拉流端預設配置放在空曠會議室中。Line out 錄製推流端的輸出,判斷拉流端是否存在漏回聲。

【雙講】

同時向推流端和拉流端播放雙講測試素材,Line out 錄製推流端的輸出,判斷拉流端是否存在漏回聲和人聲抑制。

同時向推流端和拉流端播放雙講測試素材,Line out 錄製推流端的輸出,判斷拉流端是否存在漏回聲和人聲抑制。

測試素材

指標計算
  1. 漏回聲:讀取錄製音訊檔案的人聲殘留量,理論上該處值為 0- 沒有漏回聲。

  2. 人聲抑制:雙講場景下評估此指標。利用 3gpp TS 26.132 標準評價剪下情況,最終評價以 D 類(連續剪下大於 150ms)為標準,值越接近於 0 質量越好。

  3. 收斂時間:測試開始時間記為 t1,AEC 收斂完成無漏回聲出現時間記為 t2,收斂時間 =t2-t1。

  4. 人聲音質:雙講場景下評估此指標。改造 VQT POLQA 測試指令碼,計算雙講場景下人聲的音質得分。

STOI

短時客觀可懂度,當前學術上比較精確,可靠的客觀評估方法來計算語音可懂度,客觀測試結果可以一定程度上反映語音可懂性和自然性。存在侷限性:需降取樣到 16K 進行計算。

  • 測試拓撲:參考 ANS 測試拓撲。
  • 測試素材:ITU-P863 提供標準人聲素材。
  • 指標計算:如下框架圖展示了 STOI 計算流程,當前業內已有 matlab 和 python 對該演算法的工程實現。

POLQA

ITU-T P.863 提供測試方法,可得到 MOS 分和音訊延遲。支援 8K、16K、48K 測試,侷限性是裝置貴。

  • 測試拓撲:參考 ANS 測試拓撲。
  • 測試素材:ITU-P863 提供標準人聲素材 &VQT 內建語音測試素材。
  • 指標計算:POLQA MOS 分。

PESQ

ITU-T P.862 提供測試方法,可得到 MOS 分,侷限性是僅可支援 8K 和 16K。

  • 測試拓撲:參考 ANS 測試拓撲。
  • 測試方法:測試素材:ITU-P863 提供標準人聲素材。
  • 指標計算:PESQ MOS 分

主觀測試方法

採用 “YD/T 2309 音訊質量主觀測試方法(ITU-R BS.1284)” 中提及的評分規則和維度,在不同場景下為專家和普通使用者進行打分測試。

評分方法

評價維度

測試場景

測試素材採用“惠威試音碟”和“TUT-acoustic-scenes-2017-development”。

本文為 RTC 音訊測試系列的第一篇,後續我們將從適配測試、Qos 質量、自動化方案的維度去介紹阿里雲視訊雲如何保障 RTC 語音質量,歡迎關注公眾號「視訊雲技術」。

「視訊雲技術」你最值得關注的音視訊技術公眾號,每週推送來自阿里雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。公眾號後臺回覆【技術】可加入阿里雲視訊雲產品技術交流群,和業內大咖一起探討音視訊技術,獲取更多行業最新資訊。