5. VQE算法功能介绍

5.1. 语音音质增强 (VQE)

针对语音讯号处理(SSP)算法,当近端语音讯号遭受到来自远端的回声干扰或是近端stationary noise的干扰时,可采用SSP内的算法功能来抑制这些干扰,进而提高语音讯号的品质。SSP内提供的解决方案,包括线性回声消除(AEC)、非线性回声抑制(AES)、语音降噪(NR)、自动增益控制(AGC )、…等功能。SSP算法支持8kHz及16kHz采样率、单声道、16位采样长度的语音讯号。在接下来的页面会介绍每个算法功能及所使用的参数。

参数para_fun_config对应至档案 cvi_comm_aio.h 内的u32OpenMask, 可控制麦克风路径的SSP算法功能,参数para_spk_fun_config可控制扬声器路径SSP算法功能,各个位对应的算法功能如下表所述。

para_fun_config

描述(麦克风路径)

位元0

0:关闭AEC
1:开启AEC

位元1

0:关闭AES
1:开启AES

位元2

0:关闭NR
1:开启NR

位元3

0:关闭AGC
1:开启AGC

位元4

0:关闭Notch Filter
1:开启Notch Filter

位元5

0:关闭DC Filter
1:开启DC Filter

位元6

0:关闭DG
1:开启DG

位元7

0:关闭Delay
1:开启Delay

para_spk_fun_config

描述 (扬声器路径)

位元0

0:关闭AGC
1:开启AGC

位元1

0:关闭EQ
1:开启EQ

表: para_fun_config/para_spk_fun_config参数说明

5.2. AEC/AES (Acoustic Echo Cancellation/Acoustic Echo Suppression)

任何双工通话系统的架构都存在着回声的干扰。回声消除器可以消除通过近端声学路径 耦合回麦克风的扬声器输出的回声。采用所提供的解决方案,线性自适应滤波器模块 (AEC)搭配非线性回声抑制模块(AES)可以有效地抑制回声,从而提高语音通话品质。

Chart Description automatically generated

图: AEC+AES处理前后的性能

提供四个可调参数,用于调适AEC/AES的性能,它们分别是:

para_aec_init_filter_len/para_aec_filter_len: 自适应滤波器的长度。根据不同样机回声拖尾的时间调整适当的滤波器长度。若选择较长的长度,会导致较高的MIPS和功耗。

para_aec_init_filter_len: 仅用于一开始出现回声时的调适。

para_aes_std_thrd: 残留回声判断阈值。值设较大时,近端语音品质较佳但残留回声较多。反之,值设较小时,近端语音品质较差但残留回声较少。

para_aes_supp_coeff: 残留回声抑制力道。值设越大,对残留回声抑制力道越大,但同时也会对近端语音带来越多细节音的丢失/损伤。

AEC/AES参数

可调范围

描述

para_aec_init_filter_len/para_aec_filter_len

1 - 13

8kHz采样率: [1,13]对应[20ms,260ms]
16kHz采样率: [1,13]对应[10ms,130ms]

para_aes_std_thrd

0 - 39

0: 残留回声判断阈值最小
39: 残留回声判断阈值最大

para_aes_supp_coeff

0 - 100

0: 残留回声抑制力道最小
100: 残留回声抑制力道最大

表: AEC/AES参数说明

5.3. NR (Noise Reduction)

NR模块可以抑制周围环境的stationary noise,例如风扇噪音,空调噪音, 引擎噪音,白/粉红杂讯,…等等。凭靠着专有的语音智能Speech VAD算法, NR可以保持住语音信号,同时又可以有效地抑制stationary noise, 从而提高语音通话的品质。

_images/VQEAlg003.png

图: NR处理前后的性能

提供三个可调参数,用于调适NR的性能,它们分别是:

para_nr_init_sile_time:**初始静音的时间长度。CODEC开电瞬间会产生随机无意义的噪音讯号, **para_nr_init_sile_time 可将这段讯号设置成静音。

para_nr_snr_coeff: signal-to-Noise Ratio(SNR)跟踪系数。若参数值较大, 则NR会具有较高的降噪能力,但语音信号可能会较容易失真。相反地​​,参数值较小, 则NR将抑制较少的噪声信号,但会具有较好的语音品质性能。下表是基于不同SNR环境下, 此参数合适的调整范围,在每种SNR情况下,参数值越大,对stationary noise的抑制力道就越大。

NR参数

可调范围

描述

para_nr_init_sile_time

0 - 250

对应0s至5s,
每阶20ms

表: NR参数说明

周遭的SNR环境

调整范围

描述

0 - 3

0: 在降噪方面最不积极
3: 在降噪方面最积极

4 - 10

4: 在降噪方面最不积极
10: 在降噪方面最积极

11 - 25

11: 在降噪方面最不积极
25: 在降噪方面最积极

表: para_nr_snr_coeff参数说明

5.4. AGC (Automatic Gain Control)

AGC模块可以自动将输出电平调整到预定范围,以提供更舒适的听觉体验。 如果输入信号低于“Target Low”,则AGC会将输出电平往“Target Low”调整。 另一方面,如果输入信号高于“Target High”,则AGC会将输出电平往“Target High”调整。

_images/VQEAlg004.png

图: AGC调整信号电平

_images/VQEAlg005.png

图: AGC处理前后的性能

提供四个可调参数,用于调适麦克风路径的AGC性能,它们分别是:

para_agc_max_gain: 此参数是信号可以被放大的最大增益。

para_agc_target_high: 此参数是AGC将会去达到的“Target High”水平。 对于高于 para_agc_target_high**的输入信号,AGC会将其收敛到 **para_agc_target_high

para_agc_target_low: 此参数是AGC将会去达到的“Target Low”水平。 对于低于 para_agc_target_low**的输入信号,AGC会将其收敛到 **para_agc_target_low。 若在达到 para_agc_target_low**之前就已达到 **para_agc_max_gain , 则AGC仅会收敛到 para_agc_max_gain

para_agc_vad_ena: Speech-activated AGC功能。开启此功能并同时开 启NR及AEC/AES功能时,能使AGC避免放大背景残留stationary noise及残留回 声,以获得较佳的效果。

AGC参数

可调范围

描述

para_agc_max_gain

0 - 6

[0,6]对应的
最大提升增益为[6dB,42dB],每阶6dB

para_agc_target_high

0 - 36

0至36对应0dB至-36dB

para_agc_target_low

0 - 72

0至72对应0dB至-72dB

para_agc_vad_ena

0 - 1

0: 关闭Speech-activated AGC功能
1: 开启Speech-activated AGC功能

表: 麦克风路径的AGC参数说明

para_spk_agc_max_gain、para_spk_agc_target_high、para_spk_agc_target_low 这三个参数用于调适扬声器路径的AGC性能, 其参数定义及调适范围与麦克风路径的AGC相同。

5.5. Notch Filter

Notch Filter参数

可调范围

描述

para_notch_freq

0 - 1

0: notch frequency为1kHz
1: notch frequency为4kHz

5.6. DG (Digital Gain)

此功能有助于降低residual echo及 residual stationary noise。 若mic channel中的讯号gain level较小,则不建议开启此功能。

DG参数

可调范围

描述

para_dg_target

1 - 12

1: 对残留回声/噪声抑制最不积极,但语音质量最好
12: 对残留回声/噪声抑制最积极,但语音质量最差

5.7. Delay

此功能用于延迟参考信号,可使AEC/AES加速收敛一开始出现的回声。 若已通过调整参数para_aec_init_filter_len加速收敛首端的回声, 则不建议开启此功能。

Delay参数

可调范围

描述

para_delay_sample

1 - 3000

1至3000对应1至3000 samples

5.8. Equalizer

此功能是针对语音讯号进行均衡处理,可经由调适band的center frequency,

gain以及quality factor,调节出所想要语音讯号呈现的频率响应,也可以补偿

硬件或喇叭单体所造成的不完美频率响应。

Equalizer参数

可调范围

描述

para_spk_eq_nband

1 - 5

1至5对应1至5 bands

para_spk_eq_freq[]

8kHz Fs: 0 - 9
16kHz Fs: 0 - 10

band的center frequen cy,参照para_spk_eq_freq表

para_spk_eq_gain[]

0 - 60

band的gain,参照para_spk_eq_gain表

para_spk_eq_qfactor[]

0 - 17

band的quality factor。
0: 以para_spk_eq_freq为中心的频率响应曲线最平滑,但对其附近频率影响 的范围最广
17: 以para_spk_eq_freq为中心的频率响应曲线最尖锐,但 对其附近频率影响的范围最窄

【注意】:

当para_spk_eq_nband配置为1时,需同时配置所对应的para_spk_eq_freq[0]、para_spk_eq_gain[0]、para_spk_eq_qfactor[0]。

当para_spk_eq_nband配置为2时,需同时配置所对应的para_spk_eq_freq[0]、 para_spk_eq_gain[0]、para_spk_eq_qfactor[0] 以及 para_spk_eq_freq[1]、 para_spk_eq_gain[1]、para_spk_eq_qfactor[1],其中阵列index 0的参数会对 应到第一个band,阵列index 1的参数会对应到第二个band。以此类推。

para_spk_eq_freq 参数

应的center frequency (Hz)

0

100

1

200

2

250

3

350

4

500

5

800

6

1200

7

2500

8

3300

9

3990

10( 只适用于采样率16kHz )

7990

para_spk_eq_gain 参数

对应的gain(dB)

para_spk_eq_gain参数

对应的gain(dB)

0

-40

31

-9

1

-39

32

-8

2

-38

33

-7

3

-37

34

-6

4

-36

35

-5

5

-35

36

-4

6

-34

37

-3

7

-33

38

-2

8

-32

39

-1

9

-31

40

+0

10

-30

41

+1

11

-29

42

+2

12

-28

43

+3

13

-27

44

+4

14

-26

45

+5

15

-25

46

+6

16

-24

47

+7

17

-23

48

+8

18

-22

49

+9

19

-21

50

+10

20

-20

51

+11

21

-19

52

+12

22

-18

53

+13

23

-17

54

+14

24

-16

55

+15

25

-15

56

+16

26

-14

57

+17

27

-13

58

+18

28

-12

59

+19

29

-11

60

+20

30

-10

VQE 针对 Audio Input 和 Audio Output 两条通路的异同点,分别通过 UpVQE 和 DnVQE 两个调度逻辑来 处理两个通路的数据,UpVQE包含AEC、AES、NR、AGC。DnVQE目前不支持。对应参数 可参考表头档cvi_comm_aio.h。