0. Abstract
本文从深度学习和计算听觉场景分析(CASA)的角度解决与说话者无关的单通道语音分离问题。具体来说,本文将多说话人分离任务分解为同时分组(Simultaneous grouping)和顺序分组(sequential grouping)阶段。首先在每个时间帧中执行同时分组,其通过使用排列不变训练的神经网络分离不同说话者的频谱。在第二阶段,上一步得到的帧级分离频谱通过聚类网络顺序分组到不同的说话人。所提出的深度CASA方法依次优化了帧级分离和说话人跟踪,并在这两个目标上取得了很好的结果。
1. Introduction
CASA解决语音分离问题主要通过如下两个步骤:simultaneous grouping and sequential grouping. 将混合语音分解为时频单元矩阵,前者将在时间上重叠的时频单元聚合为短片段,每个片段都来自同一声源。第二阶段,不同时段的片段分组为听觉流,每个流对应一个不同的声源。例如串联算法[14]利用音高进行分组,并利用音高轮廓的时间连续性进行顺序分组,从而分离浊音。论文【15】提出了一种无监督说话人分离方法,其首先基于音高和起始/偏移分析生成时频片段,然后使用约束聚类将时频片段顺序分组为不同的说话人。
深度学习方法中,说话人无关的语音分离存在标签置换问题,PIT【22】方法在通过在训练时检验每一帧的所有排列组合的方式解决该问题,其使用所有组合中帧级损失最小的一种情况进行网络训练。但是,PIT方法的输出中正确的说话人分配可能会在帧之间频繁的交换,即,如果不进行重组,帧级优化的输出不同简单的流式的传输到底层扬声器。因此,论文【22】提出了uPIT(utterance-level PIT),该方法在整个语音序列中将每个说话者与固定输出层对齐。
深度聚类(DC)方法【12】从不同的角度看待标签置换问题,在DC方法中,通过一个循环神经网络为混合语音频谱的每个时频单元生成一个embedding向量。将embedding向量的亲和矩阵与理想二值掩码(或者理想说话人分配的亲和力矩阵)之间的Frobenius范数作为训练目标。由于亲和力矩阵的排列不变性,DC方法可以避免排列问题。随着训练的进行,来自同一声源支配的时频单元的embedding向量距离较近,而不同声源的embedding 向量的距离会被拉得更大。使用K-means算法将这些embedding向量进行聚类,将每个时频单元分配给不同的说话者,可看做二值掩蔽。
PIT和DC代表了说话者无关的语音分离的两种主要方法,但都存在一些限制。uPIT牺牲了一些帧级性能来实现话语级分配,同时该方法对于同性人的情况效果不佳。另一方面,DC方法在说话人跟踪方面表现更好,但是其帧级分离不如tPIT方法。
受到CASA、PIT和DC方法的启发,作者在论文【27】中提出了一种基于深度学习的两阶段方法来解决说话人无关的语音分离。该方法包含simultaneous grouping 和 sequential grouping两个阶段。在第一阶段,训练一个tPIT-BLSTM网络来预测每帧两个说话人的频谱,无需指定说话者;在第二阶段,帧级分离频谱和混合语音频谱输入到另一个BLSTM网络中预测估计频谱的embedding 向量,使得对应于同一说话人的embedding向量靠近在一起,不同说话人的embedding向量距离增大。然后使用约束k-means算法将同一帧上的两个频谱估计分组到不同的说话人。
[27] Y. Liu and D. L. Wang, “A CASA approach to deep learning based speaker-independent co-channel speech separation,” in Proc. IEEE Int. Conf. Acoust., Speech, Signal Process., 2018, pp. 5399–5403.
在本文的研究中,我们采用了相同的分而治之的策略,但在主要方面进行了改进。在第一阶段,本文使用了具有densely-connected层的U-Net卷积神经网络来提升帧级分离的性能,增加了频谱映射层来处理频段之间的不一致。为了处理逆傅里叶变换变换时的相位问题,本文尝试了复数STFT目标和时域训练目标。在第二阶段,本文使用了一种新的嵌入式特征表示和权重目标函数。此外,本文使用TCN实现第二阶段网络,其能极大地改进说话人跟踪问题,为了解决过拟合问题,本文为TCN网络提出了一种新的dropout方案。
2. Monaural Speaker Separation and Permutation Invariant Training
2.1 Monaural speaker separation
定义
y
(
n
)
y(n)
y(n)表示混合语音,
x
c
(
n
)
,
c
=
1
,
.
.
.
,
C
x_c(n), c=1, ..., C
xc?(n),c=1,...,C表示来自不同声源的语音信号,
y
(
n
)
=
∑
c
=
1
C
x
c
(
n
)
y(n)=\sum_{c=1}^{C}x_c(n)
y(n)=∑c=1C?xc?(n),其中n表示时间索引,不问主要关注C=2的情况。
大多数语音分离系统在时频域上解决语音分离问题,计算STFT时,窗函数为
w
(
n
)
w(n)
w(n),FFT长度为N,帧移位R:
X
^
c
(
t
,
f
)
\hat{X}_c(t, f)
X^c?(t,f)表示估计的STFT复数谱。
上述公式只有当每个输出层都与具有相似特征的训练目标相关联时才有效,否则可能存在标签置换问题。
2.2 Permutation Invariant Training
帧级PIT通过将目标说话人作为一个集合,而不是一个有序的列表,以此来解决排列问题,对于给定帧t的输出说话人配对问题定义为选取所有可能的说话人排列中损失函数最小的一种排序。 其中PSA(Phase-sentitive approximation)方法定义为: 公式6中,
θ
c
(
t
)
\theta_c(t)
θc?(t)索引了t时刻与输出c配对的说话人。
θ
(
t
)
\theta(t)
θ(t)包含了t时刻所有C个输出说话人对。tPIT训练目标将会遍历所有排列组合,从中选取损失函数最小的一个用于网络模型优化。
tPIT方法能够很好的实现帧级别语音分离,但由于其局部优化训练目标,输出层可能会在不同时间帧与不同的说话人绑定,并且正确的说话人排列可能会频繁交换。
3. Deep CASA approach to monaural speaker separation
simultaneous grouping: 通过一个基于tPIT的神经网络在在帧级分离不同说话者的频谱分量。 sequential grouping: steams frame-level estimates belonging to the same speaker.
3.1 Simultaneous Grouping Stage
3.1.1 Baseline System:
本文采用论文【27】中描述的tPIT的框架作为第一阶段系统的基线模型。模型输入为混合语音的STFT幅度谱,学习器选用BLSTM,采用公式6中提到的损失函数。最后将帧级谱估计送入第二阶段模型。
3.1.2 Alternative training targets for tPIT
复数理想比值掩码cIRM在复数STFT域中定义,具有实部和虚部。当应用于混合语音复数STFT上时,其能够完美地重建语音: 本文并未直接使用cIRM,而是提出了复数比值掩码来解决单通道语音分离问题,我们首先将混合语音的复数谱乘以估计的复数掩码
c
R
M
c
cRM_c
cRMc?来执行复数域重建: 之后将重建后的声源与纯净声源进行比较,构建训练目标: 其中,损失函数中的实部和虚部应用
l
1
l_1
l1?范数,本文将此训练目标称为complex approximation(CA)。
此外,本文还考虑了一种基于时域的训练目标SNR。该框架包含两个步骤:(1)我们根据最小帧级损失来组织所有帧级复数估计
X
^
c
\hat{X}_c
X^c?,以便每个输出
X
^
θ
c
(
t
)
\hat{X}_{\theta_c(t)}
X^θc?(t)?。帧级损失可以在三种不同的域进行定义,分别为复数STFT,STFT幅度谱以及时域,经过比较,复数STFT损失性能稍好于其它两种。(2)通过逆傅里叶变换得到时域估计,并计算语句级SNR。
3.1.3 Convolutional neural networks for simultaneous grouping
受到DenseNet和UNet网络在音乐源分离中取得成功的启发,本文提出了Dense-UNet架构,作为第二阶段的网络模型。 Dense-UNet模型架构如图2所示,该模型基于UNet架构,包含一系列卷积层,下采样层和上采样层。网络的前半部分提取语句级STFT特征图的高级特征,卷积层核下采样层交替使用,允许网络对large T-F上下文进行建模。网络的后半部分将特征恢复到原始分辨率。实验中,我们使用步长为2x2的depthwise卷积层作为下采样层。
本文使用densely-connected 卷积块(DenseNet)代替原始UNet中的卷积层,DenseNet的基本思想是将一个具有许多通道的卷积层分解为一系列具有较少通道的密集连接的卷积层,网络层以前馈的方式进行连接。 其中
z
0
z_0
z0?表示输入特征图,
z
l
z_l
zl?表示第l层的输出,
[
.
.
.
]
[...]
[...]表示concatenation操作,
H
l
H_l
Hl?表示第l个卷积层,后接ELU(expoenetial linear unit)激活层和层归一化层。dense block中的所有输出层
z
l
z_l
zl?拥有相同的通道数,表示为K。每个dense block的层数用L表示。从图2中可以看出,网络模型包含9个dense blocks以及4个上采样层和4个下采样层。最后一个dense block之后,我们使用一个1x1卷积层重组特征图,然后输出两个掩码。
在语音的听觉表征中,出现在不同频段的模式通常是不同的,使用通用CNN内核可能会导致不同频率的输出不一致。本文提出了一个频率映射层,基本思想是使用全连接层将不一致的频率输出投影到organized space。我们将每个dense block的一个CNN层替换为频率映射层。每个频率映射层的输入为卷积层的concatenation: 其中
K
′
K'
K′表示输入通道数,
z
l
0
z^0_l
zl0?输入到一个1x1卷积层(后接ELU和层归一化),将通道数减少到K,其输出表示为 之后交换F和K维度,得到: 之后将其输入到一个1x1卷积层(后接ELU和层归一化)中,得到输出: 该层也可以看做一个按频率的全连接层,其将所有频率估计值作为输入,并在不同的空间中重新进行组织。最后将上式的K和F维度进行交换,得到频率映射层的输出:
3.2 Sequential Grouping Stage
3.2.1 Baseline System
在这个阶段,本文使用聚类网络对帧级频谱估计进行跨时间分组,这对应于CASA中的sequential grouping。在基于深度聚类的语音分离中,由BLSTM估计的T-F级embedding向量被聚类到不同的说话人,本文将此框架扩展到帧级说话人跟踪。 该系统的输入为:混合语音的频谱和两个谱估计(包含STFT的实部、虚部和幅度值)。神经网络NN将帧级输入映射到一个D维的embedding向量
V
(
t
)
∈
R
D
V(t) \in R^D
V(t)∈RD。目标标签是一个二维指示向量,用A(t)表示。训练tPIT期间,如果当
X
^
1
(
t
)
\hat{X}_1(t)
X^1?(t)与说话人1配对,
X
^
2
(
t
)
\hat{X}_2(t)
X^2?(t)与说话人2配对时得到最小损失,那么将A(t)设置为[1 0],否则设置为[0 1],即A(t)表示每一帧的最优输出排列。V(t)和A(t)可以reshape为
T
×
D
和
T
×
2
T \times D和T \times 2
T×D和T×2大小的矩阵V和A。因此可以定义与排列无关的目标函数如下: 其中
∣
∣
?
∣
∣
F
||\cdot||_F
∣∣?∣∣F?表示Frobenius norm。
因为我们更关注两个输出明显不同的真的说话人排列,因此训练时引入权重: 其中LD(t)表示两种可能的说话人排列之间的帧级损失差异。如果两个条件都满足,则LD(t)值的会较大:(1)混合语音的帧级能量高(2)两个帧级输出差异明显,以至于不同说话人排列的损失显著不同。
w
(
t
)
w(t)
w(t)可以构建对角矩阵
W
=
d
i
a
g
(
w
(
t
)
)
W = diag(w(t))
W=diag(w(t)),因此最终的权重目标函数为: 在推理过程中,首先应用K-means算法将V(t)聚类为两个组,然后我们根据其K-means标签组织帧级输出。最后,采用iSTFT将复数输出转换到时域。
3.2.2 Temporal Convolutional Networks for Sequential Grouping
TCNs中,一系列dilated卷积层组合在一起形成深度网络,形成长时记忆。在本文研究中,我们应用的TCN类似Conv-TasNet。 在本文提出的TCN中,输入特征首先进入一个2-D dense卷积块,一个1x1卷积层核一个层归一化模块,以进行帧级特征预处理。之后将特征数据输入一系列dilated卷积块,膨胀系数指数增加: 该M层的dilated卷积层重复进行3次,以进一步增加感受野。最后,输出会输入进一个1x1的卷积层进行embedding估计。
在每个膨胀卷积块中,拥有B个通道的bottleneck 输入
T
0
∈
R
T
×
B
T_0 \in R^{T \times B}
T0?∈RT×B首先经过一个1x1卷积层,后接PReLU激活和层归一化模块,将通道数扩展到H,得到
I
1
∈
R
T
×
H
I_1 \in R^{T \times H}
I1?∈RT×H。之后使用核大小为
S
∈
R
T
×
H
S \in R^{T \times H}
S∈RT×H的depthwise膨胀卷积层(包含PReLU和层归一化)来捕获时序依赖。数字3表示每个通道上的时间过滤器的大小,内核中共有H个深度可分离滤波器。之后再通过一个1x1卷积层,将通道数映射回B。最后,通过残差连接将
I
0
和
I
3
I_0和I_3
I0?和I3?连接起来作为最后的输出。
为了防止过拟合,本文提出了新的dropout策略,名为dropDilation,其在深度可分离卷积层中以(1-p)的概率进行dropout。具体实现为,使用一个二值掩码: 与深度可分离卷积的每个核
S
∈
R
3
×
H
S \in R^{3 \times H}
S∈R3×H进行相乘,其中
m
?
d
和
m
d
m_{-d}和m_d
m?d?和md?服从伯努利分布Bernoulli§。
|