使用image方法[25],在混响(reverberation)时间(T60)为 0.2 s 时产生室内脉冲响应。RIR的长度设置为512。模拟室尺寸为(4,4,3)m,麦克风固定在(2,2,1.5)m处,扬声器随机放置在7处,距离麦克风1.5 m。因此,生成7个不同位置的RIRs,其中前6个RIRs用于生成训练混合语音,最后一个RIRs用于生成测试混合语音。
3.3 双方通话情况下的表现首先,我们评估了该方法在双端通话的情况下,并与传统的NLMS算法进行了比较。每个训练远端语音$x(n)$与从6个RIR中随机选择的RIR卷积以产回声信号$d(n)$。然后从{6,3,0,3,6}dB中随机选择signal-to-echo ratio (SER)将远端回声语音$d(n)$与近端语音$s(n)$混合。这里的SER level是在双讲通话时候评估的。定义为
$$公式4:\mathrm{SER}=10 \log _{10}\left\{\frac{\mathcal{E}\left[s^{2}(n)\right]}{\mathcal{E}\left[d^{2}(n)\right]}\right\}$$
由于回声路径是固定的,并且没有背景噪声或非线性失真,因此在这种情况下,结合Geigel DTD [4]的著名NLMS算法可以很好地工作。 NLMS的过滤器大小设置为512,与模拟RIR的长度相同。 NLMS算法[1]的步长和正则化因子分别设置为0.2和0.06。 Geigel DTD的阈值设置为2。
表1显示了这两种方法在不同SER条件下的平均ERLE和PESQ值,其中,将麦克风信号$y(n)$与麦克风中的近端语音$s(n)$进行比较,得出None(或未处理的结果)的结果。 双端通话时段。下表中的结果表明NLMS和BLSTM方法都能够消除声波回波。基于BLSTM的方法在ERLE方面优于NLMS,而NLMS的PESQ则优于BLSTM。
表1:双端通话情况下的平均ERLE和PESQ值
表2:SNR为10 dB的双向通话和背景噪声情况下的平均ERLE和PESQ值
3.4 在双向通话和背景噪音情况下的性能第二个实验研究了双端对话和背景噪声的情景。由于单独使用Geigel-DTD的NLMS无法处理背景噪声,因此采用基于频域后置滤波的AEC方法[7]来抑制AEC输出的背景噪声。
同样,每个训练混合物都是在SER水平上从{6,3,0,3,6}dB中随机选择的。将白噪声以从{8、10、12、14} dB中随机选择的SNR级别添加到麦克风信号。这里的信噪比水平是根据双端通话周期来评估的,定义为
$$公式5:\mathrm{SNR}=10 \log _{10}\left\{\frac{\mathcal{E}\left[s^{2}(n)\right]}{\mathcal{E}\left[v^{2}(n)\right]}\right\}$$
表2显示了NLMS,配备了后置滤波器的NLMS和基于BLSTM的方法在10 dB SNR级别的不同SER条件下的平均ERLE和PESQ值,如表2所示。在NLMS + 后置滤波情况下,NLMS算法的滤波器大小、步长和正则化因子分别设置为512、0.02和0.06。 Geigel DTD的阈值设置为2。后置滤波器的两个遗忘因子设置为0.99。 从表中可以看出,与未处理的结果相比,所有这些方法在PESQ方面均显示出改进。 在所有条件下,BLSTM均优于其他两种方法。 另外,通过比较表1和表2,我们发现将背景噪声添加到麦克风信号会严重影响NLMS的性能。 在这种情况下,后置过滤器可以提高NLMS的性能。
3.5 在双端通话、背景噪声和非线性失真情况下的性能第三个实验评估了基于BLSTM的方法在通话双方,背景噪声和非线性失真情况下的性能。 通过以下两个步骤处理远端信号,以模拟功率放大器和扬声器引入的非线性失真。
首先,将clip [26]应用于远端信号,以模拟功率放大器的特性
$$公式6:x_{\text {hard }}(n)=\left\{\begin{array}{cc}
-x_{\max } & x(n)<-x_{\max } \\
x(n) & |x(n)| \leq x_{\max } \\
x_{\max } & x(n)>x_{\max }
\end{array}\right.$$
其中$x_{max}$设置为输入信号最大音量的80%。
然后应用无记忆的sigmoidal函数[27]来模拟扬声器的非线性特性:
$$公式7:x_{\mathrm{NL}}(n)=\gamma\left(\frac{2}{1+\exp (-a \cdot b(n))}-1\right)$$
其中
$$公式8:b(n)=1.5 \times x_{\mathrm{hard}}(n)-0.3 \times x_{\mathrm{hard}}^{2}(n)$$
将Sigmoid增益设置为4。如果$b(n)> 0$,则将 sigmoid 斜率$a$设置为4,否则将其设置为0.5。