文献:X. Fang, L. Zou, J. Li, L. Sun, and Z. Ling, “Channel Adversarial Training for Cross-channel Text-independent Speaker Recognition,” in Proceedings of 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2019, pp. 6221–6225, doi: 10.1109/ICASSP.2019.8682327.
大学:中科科学院大学
公司:科大讯飞
目的:研究跨信道的文本无关说话人识别,换句话说,channel-mismatched speaker recognition。
数据与方法:提出了信道对抗训练的方法,CAT,一种领域对抗训练。语料包含 2 个训练集、1 个验证集和 1 个评估数据,涉及两种信道,即 Speex 与 SILK 软件,测试数据的人数超过 5 万。
结果:相比较 CNN 方法,CAT 提升了 22.6 % Top 1 召回率;CAT 在 Top 10 召回率上高达 85 %。
结论:领域判别子网络为 CAT 在超大规模说话人数量的实验中贡献显著的性能提升效果。
在智能手机和移动设备的流行趋势下,说话人识别(或声纹识别)因其非接触与价格低的优势越来越受关注。由于私人语音存储设备与传输协议存在差异,使得跨信道的说话人识别变得重要。
信道不同,可以理解为不同语音编解码器(speech codecs)或者软件。不同信道造成说话人识别的信道不匹配问题,严重损害了识别性能。
以往基于 i-vector 与基于 CNN 的信道补偿技术仍然无法解决跨信道的说话人嵌入学习问题。于是,X. Fang 提出了一种基于 CNN 的领域对抗训练方法,CAT,来学习信道不变的、说话人可区分的语音表示(channel-invariant and speaker-discriminative speech representations)。
从结构上看,CAT 比 CNN 模型增加了基于全链接层的信道判别器子网络和基于 LSTM 的生成器子网络。
CAT 采用上图的网络结构,主要包含 1 个生成器子网络 G、1 个说话人分类判别器子网络 D1 和 1 个信道判别子网络 D2:
CAT 以最小化说话人标签预测损失和最大化信道分类损失为目标,分别优化说话人分类判别器和信道判别器,其损失函数分别为:
D1 损失函数:
L D 1 ( θ G , θ D 1 ) = L S + α L T = − ∑ i = 1 M log exp ( W y i T x i + b y i ) ∑ j = 1 N exp ( W j T x i + b j ) ⏟ softmax + α ∑ i = 1 M max ( 0 , cos ( x i , x n ) + δ − cos ( x i , x p ) ) ⏟ triplet \begin{aligned} L_{D1}(\theta_G,\theta_{D1}) &= L_S+\alpha L_T \\ &= \underbrace{-\sum\limits_{i=1}^M\log{\frac{\exp(W_{y_i}^Tx^i+b_{y_i})}{\sum_{j=1}^N\exp(W_j^Tx^i+b_j)}}}_\text{softmax} + \alpha\underbrace{\sum\limits_{i=1}^M\max\left(0,\cos\left(x^i,x^n\right)+\delta-\cos\left(x^i,x^p\right)\right)}_\text{triplet} \end{aligned} LD1(θG,θD1)=LS+αLT=softmax −i=1∑Mlog∑j=1Nexp(WjTxi+bj)exp(WyiTxi+byi)+αtriplet i=1∑Mmax(0,cos(xi,xn)+δ−cos(xi,xp))
包含 softmax 损失和 triplet 损失两部分, α \alpha α 用去权衡两个损失的权重,论文中 α = 1 \alpha=1 α=1, M M M 表示小批量的规模, N N N 表示说话人的数量,论文中的 N N N 超过 10,000。
在 softmax 损失部分, x i x^i xi 表示第 i i i 个说话人嵌入,其标签为 y i y_i yi, W j W_j Wj 表示权重矩阵 W W W 的第 j j j 列, b j b_j bj 是相对位置的偏差项。
在 triplet 损失部分, x i , x n , x p x^i, x^n, x^p xi,xn,xp 分别是 triplet 的锚嵌入、负嵌入和正嵌入, ( x i , x p ) (x^i,x^p) (xi,xp) 表示相同的说话人标签, ( x i , x n ) (x^i,x^n) (xi,xn) 表示不同的说话人, δ \delta δ 表示相同说话人的间距小于不同说话人的间距的允许量。
D2 损失函数:
L D 2 ( θ G , θ D 1 ) = L S = − ∑ i = 1 M log exp ( W d i T x i + b d i ) ∑ j = 1 K exp ( W j T x i + b j ) ⏞ softmax \begin{aligned} L_{D2}(\theta_G,\theta_{D1}) &= L_S\\ &= \overset{\text{softmax}}{\overbrace{-\sum\limits_{i=1}^M\log{\frac{\exp(W_{d_i}^Tx^i+b_{d_i})}{\sum_{j=1}^K\exp(W_j^Tx^i+b_j)}}}} \end{aligned} LD2(θG,θD1)=LS=−i=1∑Mlog∑j=1Kexp(WjTxi+bj)exp(WdiTxi+bdi) softmax
M M M 与 K K K 分别是小批量数量和通道数量,论文中 K = 2 K=2 K=2,因此 d i = [ 0 , 1 ] or [ 1 , 0 ] d_i=[0,1] \text{ or } [1,0] di=[0,1] or [1,0]
CAT 参数优化采用随机梯度下降(SGD),分为两个阶段,分别是生成器与判别器D1、判别器D2:
θ ^ G , θ ^ D 1 = arg max θ G , θ D 1 E ( θ G , θ D 1 , θ ^ D 2 ) \hat{\theta}_G,\hat{\theta}_{D1}=\underset{\theta_G,\theta_{D1}}{\arg\max}E(\theta_G,\theta_{D1},\hat{\theta}_{D2}) θ^G,θ^D1=θG,θD1argmaxE(θG,θD1,θ^D2)
θ G = θ G − l ⋅ ( ∂ L D 1 ∂ θ G − β ∂ L D 2 ∂ θ G ) θ D 1 = θ D 1 − l ⋅ ∂ L D 1 ∂ θ D 1 \begin{aligned} \theta_G &= \theta_G-l\cdot\left(\frac{\partial L_{D1}}{\partial \theta_G}-\beta\frac{\partial L_{D2}}{\partial \theta_G}\right)\\ \theta_{D1} &= \theta_{D1}-l\cdot\frac{\partial L_{D1}}{\partial \theta_{D1}} \end{aligned} θGθD1=θG−l⋅(∂θG∂LD1−β∂θG∂LD2)=θD1−l⋅∂θD1∂LD1
β \beta β 用于权衡两个判别器(说话人与信道),用于生成器(共享网络)的参数优化, l l l 是学习速率,论文中 l = 0.2 l=0.2 l=0.2。
θ ^ D 2 = arg max θ D 2 E ( θ ^ G , θ ^ D 1 , θ D 2 ) \hat{\theta}_{D2}=\underset{\theta_{D2}}{\arg\max}E(\hat{\theta}_G,\hat{\theta}_{D1},\theta_{D2}) θ^D2=θD2argmaxE(θ^G,θ^D1,θD2)
θ D 2 = θ D 2 − l ⋅ ∂ L D 2 ∂ θ D 2 \theta_{D2} = \theta_{D2}-l\cdot\frac{\partial L_{D2}}{\partial \theta_{D2}} θD2=θD2−l⋅∂θD2∂LD2
上述的内容描述了模型构建与训练过程。此外,论文还有一些与识别想过相关的细节:
语音时长,如果比训练的语音分段的时长短,则进行 pad 一些帧;否则,将较长的语音以滑窗的方式无覆盖地分割为多个短语音分段。
平均池化后的特征进行 L2 归一化,之后的特征作为说话人嵌入。
CNN 提取说话人嵌入,cosine 计算得分。
语料包含 4 个部分,分别是 2 个信道的训练集,1 个 22 人的验证集和 1 个 54133 的测试集。具体如下:
训练集1,Speex软件,37557人,60段语音/人,每段时长平均 8 s;
训练集2,SILK软件,38046人,30段语音/人,每段时长平均 12 s;
验证集:用于调整参数,其它的22人,注册数据使用SILK软件,1 段语音/人;测试数据使用 Speex软件,25段语音/人;target trials 550 (22人 * 25段),impostor trials 11550 (22人 * (21人 * 25段));
测试集:其它段 54133 人,注册数据使用SILK软件,10段语音/人;测试数据使用 Speex 软件,使用54133 人中的 100 人,共采样 246 段;target trials 246 (段),impostor trials 13316472 (246段 * 54132 人)。
与 CAT 对比的算法有 2 个,分别是基于 i-vector 与 CNN 的方法:
模型/语料 | 训练集1 | 训练集2 |
---|---|---|
i-vector 提取器 | Yes | Yes |
CNN | Yes | Yes |
CAT | Yes | Yes |
评价指标:验证集上使用等误差率 EER,测试集上使用 Top N 召回率, N N N 一般取 1 , 5 , 10 1, 5, 10 1,5,10:
KaTeX parse error: Expected '}', got '#' at position 34: …l}=\frac{\text{#̲ successful rec…
系统 | i-vector | CNN | CAT without D2 | CAT |
---|---|---|---|---|
EER(%) | 8.8 | 6.2 | 6.4 | 5.8 |
系统 | Top1 | Top5 | Top10 |
---|---|---|---|
i-vector | 57.3 | 66.3 | 70.3 |
CNN | 69.5 | 77.6 | 80.1 |
CAT without D2 | 69.1 | 78.0 | 80.1 |
CAT | 76.4 | 83.3 | 85.0 |
作者:王瑞 同济大学 计算机系博士研究生
CSDN:https://blog.csdn.net/i_love_home
Github:https://github.com/mechanicalsea