音頻帶寬預測與動態參數調整優化報告【音頻質量專題】

                             音頻帶寬預測與動態參數調整優化報告

 

目錄

          音頻帶寬預測與動態參數調整優化報告

優化背景與目的

優化內容與思路

測試結果彙總

A. 隨機丟包網絡

B.帶寬受限網絡

C.實際網絡

優化結論


本內容全原創,因作者才疏學淺,偶有紕漏,望不吝指出。本內容由靈聲訊音頻-語音算法實驗室整理創作,轉載和使用請與“靈聲訊”聯繫,聯繫方式:音頻/識別/合成算法QQ羣(696554058)


  • 優化背景與目的

基於18年8月份對listensin項目開發,還存在弱網絡環境下動態參數調整不合理或不匹配的情況,導致點對點音頻質量下降明顯造成溝通不暢等問題,近期在依照友商產品體驗的基礎上進行全方位優化和改善。經過多輪反覆試驗,最終在原來優化的基礎上增加了音頻帶寬估計和探測模塊,實時探測網絡狀態以此來增加動態參數調整的精準性和穩定性。

  • 優化內容與思路

目前的優化內容主要分兩大塊,第一塊是根據視頻帶寬估計算法研發適合音頻帶寬估計算法,並以音頻RTCP上報參數爲輸入,合理且準確的探測實時網絡狀態。第二塊是在**項目原來動態參數調整優化的基礎上,重新依據音頻帶寬預測算法的結果進行校準和加強,更進一步的提升參數調整的精準性和穩定性。具體的算法流程如下圖所示:

                                        

測試結果彙總

1) 測試環境:

  1. oppo A53m,vivo YS1A
  2. listensin,360隨身wifi(所有測試不支持穿透)

2) 測試版本:

  1. demo(*_*優化版)

3) 測試日期:

       20180927-20190103

4) 測試數據:

   整個優化結果測試分三部分內容,第一部分是針對隨機丟包型網絡環境的模擬測試;第二部分是針對帶寬受限網絡環境的模擬測試;第三部分是公司內外環境實測。下面給出所有測試數據的可視化結果:

A. 隨機丟包網絡

以下是隨機丟包時音頻質量客觀打MOS分優化前後的對比數據及結果:

優化前:

                                                 oppo-vivo(丟包型網絡測試20180814.pm)

PESQ

loss_0(2)

loss_5(2)

loss_10(2)

loss_15(2)

loss_20(2)

loss_25(2)

loss_30(2)

1

3.370061

2.905927

3.499287

3.404371

3.295826

3.297021

3.338209

2

3.385545

2.834871

3.435212

3.309201

3.420796

3.237281

3.203207

3

3.549577

2.792232

3.553399

3.422488

3.311166

3.038989

3.129062

4

3.460091

2.743378

3.381129

3.398325

3.39405

3.394241

3.053357

5

3.40444

2.6114

3.380411

3.323582

2.689613

3.388399

3.415845

6

3.573653

2.892318

3.139908

3.151786

3.373795

3.232671

3.247233

7

3.606637

3.57055

3.35731

3.424259

3.472592

3.271495

2.929102

8

3.538327

3.484503

3.46594

3.407129

3.498017

3.279175

3.291739

9

3.480042

3.574271

3.449543

3.450506

3.439924

3.28474

3.082016

10

3.535377

3.475205

3.557088

3.465139

3.500109

3.291108

3.413235

11

3.544504

3.402068

3.51105

3.095682

3.342456

3.286378

3.0514

12

3.450694

3.533487

3.491782

3.45277

3.386364

3.087695

3.348873

13

3.52391

3.382691

3.488458

3.470394

3.415443

3.292772

3.125211

14

3.543186

3.398965

3.485341

3.271558

3.409754

3.347441

3.305228

15

3.358573

3.536434

3.315572

3.378471

3.450915

3.001553

3.194984

16

3.554061

3.543655

3.206439

3.445502

3.393796

3.311512

3.024478

17

3.54502

3.560767

3.507227

3.367013

3.40395

3.235411

3.289442

18

3.542076

3.511924

3.516299

3.375159

3.485049

3.203533

3.163313

19

3.540627

3.487232

3.483391

3.419155

3.503042

3.138331

3.293976

20

3.574316

3.47036

3.497866

3.267719

3.436174

3.293526

3.297687

ave

3.50404

3.28561

3.43613

3.36501

3.38114

3.24566

3.20988

 

優化後:

     音頻帶寬預測與動態參數調整優化後測試(丟包型)

 
 

PESQ

loss_0

loss_10

loss_20

loss_30

 

1

3.581892

3.3530384

3.323348

3.4051845

 

2

3.693079

3.3812542

3.4506771

3.1282094

 

3

3.640126

3.2701449

3.4046766

3.2826426

 

4

3.550487

3.2745932

3.1507787

3.3590552

 

5

3.631282

3.3795495

3.498502

3.3592153

 

6

3.658274

3.4505254

3.6146792

3.323378

 

7

3.634765

3.3026954

3.4580843

3.2250086

 

8

3.633726

3.180577

3.6640651

3.2564071

 

9

3.597269

3.3062328

3.455854

3.262503

 

10

3.608318

3.0994845

2.9999142

3.2511825

 

11

3.617133

3.4360691

3.4581188

3.2747811

 

12

3.591663

3.4123199

3.1360772

3.0440633

 

13

3.602614

3.1443354

3.4811986

3.3711946

 

14

3.579307

3.2638493

3.4981088

3.1625546

 

15

3.485615

3.1380241

3.2499485

3.4597067

 

16

3.614804

3.1591571

3.6183229

3.289511

 

17

3.55441

3.3615295

3.2055085

3.2561232

 

18

3.577459

3.2388448

3.4639943

3.2591554

 

19

3.661506

3.2797162

3.3081652

3.1793327

 

20

3.635031

3.3373805

3.3173479

3.3076838

 

ave

3.60744

3.28847

3.38787

3.27284

 

 

 

對於丟包10% 情況的補測:

PESQ

loss_10

loss_20

1

3.5853458

3.54228643

2

3.4604239

3.64773385

3

3.5217533

3.56190119

4

3.3528071

3.53825506

5

3.6429737

3.57656051

6

3.5365111

3.48528114

7

3.3628605

3.55925245

8

3.5415521

3.52325164

9

3.069106

3.51530436

10

3.5859071

3.48828

ave

3.46592

3.543811

 

對比結果:

對於丟包型網絡優化前後MOS差別並不大,但是增加了帶寬預測大幅度提升了動態參數調整的穩定性。對於10%丟包時,原來是做1FEC,補測時候優化了FEC倍數,大部分情況是固定在2倍,通過客觀打分可知,2FEC效果明顯比1倍要好。

下面給出隨機丟包時音頻帶寬預測與動態參數調整的對應圖:

1) loss_0

 

                                      

當丟包爲0時,整個網絡狀態正常,FEC = 0,碼率穩定在32Kbps,打包時長爲20ms,語音流程及舒服。

2) loss_10

 

                                       

當丟包爲10%時,整個網絡判斷爲隨機丟包型,FEC 從0升到1倍,碼率從32Kbps下降到28Kbps或者24Kbps,由於丟包率實時不穩,導致FEC和碼率出現波動,但大部分時間FEC維持在1倍,打包時長爲20ms,語音偶有抖動。經過進一步優化,當丟包在10% 時,FEC大部分時間是在2倍,碼率維持在24Kbps,偶爾出現28Kbps。

3) loss_20

 

                                         

當丟包爲20%時,整個網絡判斷爲隨機丟包型,FEC 從1升到2倍,碼率從28Kbps下降到24Kbps或者20Kbps,在此丟包環境中FEC長期維持在2倍,打包時長爲20ms,語音質量良好。

4) loss_30

 

                                          

當丟包爲30%時,整個網絡判斷爲隨機丟包型,FEC 從2升到3倍,碼率從24Kbps下降到20Kbps或者16Kbps,大部分時間是碼率是在16Kbps,在此丟包環境中FEC長期維持在3倍,打包時長爲20ms,語音質量偶有斷續。

B.帶寬受限網絡

以下是帶寬受限時音頻質量客觀打MOS分優化前後的對比數據及結果:

優化前:

oppo_vivo_bandwidth_limited

PESQ

BW_10Kbps

BW_20Kbps

BW_30Kbps

BW_40Kbps

BW_50Kbps

BW_60Kbps

1

2.601568

1.67448

3.06806

2.820486

2.959418

3.594051

2

2.339853

2.79228

3.131402

2.697895

3.150837

3.686515

3

2.291011

2.788003

3.105273

3.013852

3.268429

3.627768

4

1.982152

2.946084

3.023104

2.567237

3.12272

3.58907

5

1.642909

2.96764

3.132432

2.667567

3.168038

3.645766

6

1.570973

2.759303

3.105778

2.952561

3.162108

3.653011

7

2.201833

2.961261

3.128179

2.842049

3.151019

3.601191

8

2.088249

3.077856

3.084443

2.742224

3.179106

3.453066

9

2.419226

3.000576

3.126656

2.346461

2.910072

3.634661

10

2.273802

2.968391

3.245327

2.71915

3.128245

3.611123

11

NULL

2.448584

3.083232

2.252314

3.13823

3.548242

12

NULL

2.848855

3.122928

2.491703

3.161694

3.654188

13

NULL

2.961658

3.150632

2.173534

3.241694

3.659575

14

NULL

2.939521

3.134724

2.59373

3.267812

3.650173

15

NULL

2.464737

2.970218

2.512123

3.159766

3.581073

16

NULL

2.774561

3.147867

2.822346

3.184654

3.54242

17

NULL

2.927303

3.087036

2.631536

3.112652

3.618958

18

NULL

3.039998

3.1227

1.989405

3.117034

3.617706

19

NULL

2.769489

3.132696

2.737104

3.120486

3.593507

20

NULL

3.458922

3.070295

2.152924

2.678733

3.671388

ave

2.14116

2.82847

3.10865

2.58631

3.11914

3.61167

 

優化後:

音頻帶寬預測與動態參數調整優化後測試(帶寬受限型)

 
 

PESQ

20Kbps

30Kbps

40Kbps

50Kbps

 

1

2.905216

3.2000843

3.2515887

3.1305338

 

2

2.830818

3.1909283

3.329109

3.4737558

 

3

2.944941

3.1782422

3.039244

3.2050032

 

4

2.808687

2.9882597

3.2651568

3.2217209

 

5

2.955799

3.1333501

3.1390289

3.2314285

 

6

2.903797

3.1760258

3.3278516

3.2023102

 

7

2.982072

3.2496957

3.1075692

3.3539428

 

8

3.157925

3.0950396

3.2951549

3.2776835

 

9

2.980941

3.2288895

3.274097

3.2184626

 

10

2.944647

3.0519907

3.3424703

3.2973596

 

11

2.911858

3.1840512

3.1366697

3.3087954

 

12

2.931631

3.1525966

3.1209302

3.2480386

 

13

2.984569

3.0784391

3.1623669

3.3535867

 

14

2.815945

3.1931631

3.0871016

3.2677181

 

15

2.800154

3.1147891

3.3107909

3.2988959

 

16

2.87494

2.860091

3.1214618

3.3347192

 

17

2.932218

2.8556505

2.5044113

3.2178878

 

18

2.861084

2.8268298

3.3791481

3.2784919

 

19

2.899303

2.8874664

3.1854166

3.2596039

 

20

2.836517

2.6819692

3.1459508

3.3006196

 

ave

2.91315

3.06638

3.17628

3.27403

 

 

對比結果:

對於帶寬受限型網絡,從客觀打MOS分來看,質量提升明顯,且能做到穩定精確,對於不同的網絡受限能採取相對應的策略,整個動態參數調整合理且有效。

下面給出帶寬受限時音頻帶寬預測與動態參數調整的對應圖:

1) 20Kbps_Network_limited

 

 

                                                

                                                 

當帶寬受限20Kbps時,整個網絡判斷爲帶寬受限型,動態參數的調整主要集中在碼率,FEC始終保持爲0倍。碼率從正常網絡的32Kbps下降到8Kbps,最終穩定在8Kbps,只有在網絡狀態完全正常,所有的判斷都重新開始的時候纔有細微波動,這是算法重新收斂的過程屬於合理現象。整個過程語音清晰但聲音質量只能是8Kbps碼率的標準,不是很飽滿。

2) 30Kbps_Network_limited

 

                                               

                                                 

 

當帶寬受限30Kbps時,整個網絡判斷爲帶寬受限型,FEC爲0倍,碼率從8Kbps升到12Kbps,最終穩定在12Kbps。整個過程語音清晰但聲音質量比8Kbps碼率好,但聲音還不不飽滿。

3) 40Kbps_Network_limited

 

 

                                       

                                      

當帶寬受限40Kbps時,整個網絡判斷爲帶寬受限型,FEC爲0倍,碼率從12Kbps升到16Kbps,最終穩定在16Kbps。整個過程語音清晰聲音飽滿,失真小。

4) 50Kbps_Network_limited

由於帶寬受限在50Kbps的時候,由於opus編碼目前在demo中的最大碼率爲32Kbps,再剛開始帶寬受限時碼率還是維持在32Kbps,但是隨着檢測的深入,經過優化大部分情況是可以檢測到帶寬受限的,只要帶寬受限標誌位置爲1,後面的動態參數就會被鎖定,近期多次測試結果來看,鎖定爲24Kbps和20Kbps的可能性最大,所以這樣優加強了參數調整的穩定性,使得語音質量良好,且清晰流暢,當比起不受限時語音還是存在失真。

C.實際網絡

在實際網絡測試時,選擇公司內部的listensin WIFI,主叫和被叫都連接統一WIFI,當不支持穿透。一端在走廊和洗手間門口走動時,此端會短時間內判斷爲帶寬受限,按帶寬受限的策略去調整動態參數,卻能長時間鎖定一檔碼率,符合算法設計初衷,保證了通話順暢,提升了語音質量的穩定性。當到工作位置時,帶寬估計算法會探測到已解除帶寬受限,經過長時間的跟蹤最終確定網絡確實正常後,開始全面提升碼率,提升語音質量,且進入新一輪判斷。

 

  • 優化結論

1. 經過多輪測試,動態參數的調整比原來更加精確和穩定,基本達到算法設計要求。

2. 增加了音頻帶寬估計和探測算法後,對不同網絡狀態的判斷更加準確,增加了動態參數調整的穩定性。

3. 通過優化前後音頻質量客觀打分可知,優化後參數調整更加穩定,尤其對於帶寬受限型網絡,MOS分提升明顯。

 

附件:

1.demo

2.整理後數據:

3.項目音頻動態參數優化說明

4.優化前測試報告    

 

靈聲訊

整理於2019-03-01

加羣和關注公衆號請戳下面:

                                                                                

                                                                                          

福利小貼士:

理科只是爲自己插上騰飛的翅膀,文科才能讓你飛黃騰達,同意的點贊,謝謝!

贈送原創詩歌公衆號“天一色”,以饗讀者!
 

                           

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章