CAM
CAM: CONTEXT-AWARE MASKING FOR ROBUST SPEAKER VERIFICATION
ICASSP 2021
摘要
In this paper, we propose contextaware masking (CAM), a novel method to extract robust speaker embedding. CAM enables the speaker embedding network to “focus” on the speaker of interest and “blur” unrelated noise. The threshold of masking is dynamically controlled by an auxiliary context embedding that captures speaker and noise characteristics.
- 提出了上下文感知隐蔽 CAM;
- 使网络聚焦在感兴趣的语音而模糊不相关的噪声;
引言
传统处理噪声的方法:
- 将去噪变化用于说话人嵌入;用统计后端或神经网络后端将噪声嵌入转换为增强的嵌入;存在信息丢失;
- 通过语音增强模型过滤噪声,并根据增强的特征提取鲁棒的说话人嵌入。
- 采用有监督训练,基于噪声-干净语音对 训练模型;是合成数据,不严格符合真实分布;
- 将 GANs 用于无监督语音增强;
- 文中提出语音增强的方法可能是多余的!!!
文中提出的方法:
First, the denoising step should be earlier than the aggregation step to avoid information loss. Second, we do not use a separate speech enhancement model to pre-process input features.
- 去噪早于聚合;
- 不使用语音增强;
两个贡献:
- 新的提取鲁棒的说话人嵌入;可以聚焦于感兴趣的语音段而模糊不相关的噪声,计算量比起语音增强大大减少;
- 提出了一个捕捉说话人和噪声特征的辅助上下文嵌入的思想;
方法
D-TDNN
模型使用 D-TDNN;可以参考 D-TDNN
Context-Aware Masking
上下文感知的隐蔽
主要关注 过渡和掩蔽;
若输入的声学特征为
x
\mathbf{x}
x,那么其经过某一特定隐含层的输出为:
g
(
F
(
x
)
)
g(\mathcal{F}(\mathbf{x}))
g(F(x))
其中
g
(
⋅
)
g(·)
g(⋅) 表示当前隐藏层的变换,
F
(
⋅
)
\mathcal{F}(·)
F(⋅) 表示所选隐藏层之前的变换;
在语音增强中:语音被增强后的特征为
x
~
\tilde{\mathbf{x}}
x~,那么其经过所选隐藏层的输出为:
g
(
F
(
x
~
)
)
g(\mathcal{F}(\tilde{\mathbf{x}}))
g(F(x~))
在这篇论文中,我们想要实现的就是一个类似语音增强的效果。需要找到一个
M
\mathrm{M}
M,使得其满足:
g
(
F
(
x
)
)
⊙
M
~
∝
g
(
F
(
x
~
)
)
,
g(\mathcal{F}(\mathbf{x}))\odot\tilde{\mathrm{M}}\propto g(\mathcal{F}(\tilde{\mathbf{x}})),
g(F(x))⊙M~∝g(F(x~)),
上图,图 b 展示了这一过程,即找到 M \mathrm{M} M 后做计算:
F
~
=
g
(
F
(
x
)
)
⊙
M
\tilde{\mathbf{F}}=g(\mathcal{F}(\mathbf{x}))\odot\mathbf{M}
F~=g(F(x))⊙M
而如何找打一个
M
\mathrm{M}
M,在上图,图 c 中给出了详细过程:
F
=
F
(
x
)
M
∗
t
=
σ
(
W
2
⊤
ω
(
W
1
⊤
F
∗
t
+
e
)
+
b
2
)
\begin{aligned}\mathbf{F}&=\mathcal{F}(\mathbf{x})\\\mathbf{M}_{*t}&=\sigma(\mathbf{W}_2^\top\omega(\mathbf{W}_1^\top\mathbf{F}_{*t}+\mathbf{e})+\mathbf{b}_2)\end{aligned}
FM∗t=F(x)=σ(W2⊤ω(W1⊤F∗t+e)+b2)
此处的
F
∗
t
F_{*t}
F∗t 是指特征图的时间帧,这是为了为每个时间帧赋予一定的权重,是注意力机制的体现;其中
e
e
e 是通过
A
S
P
ASP
ASP 池化层得到的;具体求法如下:
μ
=
1
T
∑
t
=
1
T
F
∗
t
,
σ
=
1
T
∑
t
=
1
T
F
∗
t
⊙
F
∗
t
−
μ
⊙
μ
,
\begin{aligned}&\boldsymbol{\mu}=\frac1T\sum_{t=1}^T\mathbf{F}_{*t},\\&\boldsymbol{\sigma}=\sqrt{\frac1T\sum_{t=1}^T\mathbf{F}_{*t}\odot\mathbf{F}_{*t}-\boldsymbol{\mu}\odot\boldsymbol{\mu}},\end{aligned}
μ=T1t=1∑TF∗t,σ=T1t=1∑TF∗t⊙F∗t−μ⊙μ,
e = W 3 ⊤ [ μ , σ ] + b 3 , \mathrm{e}=\mathrm{W}_3^\top[\mu,\sigma]+\mathrm{b}_3, e=W3⊤[μ,σ]+b3,
这样得到的 e e e 也蕴含了重要的帧和不重要的帧等重要信息;相加后可以让重要的帧更重要,不重要的帧更不重要
通过 CAM 措施(即上面阐述的方法)有利于在说话人确认任务中省略干扰说话人的语音和非语音噪声。
CAM can be applied multiple times to different layers. In our experiment, we apply it to the first position-wise FC layer in the vanilla TDNN and the transition layer in each block of D-TDNN. The context embedding size is half of the output size of the selected hidden layer.
CAM 可以用在不同的层上;
实验
数据集
训练:VoxCeleb2 5994 个说话人;
评估:Voxceleb1;分为三块:
其他
输入特征:每 10ms 25ms 窗口提取的 80 维 logMel 谱;
进行数据增强:加速;混响;加噪,时域或频域屏蔽;
梯度更新:SGD;
损失函数:AAM-Softmax;
结果
- CAM 比 ASP 更有优势;
- 固定阈值和动态阈值,固定阈值表示使用一个正态偏置 b 1 b_1 b1 来替代 e e e;
- 计算成本,可见比语音增强(SE)小得多;
CAM 可视化
- 上图显示了浅层和深层的掩码结果;阴影区域可以表示和说话人关系不大;
- 例如深层,即下面的图红框突出的阴影表示和说话人关系不大;阴影区域是和干扰说话人声音是对齐的;
- 浅层的 CAM 起到了不同的作用,例如背景音乐,非语音噪声等;