长短期记忆网络在单声道源分离中的应用
立即解锁
发布时间: 2025-09-08 01:19:36 阅读量: 11 订阅数: 20 AIGC 


源分离与机器学习
### 长短期记忆网络在单声道源分离中的应用
#### 1. 不同模型性能对比
在源分离任务中,常用信号与失真比(SDR)、信号与干扰比(SIR)和信号与伪像比(SAR)来评估分离信号的质量。通过对比使用非负矩阵分解(NMF)和三种基于不同训练准则的深度循环神经网络(DRNN)的SDR、SIR和SAR,发现具有判别性的DRNN(DDRNN - bw和DDRNN - diff)在SIR方面表现优于生成性DRNN,这主要得益于源间和差异向量的判别项,它们能减少两个源信号之间的干扰。不过,DDRNN - bw对伪像的处理效果不佳,而DDRNN - diff在处理伪像方面比DRNN更合适。
#### 2. 长短期记忆网络(LSTM)的引入
标准循环神经网络(RNN)存在梯度消失或梯度爆炸的问题,这是由于在长展开网络中沿着多个时间步重复乘以相同权重导致的。例如,在图中可以看到,时间步1的梯度通过隐藏状态$z_t$传播到输出层,但在时间步2、3和4逐渐消失,到时间步5时完全消失,这意味着时间步1提取的信息在时间上迅速衰减,仅在前4个时间步有效。
为了解决这个问题,引入了长短期记忆网络(LSTM)。LSTM的目标是保留早期隐藏节点的激活,以便在当前时间$t$进行预测,并提取长期历史中的短期特征用于单声道源分离。一个LSTM块由一个记忆单元$c_t$和三个Sigmoid门(输入门$i_t$、输出门$o_t$和遗忘门$f_t$)组成,通过$x_t$来保留不同时间步$t$的梯度传播。然后计算隐藏状态$z_t$,用于在下一个时间步$t + 1$对三个门进行循环更新。LSTM可以等效地实现为一个复合函数,通过隐藏状态$z_t$和相应的连接权重来估计两个源的掩码函数$\{\hat{y}_{1,t},\hat{y}_{2,t}\}$。
LSTM的门控机制就像开关一样,自动驱动梯度的传播,控制输入的接收和输出的产生。例如,在一个示例中,只有时间步1从输入$x_t$接收梯度,隐藏状态$z_t$中的梯度在时间步3和5被传播并用于产生输出$\{\hat{y}_{1,t},\hat{y}_{2,t}\}$,该梯度在时间步6终止,在此之前,梯度在隐藏状态中得到了很好的保存。
#### 3. LSTM在说话人泛化方面的优势
语音分离可以看作是一个学习任务,根据预定义的模型(如NMF、DNN、RNN或DRNN)来估计不同源的时频掩码函数。在实际的源分离中,提前知道测试条件是不现实的。传统的深度神经网络(DNN)在说话人相关的语音分离中表现良好,但对于未见过的测试说话人,其分离性能会迅速下降,甚至在短时客观可懂度(STOI)方面比未处理的系统还差。这是因为DNN虽然考虑了上下文窗口内的输入特征,但忽略了窗口外的时间信息,限制了其泛化能力。
而基于长短期记忆的循环神经网络(RNN)能够捕捉音频信号中的时间动态,因此更适合解决DNN的这一弱点。例如,一个由一个输入特征层$x_t$、四个堆叠的LSTM层$\{z^{(l)}_t\}^4_{l = 1}$和一个输出掩码层$\{\hat{y}_{1,t},\hat{y}_{2,t}\}$组成的深度循环神经网络(DRNN),通过堆叠LSTM层来捕捉音频信号中的深度时间依赖关系。顶层LSTM层$z^{(L)}_t$用于估计软掩码函数$\{\hat{y}_{1,t},\hat{y}_{2,t}\}$。
在系统评估中,使用了来自83位说话人的WSJ话语进行测试,其中77位说话人的话语用于训练,其余6位说话人的话语用于测试。将混合信号视为有噪语音信号,通过将WSJ话语与大量训练噪声以 - 5到0 dB的信噪比混合而成。使用约5000小时的大训练集来训练说话人无关模型。实验结果表明,基于LSTM的分离模型在说话人泛化方面有明显改善,能够捕捉不同的上下文以改进掩码估计。
此外,在CHiME语音分离和识别挑战任务中,使用LSTM的DRNN在单声道语音分离方面取得了成功。研究发现,将判别性训练准则融入循环神经网络有助于单声道语音增强,使用两层LSTM网络进行掩码近似和信号近似的DRNN在信号与失真比(SDR)方面显著优于具有100个基的NMF和具有三个1024单元全连接(FC)层的DNN,并且使用LSTM层的DRNN参数数量比使用FC层的DNN少,梯度消失问题也得到了有效解决。
#### 4. 双向长短期记忆网络(BLSTM)
传统的RNN和LSTM及其深度变体在源分离中只利用混合信号的先前上下文来预测未来事件,建模是单向的。但在现实世界中,音频信号的顺序样本是双向相关的,传统RNN仅使用过去输入数据$x_{<t}$的状态信息$z_t$进行预测,由于无法从当前状态$z_t$获取未来输入信息$x_{>t}$,系统性能受到限制。实际上,对于
0
0
复制全文
相关推荐








