音频带宽预测与动态参数调整优化报告【音频质量专题】

                             音频带宽预测与动态参数调整优化报告

 

目录

          音频带宽预测与动态参数调整优化报告

优化背景与目的

优化内容与思路

测试结果汇总

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

加群和关注公众号请戳下面:

                                                                                

                                                                                          

福利小贴士:

理科只是为自己插上腾飞的翅膀,文科才能让你飞黄腾达,同意的点赞,谢谢!

赠送原创诗歌公众号“天一色”,以飨读者!
 

                           

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