售前電話
135-3656-7657
售前電話 : 135-3656-7657
業(yè)界各方為了提高VoIP語音質量各顯其能,語音質量的評測方案層出不窮,但都以主觀評測為主流。我們在對有信VoIP網絡電話做評測時,會從抗時延、抗丟包、噪聲抑制以及音量大小等多種維度去考慮,本文主要介紹了客觀評測語音質量的一些方法和案例。
2 測試環(huán)境搭建
2.1 測試設備
測試設備:PC +測試手機2部+音頻線2條+耳機麥克風二合一轉接線。
在 PC 上播放音頻,聲音從 PC 的揚聲器通過音頻線和轉接線傳入到主叫A的麥克里,然后主叫A中的通話軟件采集聲音并經過網絡傳到被叫B,之后聲音從被叫B通過音頻線連接PC的麥克風傳入到PC上,在PC上進行音頻錄制操作。這里需要注意的是,由于主叫和被叫都有麥克風權限,為了保證測試過程中數據的準確性,不受外界聲音的影響,連接電腦mic端的被叫B一定要保持靜音,主叫A一定要插出耳機模式。
2.2 網絡環(huán)境模擬
VoIP決定了對網絡的強依賴性,因此需要評定在不同網絡狀態(tài)下的語音質量的各項指標。這里推薦使用網絡模擬軟件 Network Emulator Toolkit 模擬網絡丟包、抖動等網絡異常情況。在電腦上安裝網絡模擬軟件,然后將電腦網絡作為 WiFi 熱點(可以使用 360 隨身 wifi 等工具實現),測試機連接熱點 wifi,通過設置不同的參數實現丟包和網絡抖動等網絡異常的情況。
網絡丟包設置方法:可以通過設置 Periodic Loss (周期性丟包)參數實現(如設置參數為 10,表示每 10 個包丟一個包,即丟包率為 10%),也可以設置Random Loss(隨機丟包)參數實現(Random Loss 中的數值若填寫0.05,則表示隨機丟包率為5%),一般隨機丟包更貼近真實的網絡情況。
網絡抖動設置方法:可以通過設置變化的延時 Linear 參數來實現,Linear 設置項表示在設置時間內 period,延時會從設置的最小值 Min 逐漸變化到設置的最大值 Max (如設置 min 為 0,max 為 100,表示抖動幅度為 100ms),也可以設置Normal Distributed 的參數來模擬。
2.3 音頻文件以及分析工具的選擇
分析音頻的軟件有很多,本文采用Cool Edit Pro,方便易用。將音頻文件在Cool Edit Pro中打開,可以看到音頻是否滿足測試條件,例如,在音質測試時,要保證波形適中,振幅分布均勻。
由于 PESQ 算法的特殊性,對聲音源文件的選擇有一定的要求。
1. 源聲音文件的長度在6s~8s之間,過長或過短都會影響計算結果。
2. 靜音區(qū)和非靜音區(qū)的比例要適中,盡量保正[非靜音:靜音=6:4 ]或 [非靜音:靜音=5:5 ]或[非靜音:靜音=4:6 ]。使用 PESQ 計算 MOS 分時,要用純凈的不帶噪聲的文件。
3. 使用 Cool Edit Pro 錄音時,應保證輸出的波形適中,可通過調節(jié)音頻播放音量和 PC 錄音音量來控制。
3 測試指標以及測試方法
3.1 音質(QV)
音質(Quality of Voice)是指經傳輸、處理后 音頻信號的保真度,是對音量音高、音調、音色等一些列影響因素的綜合評價。本文所用的音質的測試方法,是利用python的音頻插件pyAudio來輸入源文件以及錄制輸出音頻,通過國際通用的PESQ(Perceptual evaluation of speech quality)算法來對比兩個輸入和輸出的音頻,最終計算出MOS(Mean Opinion Score)值。以上整個過程都是通過腳本完成,避免了人工參與引入的誤差。如1.1中的示意圖連接好設備后,兩臺手機通過AppA進行通話,通話過程中執(zhí)行腳本,腳本中一些變量的值,例如執(zhí)行次數、采樣率、Delay時長等都可以根據測試對象的實際情況進行靈活調整,以盡量找到測試對象的天花板。
3.2 語音時延(DV)
語音時延(Delay of Voice),兩個移動終端進行通話過程中,主觀感受的時延是指輸出音頻的時間減去輸入音頻的時間,即被叫聽到聲音的時間減去主叫發(fā)出聲音的時間。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優(yōu)于產品2;
d1 = d2,則產品1、2的NS效果基本一致;
d1 < d2,,則產品1的NS差于產品2。
3.4 音量大小(VV)
音量大?。╒olume 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的語音時延均表現出先增加后下降的趨勢(由于測試時網絡狀態(tài)不同,導致數據結果有一定的差異性),整體的語音時延,AppA的大于AppB。
4.2 抗時延性能
以50ms為步長,從0ms的網絡時延逐級遞增至400ms,分別評測AppA和AppB在不同網絡時延條件下的語音時延和MOS分。測試結果如下:
從上圖可以看出,隨著網絡時延的增加,AppA的MOS分整體處于輕微的下降趨勢,下降幅度不明顯,AppB整體趨勢較平穩(wěn),MOS分變化不大。在語音時延方面,隨著網絡時延的增加,AppA的語音時延整體處于增加趨勢,且增加幅度較大,無網絡時延時的語音時延為400.92ms,當網絡時延400ms時的語音時延為489.44ms;AppB的語音時延隨著網絡時延的增加變化不大。整體看,不同網絡時延下,AppA的語音時延高于AppB。
4.3 通話過程中語音時延的變化情況分析
通過分析不同網絡時延下的語音時延數據流,觀察不同的網絡時延條件下,從通話開始到通話結束整個過程中,不同app的語音時延變化情況。
注:上圖中橫坐標軸表示的是通話20分鐘左右的語音時延數據,每通通話取100組數據來分析。粗略估計第10組數據大概在通話5-10分鐘左右。
從上圖可以看出,網絡時延較大的條件下,AppA在通話開始的幾分鐘,語音時延一直處于較高的狀態(tài),大概通話10分鐘左右,語音時延數據逐漸趨于平穩(wěn),并可維持平穩(wěn)狀態(tài)一直到通話結束,因此可以推測,AppA在通話開始時質量不是很穩(wěn)定,但是隨著通話時長的增加,會逐步進入一個較好的通話質量狀態(tài)。
從AppB的數據上來看,無論網絡時延增加到多少,AppB的語音時延從通話開始就一直處于一個平穩(wěn)狀態(tài),但是在通話過程中,會有偶爾的語音時延波動,可以推測,AppB的整體通話質量較平穩(wěn),但中間偶爾會有質量不佳的情況。
4.4 噪聲抑制
使用語音音量和噪聲音量的Average RMS Power差值進行比對,單位是dB,一般為正數(語音音量大于噪聲音量),差值越大,NS效果越好。
在競品分析時,可用不同競品之間的非噪音差減去噪音差,若差值大于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 音量
輸出的聲音文件的音量大小如下表所示:
從上圖可以看出,不同的播放音量下,AppB的輸出音量均大于AppA。其中,小音量時,AppB比AppA大4.1dB,正常音量時,差別不大,大播放音量時,AppB比AppA大2.0dB。
從變化趨勢上可以看出,AppA的播放音量越大,輸出的音量也越大,AppB在小音量和正常音量時,輸出的音量無明顯差別,但是在大音量時,輸出的音量相應增加2.19dB。
5 小結
影響語音質量的因素是多維度的,主要包括時延、丟包、抖動,這也預示著VoIP對網絡的強依賴性。語音質量的好壞是影響用戶體驗的直接因素,因此對VoIP語音質量進行客觀有效的分析和測量是十分重要的。本文介紹了利用腳本和工具分析時延、音質、音量、降噪等不同指標的客觀評測方法,并且把具體的案例結果呈現出來以供探討。