1 背景介紹
VoIP(Voice over IP)即IP電話, 是將話音編碼、壓縮轉換成資料包, 在IP網路中進行傳輸的技術。 語音通信因其特有的可靠性和高QoS(Quality of Service)一直被大家廣發使用。 但現在的人們通過手機通話時已經不僅僅滿足於資訊的獲取, 而更多地關注語音品質如何, 是否能高保真地還原聲音的效果, 並表達最真實的情感。
有信以即時語音通話為核心, 經過幾年的深耕細作, 用戶總註冊量已經超1.2億, 日活躍用戶達600萬。 能夠獲得這麼多的使用者與有信電話高水準的語音通話品質密不可分, 語音品質也是有信電話與傳統電話公司競爭的一項關鍵因素。
業界各方為了提高VoIP語音品質各顯其能, 語音品質的評測方案層出不窮, 但都以主觀評測為主流。 我們在對有信VoIP網路電話做評測時, 會從抗時延、抗丟包、雜訊抑制以及音量大小等多種維度去考慮, 本文主要介紹了客觀評測語音品質的一些方法和案例。
2 測試環境搭建
2.1 測試設備
測試設備:PC +測試手機2部+音訊線2條+耳機麥克風二合一轉接線。
以上設備按照圖2-1方式連接後, 在 PC 上播放音訊, 聲音從 PC 的揚聲器通過音訊線和轉接線傳入到主叫A的麥克裡, 然後主叫A中的通話軟體採集聲音並經過網路傳到被叫B, 之後聲音從被叫B通過音訊線連接PC的麥克風傳入到PC上, 在PC上進行音訊錄製操作。 這裡需要注意的是,
圖2-1
2.2 網路環境類比
VoIP決定了對網路的強依賴性, 因此需要評定在不同網路狀態下的語音品質的各項指標。
網路丟包設置方法:可以通過設置 Periodic Loss (週期性丟包)參數實現(如設置參數為 10, 表示每 10 個包丟一個包, 即丟包率為 10%), 也可以設置Random Loss(隨機丟包)參數實現(Random Loss 中的數值若填寫0.05, 則表示隨機丟包率為5%), 一般隨機丟包更貼近真實的網路情況。
網路抖動設置方法:可以通過設置變化的延時 Linear 參數來實現, Linear 設置項表示在設置時間內 period, 延時會從設置的最小值 Min 逐漸變化到設置的最大值 Max (如設置 min 為 0,
2.3 音訊檔以及分析工具的選擇
分析音訊的軟體有很多, 本文採用Cool Edit Pro, 方便易用。 將音訊檔在Cool Edit Pro中打開, 可以看到音訊是否滿足測試條件, 例如, 在音質測試時, 要保證波形適中, 振幅分佈均勻。
由於 PESQ 演算法的特殊性, 對聲音原始檔案的選擇有一定的要求。
1. 源音效檔的長度在6s~8s之間, 過長或過短都會影響計算結果。
2. 靜音區和非靜音區的比例要適中, 儘量保正[非靜音:靜音=6:4 ]或 [非靜音:靜音=5:5 ]或[非靜音:靜音=4:6 ]。 使用 PESQ 計算 MOS 分時, 要用純淨的不帶雜訊的文件。
3. 使用 Cool Edit Pro 錄音時, 應保證輸出的波形適中, 可通過調節音訊播放音量和 PC 錄音音量來控制。
3 測試指標以及測試方法
3.1 音質(QV)
音質(Quality of Voice)是指經傳輸、處理後 音訊信號的保真度,
3.2 語音時延(DV)
語音時延(Delay of Voice), 兩個移動終端進行通話過程中, 主觀感受的時延是指輸出音訊的時間減去輸入音訊的時間, 即被叫聽到聲音的時間減去主叫發出聲音的時間。DV過大,比較容易出現回應遲緩、或者雙講的情況,非常影響通話體驗。本文中對DV的測試方法是,如 1.1 中的示意圖連接好設備後,兩台手機通過AppA進行通話,通過腳本來計算音訊輸入的時間和錄製音訊的輸出時間,這個過程相比主觀測試,排除了人耳的差異性帶來的誤差,使得測試結果更精准。通過腳本跑出的時延資料,取 50~100組延時資料算平均值即可。
3.3 雜訊抑制(NS)
大多數情況下,VoIP通信系統的輸入端不可能接受到純淨的原始語音,只能接受到被背景雜訊干擾後的含噪語音。背景雜訊極大地干擾了語音通信的品質,降低了語音的清晰度和可懂性。雜訊抑制(Noise Suppression)的主要目的在於從含噪語音中提取盡可能純淨的原始語音。但是,過度的NS可能會產生降低語音音量等級、處理後的語音中的雜訊不均勻,導致體驗差等的負面效應。
如果是分析同一個app不同版本的降噪效果,可以使用語音音量和雜訊音量的Average RMS Power差值進行比對,單位是dB,一般為正數(語音音量大於雜訊音量),差值越大,NS效果越好。但是,如果要分析不同app的NS效果,PESQ 差距大時,則認為 PESQ 低的 NS 對音質的損傷高,NS 效果差(但有雜訊的檔計算出來的PESQ的值並不準確,因此不建議使用該方法),我們要同時考慮到NS的負面影響。因此,當PESQ 差距較小時, 我們定義
d1= RMS(產品 1 的非雜訊)-RMS(產品 2 的非雜訊)
d2= RMS(產品 1 的雜訊)-RMS(產品 2 的雜訊)
如果:
d1 > d2,則產品1的NS優於產品2;
d1 = d2,則產品1、2的NS效果基本一致;
d1
3.4 音量大小(VV)
音量大小(Volume of Voice)即音訊的強度和幅度。不同的群體對音量大小的適應度存在一定的差異性。因此衡量音量的大小要從不同的維度來考量。本文中音量大小的評定是在不同播放音量條件下,播放同一個源音效檔,同時錄製輸出的音訊,分析不同檔的Average RMS Power,單位是dB,為負數,絕對值越大,音量越小。其中,不同的播放音量大小的定義為:
小音量——30%;
正常音量——50%;
大音量——70%。
4 測試結果
4.1 抗丟包性能
以5%為步長,從無丟包率逐級遞增到30%的隨機丟包率,分別評測AppA和AppB在不同丟包率條件下的語音時延和MOS分。測試結果如下:
從上圖可以看出,隨著丟包率的遞增,AppA和AppB的MOS分均沒有明顯的變化趨勢,整體的MOS分,AppA高於AppB。隨著丟包率的遞增,AppA和AppB的語音時延均表現出先增加後下降的趨勢(由於測試時網路狀態不同,導致資料結果有一定的差異性),整體的語音時延,AppA的大於AppB。
4.2 抗時延性能
以50ms為步長,從0ms的網路時延逐級遞增至400ms,分別評測AppA和AppB在不同網路時延條件下的語音時延和MOS分。測試結果如下:
從上圖可以看出,隨著網路時延的增加,AppA的MOS分整體處於輕微的下降趨勢,下降幅度不明顯,AppB整體趨勢較平穩,MOS分變化不大。在語音時延方面,隨著網路時延的增加,AppA的語音時延整體處於增加趨勢,且增加幅度較大,無網路時延時的語音時延為400.92ms,當網路時延400ms時的語音時延為489.44ms;AppB的語音時延隨著網路時延的增加變化不大。整體看,不同網路時延下,AppA的語音時延高於AppB。
4.3 通話過程中語音時延的變化情況分析
通過分析不同網路時延下的語音時延資料流程,觀察不同的網路時延條件下,從通話開始到通話結束整個過程中,不同app的語音時延變化情況。
注:上圖中橫坐標軸表示的是通話20分鐘左右的語音時延資料,每通通話取100組資料來分析。粗略估計第10組資料大概在通話5-10分鐘左右。
從上圖可以看出,網路時延較大的條件下,AppA在通話開始的幾分鐘,語音時延一直處於較高的狀態,大概通話10分鐘左右,語音時延資料逐漸趨於平穩,並可維持平穩狀態一直到通話結束,因此可以推測,AppA在通話開始時品質不是很穩定,但是隨著通話時長的增加,會逐步進入一個較好的通話品質狀態。
從AppB的資料上來看,無論網路時延增加到多少,AppB的語音時延從通話開始就一直處於一個平穩狀態,但是在通話過程中,會有偶爾的語音時延波動,可以推測,AppB的整體通話品質較平穩,但中間偶爾會有品質不佳的情況。
4.4 雜訊抑制
使用語音音量(圖4-1)和雜訊音量(圖4-2)的Average RMS Power差值進行比對,單位是dB,一般為正數(語音音量大於雜訊音量),差值越大,NS效果越好。
圖4-1 截取的200ms語音(非雜訊)部分音訊
圖4-2 截取的200ms雜訊部分音訊
在競品分析時,可用不同競品之間的非噪音差減去噪音差,若差值大於0,則可以認為雜訊抑制效果較好。
注:我們定義播放音量的級別分別為:小音量=30%,正常音量=50%,大音量=70%。
從上表可以看出,無論是小音量、正常音量還是大音量的條件下,AppA的非雜訊減去雜訊的值均大於AppB。音量越大,差值越大。用AppA的音量減去AppB的音量得到音量差,用AppA的雜訊減去AppB的雜訊得到噪音差,最後用音量差-噪音差,得出的值,見上表。在小音量、正常音量和大音量的條件下,所有的差值均大於0,可以認為AppA的雜訊抑制效果較好。
從上圖看出,同一個源音效檔(雜訊RMS均值為-32.54dB,非雜訊RMS均值為-23.87dB)通過AppA輸出的音訊,小音量時,雜訊能量減少1.21dB,非雜訊基本保持不變,正常音量時,雜訊能量減少2.18 dB,非雜訊減少3.37 dB;大音量時,雜訊減少3.97 dB,非雜訊減少6.1 dB。可以看出,對於AppA,播放音量越大,雜訊抑制過程所減弱的音量越多。
通過AppB輸出的音訊,小音量時,雜訊能量減少7.2dB,非雜訊減少5.87 dB,正常音量時,雜訊能量減少9.54 dB,非雜訊減少8.23 dB,大音量時,雜訊能量減少9.21 dB,非雜訊能量減少7.69 dB。可以看出,對於AppB,不同音量下輸出的雜訊和非雜訊能量減少相當,無明顯差別。
4.5 音量
注:源音效檔的Average RMS Power為:-18.69dB。見圖4-3.
圖4-3 輸入的源音訊檔
輸出的音效檔的音量大小如下表所示:
從上圖可以看出,不同的播放音量下,AppB的輸出音量均大於AppA。其中,小音量時,AppB比AppA大4.1dB,正常音量時,差別不大,大播放音量時,AppB比AppA大2.0dB。
從變化趨勢上可以看出,AppA的播放音量越大,輸出的音量也越大,AppB在小音量和正常音量時,輸出的音量無明顯差別,但是在大音量時,輸出的音量相應增加2.19dB。
5 小結
影響語音品質的因素是多維度的,主要包括時延、丟包、抖動,這也預示著VoIP對網路的強依賴性。語音品質的好壞是影響用戶體驗的直接因素,因此對VoIP語音品質進行客觀有效的分析和測量是十分重要的。本文介紹了利用腳本和工具分析時延、音質、音量、降噪等不同指標的客觀評測方法,並且把具體的案例結果呈現出來以供探討。
即被叫聽到聲音的時間減去主叫發出聲音的時間。DV過大,比較容易出現回應遲緩、或者雙講的情況,非常影響通話體驗。本文中對DV的測試方法是,如 1.1 中的示意圖連接好設備後,兩台手機通過AppA進行通話,通過腳本來計算音訊輸入的時間和錄製音訊的輸出時間,這個過程相比主觀測試,排除了人耳的差異性帶來的誤差,使得測試結果更精准。通過腳本跑出的時延資料,取 50~100組延時資料算平均值即可。3.3 雜訊抑制(NS)
大多數情況下,VoIP通信系統的輸入端不可能接受到純淨的原始語音,只能接受到被背景雜訊干擾後的含噪語音。背景雜訊極大地干擾了語音通信的品質,降低了語音的清晰度和可懂性。雜訊抑制(Noise Suppression)的主要目的在於從含噪語音中提取盡可能純淨的原始語音。但是,過度的NS可能會產生降低語音音量等級、處理後的語音中的雜訊不均勻,導致體驗差等的負面效應。
如果是分析同一個app不同版本的降噪效果,可以使用語音音量和雜訊音量的Average RMS Power差值進行比對,單位是dB,一般為正數(語音音量大於雜訊音量),差值越大,NS效果越好。但是,如果要分析不同app的NS效果,PESQ 差距大時,則認為 PESQ 低的 NS 對音質的損傷高,NS 效果差(但有雜訊的檔計算出來的PESQ的值並不準確,因此不建議使用該方法),我們要同時考慮到NS的負面影響。因此,當PESQ 差距較小時, 我們定義
d1= RMS(產品 1 的非雜訊)-RMS(產品 2 的非雜訊)
d2= RMS(產品 1 的雜訊)-RMS(產品 2 的雜訊)
如果:
d1 > d2,則產品1的NS優於產品2;
d1 = d2,則產品1、2的NS效果基本一致;
d1
3.4 音量大小(VV)
音量大小(Volume of Voice)即音訊的強度和幅度。不同的群體對音量大小的適應度存在一定的差異性。因此衡量音量的大小要從不同的維度來考量。本文中音量大小的評定是在不同播放音量條件下,播放同一個源音效檔,同時錄製輸出的音訊,分析不同檔的Average RMS Power,單位是dB,為負數,絕對值越大,音量越小。其中,不同的播放音量大小的定義為:
小音量——30%;
正常音量——50%;
大音量——70%。
4 測試結果
4.1 抗丟包性能
以5%為步長,從無丟包率逐級遞增到30%的隨機丟包率,分別評測AppA和AppB在不同丟包率條件下的語音時延和MOS分。測試結果如下:
從上圖可以看出,隨著丟包率的遞增,AppA和AppB的MOS分均沒有明顯的變化趨勢,整體的MOS分,AppA高於AppB。隨著丟包率的遞增,AppA和AppB的語音時延均表現出先增加後下降的趨勢(由於測試時網路狀態不同,導致資料結果有一定的差異性),整體的語音時延,AppA的大於AppB。
4.2 抗時延性能
以50ms為步長,從0ms的網路時延逐級遞增至400ms,分別評測AppA和AppB在不同網路時延條件下的語音時延和MOS分。測試結果如下:
從上圖可以看出,隨著網路時延的增加,AppA的MOS分整體處於輕微的下降趨勢,下降幅度不明顯,AppB整體趨勢較平穩,MOS分變化不大。在語音時延方面,隨著網路時延的增加,AppA的語音時延整體處於增加趨勢,且增加幅度較大,無網路時延時的語音時延為400.92ms,當網路時延400ms時的語音時延為489.44ms;AppB的語音時延隨著網路時延的增加變化不大。整體看,不同網路時延下,AppA的語音時延高於AppB。
4.3 通話過程中語音時延的變化情況分析
通過分析不同網路時延下的語音時延資料流程,觀察不同的網路時延條件下,從通話開始到通話結束整個過程中,不同app的語音時延變化情況。
注:上圖中橫坐標軸表示的是通話20分鐘左右的語音時延資料,每通通話取100組資料來分析。粗略估計第10組資料大概在通話5-10分鐘左右。
從上圖可以看出,網路時延較大的條件下,AppA在通話開始的幾分鐘,語音時延一直處於較高的狀態,大概通話10分鐘左右,語音時延資料逐漸趨於平穩,並可維持平穩狀態一直到通話結束,因此可以推測,AppA在通話開始時品質不是很穩定,但是隨著通話時長的增加,會逐步進入一個較好的通話品質狀態。
從AppB的資料上來看,無論網路時延增加到多少,AppB的語音時延從通話開始就一直處於一個平穩狀態,但是在通話過程中,會有偶爾的語音時延波動,可以推測,AppB的整體通話品質較平穩,但中間偶爾會有品質不佳的情況。
4.4 雜訊抑制
使用語音音量(圖4-1)和雜訊音量(圖4-2)的Average RMS Power差值進行比對,單位是dB,一般為正數(語音音量大於雜訊音量),差值越大,NS效果越好。
圖4-1 截取的200ms語音(非雜訊)部分音訊
圖4-2 截取的200ms雜訊部分音訊
在競品分析時,可用不同競品之間的非噪音差減去噪音差,若差值大於0,則可以認為雜訊抑制效果較好。
注:我們定義播放音量的級別分別為:小音量=30%,正常音量=50%,大音量=70%。
從上表可以看出,無論是小音量、正常音量還是大音量的條件下,AppA的非雜訊減去雜訊的值均大於AppB。音量越大,差值越大。用AppA的音量減去AppB的音量得到音量差,用AppA的雜訊減去AppB的雜訊得到噪音差,最後用音量差-噪音差,得出的值,見上表。在小音量、正常音量和大音量的條件下,所有的差值均大於0,可以認為AppA的雜訊抑制效果較好。
從上圖看出,同一個源音效檔(雜訊RMS均值為-32.54dB,非雜訊RMS均值為-23.87dB)通過AppA輸出的音訊,小音量時,雜訊能量減少1.21dB,非雜訊基本保持不變,正常音量時,雜訊能量減少2.18 dB,非雜訊減少3.37 dB;大音量時,雜訊減少3.97 dB,非雜訊減少6.1 dB。可以看出,對於AppA,播放音量越大,雜訊抑制過程所減弱的音量越多。
通過AppB輸出的音訊,小音量時,雜訊能量減少7.2dB,非雜訊減少5.87 dB,正常音量時,雜訊能量減少9.54 dB,非雜訊減少8.23 dB,大音量時,雜訊能量減少9.21 dB,非雜訊能量減少7.69 dB。可以看出,對於AppB,不同音量下輸出的雜訊和非雜訊能量減少相當,無明顯差別。
4.5 音量
注:源音效檔的Average RMS Power為:-18.69dB。見圖4-3.
圖4-3 輸入的源音訊檔
輸出的音效檔的音量大小如下表所示:
從上圖可以看出,不同的播放音量下,AppB的輸出音量均大於AppA。其中,小音量時,AppB比AppA大4.1dB,正常音量時,差別不大,大播放音量時,AppB比AppA大2.0dB。
從變化趨勢上可以看出,AppA的播放音量越大,輸出的音量也越大,AppB在小音量和正常音量時,輸出的音量無明顯差別,但是在大音量時,輸出的音量相應增加2.19dB。
5 小結
影響語音品質的因素是多維度的,主要包括時延、丟包、抖動,這也預示著VoIP對網路的強依賴性。語音品質的好壞是影響用戶體驗的直接因素,因此對VoIP語音品質進行客觀有效的分析和測量是十分重要的。本文介紹了利用腳本和工具分析時延、音質、音量、降噪等不同指標的客觀評測方法,並且把具體的案例結果呈現出來以供探討。