ASV自适应文献记录
# Introduction
目前需要做的是语种失配,因为对于一个说话人,基本是在同一录制环境下得到的语音数据,也就意味着无法进行:远近场、噪声等域适应问题;
将来希望可以将域适应拓展到重放攻击防御,顺便看些文章;
关键词:pairwise identity verification,contrastive learning
# Feature-based
主要涉及Correlation Alignment(CORAL),Maximum-Likelihood Linear Transformation(MLLT),LDA
# Speaker Verification in Mismatched Conditions with Frustratingly Easy Domain Adaptation[2018]
- 将CORAL引入至Speaker Verification领域
- 本文直接在说话人embedding上做域适应
- CORAL通过无监督的方式使得域内外的特征分布尽可能一致
- 线性变换A 可以分解为2个部分,对OOD进行白化+重上色
- 用改进后的特征训练PLDA模型的同时,对PLDA模型参数做自适应,并不能有好的效果,本文认为是没有修改模型自适应算法中的参数(那你修改一下再做实验不行吗?)
# THE CORAL+ ALGORITHM FOR UNSUPERVISED DOMAIN ADAPTATION OF PLDA[2020]
- 从一小部分无标签的域内数据自适应PLDA模型
- 源于基于特征的CORAL,本文基于模型做修改
- CORAL+ = CORAL + 协方差规整 + 线性插值,基于CORAL添加额外的自适应参数和规整项
- The assumption is that the unseen data follow the same distribution as given by the within and between classes covariance matrices derived from the training set (i.e., the dataset we used to train the PLDA).【似然比的分子中,隐藏了:未见数据与训练数据的分布一致】
- 在正态分布的数据上进行线性变换等价于在其密度函数上的均值向量和协方差矩阵做变换【线性高斯的特性】,即CORAL可以从修改数据向量转为对类间、类内、总协方差的变换
- The second term on the right-hand-side of the equations represents the new information seen in the in-domain data to be added to the PLDA model.
- The central idea of domain adaptation is to propagate the uncertainty seen in the in-domain data to the PLDA model.The adaptation equations in (8), do not guarantee that the variances, and therefore the uncertainty, increase.【并不能保证方差是增加的】
- In this section, we achieve this goal in the transform space where both the OOD and pseudo-in-domain matrices are simultaneously diagonalized.【域外及转变后的域外矩阵进行合同对角化】
- Let BB be an orthogonal matrix such that B^T\Phi B = IB**TΦB=I andB^T(A^T\Phi A)B = EB**T(A**TΦA)B=E, where E is a diagonal matrix. This procedure is referred to as simultaneous diagonalization.The transformation matrix BB is obtained by performing twice the eigenvalue decomposition (EVD) on the matrix \PhiΦ and then A^T\Phi AA**TΦA after the first transformation has been applied.【合同对角化的定义】
- Notice that the term (E - I)(E−I) will ends up with negative variances if any diagonal elements of EE is less than one.【以防负值出现,进行max操作,确保方差是增加的】
# A GENERALIZED FRAMEWORK FOR DOMAIN ADAPTATION OF PLDA IN SPEAKER RECOGNITION[2020]
- 用线性插值框架表示几种域适应方法
- 提出基于相关对齐的插值技术
- 提出协方差规整技术
- Simple linear modeling, however, which implicitly assumes small differences between OOD and InD data, is not always feasible in real-world situations. Further, if interpolation weights are not appropriately determined, performance may seriously deteriorate.
- 规整函数:用于保证方差和不确定性是增加的
- Three main factors are (1) interpolations of covariance matrices, (2) cor relation alignment, and (3) covariance regularization.
![img](https://gitee.com/zhouwenjun2020/blog_pictures/raw/master/20210301094118.png)
- $\Phi_0$ is the covariance matrix of a base PLDA from which a new PLDA is adapted;
- $\Phi_1$ is the covariance matrixo f a developer PLDA that is supposed to have some properties that are the same as or similar to the actual InD PLDA;
- $\Phi_2$ is the covariance matrix of a reference PLDA for comparison with the developer PLDA covariance matrix.
# An investigation of domain adaptation in speaker embedding space for speaker recognition[2021]
- 提出了带自适应的判别分析法:discriminant analysis with support vectors(SVDA),对iVector有较好的效果;Kaldi APLDA对xVector及tVector有较好的效果
- 对后端域失配补偿技术进行了全面的研究,强调了每种技术各自的贡献以及与其他技术相结合的贡献
- 将未标签的数据用于分数规整和融合
- 性能评估的补偿,系统考察了:去均值化,SVDA,LDA,PLDA,得分规整,得分归一化,分数融合这几步
- Therefore, it would be difficult to draw a conclusion on how effective front-end level domain adaptation might be, considering the fact that available in-domain data for SRE tasks is very limited.【前端改进很有限,专注于后端改进】
- We specifically perform domain adaptation at the back-end level, as (i) in-domain data is very limited to be applied in the speaker embedding extraction phase, (ii) unlabeled in-domain data can be risky for integration into the front-end level processing.【在后端进行补偿的原因】
- LDA是监督算法,如果做域适应的时候需要使用LDA,就给InD数据添加伪标签,一般会先根据性别划分数据集,再用K-means无监督聚类得到伪标签
- 本文中,类内协方差更新因子大些,类外协方差更新因子小些
- 均值调整起到了很大的作用;非监督比监督有效;分数规整时使用伪标签比较好;数据增强不会带来更好的效果;伪标签比真实标签性能更好
- Kaldi APLDA对iVector没什么效果,只对xVector和tVector有益,这是因为后者使用了数据增强技术,而前者只用纯净语音进行训练
# [×]ADAPTATION OF PLDA FOR MULTI-SOURCE TEXT-INDEPENDENT SPEAKER VERIFICATION[2017]
- 对说话人隐因子进行处理
# Maximum-Likelihood Linear Transformation for Unsupervised Domain Adaptation in Speaker Verification[2018]
- 非监督训练。首先,用OOD数据训练得到GMM模型;其次,用InD数据更新GMM均值参数;用“旋转、平移、伸缩”将OOD转到InD域
- 基于图像处理任务中用于寻找对齐两个不同点集的空间变换的技术C++ implementation of the Coherent Point Drift point set registration algorithm. (github.com) (opens new window)【Point set registration: Coherent point drift】
- 不同点:
- 增加了GMM的质心数
- 没有额外添加一个正太分布的高斯用于表示噪声
- 没有限制GMM各组件有相同的概率
- 将质心拟合到InD GMM随机实现的数据点中
- 公式推导太复杂,看不懂
# DOMAIN ADAPTATION USING MAXIMUM LIKELIHOOD LINEAR TRANSFORMATION FOR PLDA-BASED SPEAKER VERIFICATION[2016]
- 优化PLDA参数的同时,找到两个域之间的变换矩阵
- 需要同时估计PLDA参数(两个协方差矩阵)和线性转换参数(权重和偏移)
- 同时估计很困难,提出了分步走的思想,先更新PLDA参数,再更新MLLT参数
# Modelling and compensation for language mismatch in speaker verification[2018]
- 主要贡献:
- 加入少量多语种数据到PLDA会带来性能提升【带标签】
- 用Within-Class Covariance Correction (WCC)计算了加入到PLDA中的代表多语种数据分布的本征方向,并融合到LDA中去
- 提出Locally Weighted Linear Discriminant Analysis (LWLDA),并与Nearest Neighbor Non-Parametric Discriminant Analysis (NDA)作比较,不仅识别结果好,计算效率也高
- 多语种数据如何添加?
- 保证说话人数和音频数不再增加,即每个人有多语种语料,替换原有语料【不现实】
- 除了加在训练PLDA之前,也可以直接在原始语料中直接添加,但不如前者好
- Mahalanobis distance用于评估点到分布的距离,本文用它评估多语种分布比单语种分布强
- 回顾了LDA是如何选出本征方向的,由于多语种是在单个说话人内的,因此在类内散度矩阵中,加入between-language covariance,当然有个因子用于调节权重
- 本文选择了25种语言,多数语言有150 utts,多余的部分就随机采样,特别少的语言就直接取消训练
- 与WCCN的区别
- WCCN通过修改SVM中的线性核来最小化说话人的会话间差异,通过类内协方差矩阵的逆来归一化
- WCC计算语种相关的协方差,并加入到类内散度矩阵中
- 提出LWLDA,以弥补LDA以下的缺陷:
- 假设类间和类内散度矩阵是高斯分布
- 本征方向只能有nspk-1个
- 类间散度矩阵是基于均值计算的,类差异信息没有完全捕捉,限制了算法的分类能力
- Nearest Neighbor Discriminant Analysis (NDA)通过局部类内外散度矩阵修正了上述缺点3
- 不同于NDA,LWLDA对说话人内的iVector进行加权。构造一个权重矩阵,每个元素介于[0, 1]。iVector越接近,元素值越大,反之亦然;如果不是同一个说话人,就不加权。
- 构建weight/affinity matrix H(略)
- 将LDA改写为pairwise格式,得到新形式下的类内外散度矩阵(见附录)
- 将LDA中的参数W换为H
# PLDA-based
# [×]SUPERVISED DOMAIN ADAPTATION FOR I-VECTOR BASED SPEAKER RECOGNITION[2014]
- 考量了不同信道、近远场的域适应问题
- 提出了计算自适应优化量的函数
- 长度归一化用于使得iVector高斯化,分为2步:1)基于训练集的均值和协方差进行中心化和白化;2)投影到单位球上
- 比较了4种方法:全秩贝叶斯自适应;估计MAP自适应;似然值加权;PLDA参数插值
- 结论:对类内外协方差进行自适应效果最好
- 域内数据越多,自适应因子越大
# [×]Unsupervised Adaptation of SPLDA[2015]
- Johns Hopkins University团队
- present a Variational Bayes solution to adapt a SPLDA
- 太硬核了,全是公式推导
# Neural-based
主要包括ADA(Adversarial Domain Adaptation),CycleGAN,Siamese Network
# [×]DEAAN: DISENTANGLED EMBEDDING AND ADVERSARIAL ADAPTATION NETWORK FOR ROBUST SPEAKER REPRESENTATION LEARNING[2021]
- 提取出特征中说话人相关和域相关的部分,只对说话人相关部分做域适应
- 本文认为,对于原始信号或者embedding做变换通常需要parallel或者人造数据,这在现实场景是不可能的
- 先前是自适应和embedding解耦是分开的,本文将两部分做结合
- 模型过于复杂,不想看
# UNSUPERVISED DOMAIN ADAPTATION VIA DOMAIN ADVERSARIAL TRAINING FOR SPEAKER RECOGNITION[2018]
通过DAT(domain adversarial training),用GRL(gradient reversal layer)移除域差异,将数据投影到子空间中
训练1个特征提取器(提取域不变和说话人鉴别信息),1个说话人分类器(监督学习),1个域判别器(非监督学习),域判别器的loss会传播到前面的特征提取器,所以加个GRL层进行反转
特征选择使用特征提取器中第一个隐藏层得到的输出【为什么是第一层?】
# Cross-Lingual Text-Independent Speaker Verification Using Unsupervised Adversarial Discriminative Domain Adaptation(ADDA)[2019]
学习从target到source的对称映射
不用假设target与source具有相似的数据分布【这个有何影响?】
DANN(Domain Adversarial Neural Network)中,特征提取用的是联合网络【与孪生网络有什么区别?】,用随机梯度下降法训练
ADDA训练2个单独的特征提取器,因为考虑到可能两个域的差异较大,共用提取器不太好
所谓的映射是什么呢?本文是从xvector到embedding的映射,好无聊!
一共有3个目标函数,首先是分类器的训练:
$$\begin{array}{l} \min {M{s}, \mathcal{C}} \mathcal{L}{c l s}\left(\mathbf{X}{s}, Y_{s}\right)= \ \quad-\mathbb{E}{\left(\mathbf{x}{s}, y_{s}\right) \sim\left(\mathbf{X}{s}, Y{s}\right)} \sum_{k=1}^{K} \mathbb{1}{\left[k=y{s}\right]} \log \mathcal{C}\left(M_{s}\left(\mathbf{x}_{s}\right)\right) \end{array}$$
其次是域判别器的训练:
$$\begin{array}{l} \min {D} \mathcal{L}{a d v_{D}}\left(\mathbf{X}{s}, \mathbf{X}{t}, M_{s}, M_{t}\right)= \ -\mathbb{E}{\mathbf{x}{s} \sim \mathbf{X}{s}}\left[\log \mathcal{D}\left(M{s}\left(\mathbf{x}{s}\right)\right)\right]-\mathbb{E}{\mathbf{x}{t} \sim \mathbf{X}{t}}\left[\log \left(1-\mathcal{D}\left(M_{t}\left(\mathbf{x}_{t}\right)\right)\right)\right] \end{array}$$
最后是映射的训练:
$$\min {M{s}, M_{t}} \mathcal{L}{a d v{M}}\left(\mathbf{X}{s}, \mathbf{X}{t}, \mathcal{D}\right)=-\mathbb{E}{\mathbf{x}{t} \sim \mathbf{X}{t}}\left[\log \mathcal{D}\left(M{t}\left(\mathbf{x}_{t}\right)\right)\right]$$
训练分为2步:
- 训练具有鉴别能力的源分类模型,3层DNN,输入为xvector,通过分类损失优化分类器和源映射
- 固定源映射,通过域判别器损失和映射损失训练目标映射
用Normalized Mutual Information (NMI,27)衡量K-means聚类效果
# 🛠️Contrastive Adversarial Domain Adaptation Networks for Speaker Recognition[2020]
项目地址:https://github.com/lkqllx/CADAN
本文处理性别、噪声失配问题
不同于传统的DAN,本文将特征提取器分为2个分支,一部分在域不变空间中最大化类信息,另一部分最小化域信息
弱化分类器的能力,迫使特征提取器得到更多类相关的特征
传统的DAT将网络分为3个部分:特征提取器;标签预测;域判别器
DAT训练时,特征提取器与标签预测器通过最小化交叉熵错误同时训练;特征提取器也与域判别器通过最大化域判别损失同时训练,前者最小化,后者最大化,此为Adversarial Learning
由于特征提取器需要与两个对立的任务一起训练,而标签预测器与域判别器是迭代训练的,所以本文将特征提取器的隐藏层拆分为2部分
本文还改进了标签预测器的损失函数,DAN中是交叉熵(one hot),本文直接使用后验概率,损失函数变得宽松,有利于特征提取器学习更鲁棒的信息,因此,标签预测器改名标签预测器
⭐用t-SNE查看了CADAN及DAN的分类能力,还有CADAN不同训练阶段的分类能力
网络结构:
- 特征提取器:3个隐藏层,每层有1200个ReLU,第二个隐藏层分为两个部分,其中800个ReLU给类别编码器,400个给域编码器,这是因为说话人信息更丰富;输入和输出节点均为500个
- 标签预测器:2个隐藏层,每层有500个ReLU,输出节点为nspk个
# Cross-Domain Speaker Recognition using Cycle-Consistent Adversarial Networks[2019]
- 将CycleGAN应用于说话人识别,比较了4种CycleGAN:传统CycleGAN,加上Identity loss的Cycle GAN,Wasserstein GAN,应用GRL的Cycle GAN
# Deep Feature CycleGANs: Speaker Identity Preserving Non-parallel Microphone-Telephone Domain Adaptation for Speaker Verification[2021]
- Johns Hopkins University团队
- 信道失配:麦克风到电话
- 本文主要贡献:
- 首次将Cycle GAN用于信道失配
- 将Cycle GAN各组件重新调整,以适应deep feature space
- 加入特征鉴别器Deep Feature Discriminator (DFD)
- 如何得到deep feature space?将特征提取器多层输出进行变换合并,维数变为5维
# CYCLE-GANS FOR DOMAIN ADAPTATION OF ACOUSTIC FEATURES FOR SPEAKER RECOGNITION[2019]
Johns Hopkins University团队
提出3种Cycle GAN模型,都是基于生成器G进行修改,G由两部分组成:降采样和上采样
# LOW-RESOURCE DOMAIN ADAPTATION FOR SPEAKER RECOGNITION USING CYCLE-GANS[2019]
- Johns Hopkins University团队
- 向目标域数据种加噪可以提升效果,因为两个域的样本量不匹配,而Cycle GAN一般是需要匹配的
# 🛠️SIAMESE X-VECTOR RECONSTRUCTION FOR DOMAIN ADAPTED SPEAKER RECOGNITION[2020]
- 考察了3种域失配:noise;sample rate;telephone
- Kaldi中xvector模型:8K由4K左右说话人训练;16K由7K左右的VoxCeleb2训练
- 直接对xvector做修改,而不是原始信号
- 构造一个网络,输入与输出是同维的,输入的是低质量xvector,输出的是改进版本,训练准则:使得同一个说话人的两句话比来自不同说话人更相似【好拗口】;比如带噪语音转变为降噪语音
- 用两个完全相同,权重共享的DNN作为孪生网络,网络输出用cosine相似度计算,同一说话人标签为1,反之为0
- 损失函数 = 2个重建误差 + 余弦相似度误差
- DNN是3层全连接网络
# Cross-domain speaker recognition using domain adversarial siamese network with a domain discriminator[2020]
处理的是注册集与验证集之间的不平衡
2个优点:1)对未知域鲁棒;2)对不平衡数据鲁棒
- 未知域鲁棒:不是对齐两个已知域的分布,而是找到两个域的公共部分,即域不变信息
- 对不平衡数据鲁棒:只需要知道是否来自same domain,不用知道来自哪个domain
先进行说话人分类训练,再加入域判别器训练,domain loss为Contrastive loss(对比损失);两个输入特征来自于同一个说话人
$L=L_{\mathrm{s}}-\lambda L_{\mathrm{d}}$,对比损失可以增大类间差异,减小类内差异,这里让对比损失越大越好,使得无法区分两个不同的域
特征提取器包括一个隐藏层和一个embedding层,均为全连接层,每层节点数与输入维数一致,sigmoid是激活函数,batch-norm和dropout也被应用
# 🛠️MTGAN: Speaker Verification through Multitasking Triplet Generative Adversarial Networks[2018]
![](https://i.loli.net/2021/07/14/jOiqrluY38ynv5N.png)
- 项目地址:https://github.com/zengchang233/MTGAN
- 4个损失函数:triplet loss+softmax loss+GAN-generator loss+GAN-discriminator loss,权重分别设为0.1,0.2,0.2,0.5
- 三元组采样策略:只要一个epoch中的人数足够多,传统的几个采样方法都差不多能用
# Pseudo label/Cluster
# UNSUPERVISED DOMAIN ADAPTATION FOR I-VECTOR SPEAKER RECOGNITION[2014]
- Johns Hopkins University
- 给定OOD PLDA,用它聚类InD未标签数据,并以此数据更新PLDA参数
- 给出2种分层聚类方式(AHC i-vector averaging,AHC score averaging),2种确定聚类数目方法(计算边缘概率,非监督校准)
- 边缘概率计算复杂,本文使用隐变量积分,对模型参数进行最大似然估计,得到近似的边缘概率
- 虽然是unlabeled,但是本文还是设计了方法对未标签的InD数据estimate labels,后续处理还是监督法
- That is, starting with each i-vector as a separate cluster, at every step, we merge the two clusters that are closer based on a predefined metric. This merging schedule defines a path over the space of partitions and a final clustering is obtained based on a stopping criterion.
- However, (1) assumes that all the i- vectors within a cluster, D, are conditionally independent given their common latent speaker variable h. This assumption is not consistent with most real data, and in practice, (1) is evaluated by averaging the i-vectors within each cluster D and pretending that there is only one i-vector per cluster.【得分似然比假设:对于一个spk,给定了隐因子h,则其iVectors是相互独立的,但事实并非如此;且对iVectors做平均,处理成1spk对应1iVector】
- 计算PLDA的边缘概率是没有闭式解的,因为同时对隐变量和模型参数进行积分是很难的。所以,通常只对隐变量进行积分,然后使用最大似然去估计类内及类外协方差。但由于最大似然是点估计,容易造成过拟合,所以又通常用变分近似计算边缘概率,计算量很大。
- Alternatively, to estimate the number of clusters, we can define a threshold and stop the merging process when the similarity between the clusters to be merged goes below the threshold.【当聚类融合后的相似度反而降低时,停止聚类】
延伸阅读:
- In [3], following a Bayesian approach, clustering was cast as a model selection problem.【2Cov模型】
- [9,10]得分似然比分子分母中的方差可用类内和类外协方差表示
# An Iterative Framework for Unsupervised Learning in the PLDA based Speaker Verification[2014]
- 迭代循环聚类的思想很不错
- 使用一种聚类方法(AP,将一对向量的相似度作为输入)生成标签
- 用PLDA的打分结果更新AP的相似度输入
# IMPROVING SPEAKER RECOGNITION PERFORMANCE IN THE DOMAIN ADAPTATION CHALLENGE USING DEEP NEURAL NETWORKS[2014]
- Johns Hopkins University
- 层次聚类的其他文章:
- STC speaker recognition system for the NIST i-vector challenge
- Hierarchical speaker clustering methods for the NIST i-vector challenge
- Investigating state-of-the-art speaker verification in the case of unlabeled development data
- Incorporating duration information into i-vector-based speaker recognition systems
- 贪婪搜索+层次聚类:
- 初始化时,将每个iVector作为一类
- 停止准则:相似度到达某阈值
# 1:1特性研究
原先都是基于speaker classification进行embedding的优化,但speaker verification是1:1任务,会不会输入一对特征向量进行yes or no识别更好?
# Self-Supervised Learning Based Domain Adaptation for Robust Speaker Verification[2021]
- 自监督学习博客:Contrastive Self-Supervised Learning | Ankesh Anand (opens new window)
- 假设:从同一句话中采样得到的2个片段为同一个说话人,不同utt中采样的片段为nontarget pair
- 参照《In defence of metric learning for speaker recognition》,本文介绍了几种loss函数
- 先用source domain训练好的提取器初始化,再用contrastive learning loss进行自适应【问题是unlabeled如何自适应?】
- 这跟自监督有什么关系???或者说跟域适应没有直接联系,没有特别使用域信息
# ADVERSARIAL SPEAKER VERIFICATION[2019]
- 把DANN中的域分类器修改为环境判别器,环境影响包括了离散值因素(如环境类型)和连续值因素(SNR),所以分别用分类网络(计算条件后验)和回归网络进行训练
- 本文网络输入的是帧级特征,不是xvec
# 概念补充
🛠️何为不确定性?
《Machine Learning for Speaker Recognition》P97中指出:
- iVector提取过程中,完全忽略了语音长度的问题(即,任何长度的语音都会得到相同长度的iVector),iVector的估计准确度取决于输入的语音帧数,但现在,相当于所有iVector的准确度是一致的
- PLDA假设所有iVector的类内差异(由类内协方差表示)是一致的,但在实际场景中,短语音的类内差异是比长语音大的
但是,根据域适应文献的理解,这里所说的不确定性不是由语音时长引起的,而是数据分布。即不是尽可能准确地表示当前数据的分布,而是尽可能包含当前数据的分布。