本文主要是介绍WangDeLiangReview2018 - (5.4)说话人分离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【WangDeLiangOverview2018】
Supervised Speech Separation Based on Deep Learning: An Overview
DeLiang Wang / Jitong Chen @ Ohio
IEEE/ACM Trans. ASLP2018
【目录】
1. 引入
2. 学习机器(learning machines)
3. 训练目标(training target)
4. 特征
5. 单声道分离
5.1 语音增强(speech separation)
5.2 语音增强的泛化
5.3 语音去混响 & 去噪(speech dereverberation & denoising)
5.4 说话人分离(speaker separation)
6. 多声道分离(阵列分离)
7. 更多内容
【正文】
说话人分离(speaker separation)的目标是,从一个包含2个or多个voice的mixture里提取多个语音信号,每个说话人(speaker)对应一个。在深度学习被证明能胜任语音增强之后,在类似的框架下,DNN已被成功应用在说话人分离中,如图12是2说话人分离,或者叫共信道分离(cochannel separation)。
Huang[81]是最早为此引入DNN的。他们的研究使用forward DNN和一个RNN来解决2说话人分离。作者说,在帧t时候,2个estimated sources的spectra,和
,的和,不保证能等于mixture的spectrum。因此,网络中加入masking layer,来产生2个输出:
这相当于3.1中介绍的training target:signal approximation。binary masking和ratio masking都被发现有效。除此之外,discriminative training被用于最大化一个说话人语音的和另一个人的语音的估计之间的差别。训练时,最小化如下cost:
实验表明masking layer和discriminative training都能提升说话人分离[82]。
几个月后,Du[38]独立提出了与[81]相似的用DNN做说话人分离。在他的研究中,DNN被训练来估计cochannel mixture中目标说话人的log power spectrum。在另一个文章[162]中,他们训练了一个DNN来映射一个cochannel信号到目标说话人(target speaker/talker)的spectrum以及干扰者(interfering speaker/interferer/interfering talker)的spectrum,如图12,[37]是一个延伸的版本。比起[81],一个值得提及的延伸是,这些文章还解决了一种情况,当只有目标说话人在训练和测试时候是相同的,而干扰者在训练和测试(testing)时候是不同的。
在说话人分离中,如果潜在的说话人从训练到测试时候不变,为说话人相关(speaker-dependent)。如果干扰者可以变,但目标说话人固定,叫做target-dependent。最少约束条件的是,不要求说话人在训练和测试时候一样,叫做说话人无关(speaker-independent)。从这个角度讲,Huang[81][82]的方法是speaker dependent,[38][162]的方法对speaker dependent和target-dependent都处理。他们放松干扰者约束的方式是简单地用目标说话人和许多干扰者的cochannel mixture来训练。
Zhang和Wang提出一种deep ensemble network来实现speaker-dependent和target dependent分离[206]。他们使用mullti-context network来在不同分辨率集成时序信息(temporal information)。一个ensemble通过堆叠多个模块构造,每个模块做multi context masking/mapping。在这个研究中多个training target被考察。对于speaker-dependent分离,signal approximation被证明更有效;对target-dependent分离,ratio masking和signal approximation的组合更有效。进一步,target-dependent分离的的表现与speaker-dependent分离的接近。近来,Wang[174]在放宽speaker dependency上跟进了一步。他们的方法将每个说话人聚类到4个cluster中的1个里(2个男性和2个女性cluster),然后训练一个DNN-based的gender mixture识别器来决定mixture中2个潜在说话人所属的cluster。尽管是在每个cluster里的说话人的子集上做训练,他们的evaluation结果显示,说话人分离犯法对另外的cluster里没训练过的说话人也能工作得很好。或者说是,这个说话人分离方法显示了一定程度的speaker independency。
Healy[63]近来用DNN做speaker-dependent的cochannel separation并对DNN做了关于HI和NH听者的speech intelligibility评估。DNN被训练来估计IRM和它的补充(complement),对应于目标说话人和干扰者。和更早的DNN-based cochannel separation研究相比,这里面的算法使用一个多样性的特征集合,以及预测多个IRM帧,导致一个更好的分离。intelligibility的结果如图13。
在HI组,DNN-based分离在intelligibility的提升对于-3dB/-6dB/-9dB的target-to-interferer ratio(TIR)分别是42.5%/49.2%/58.7%;对于NH组,也存在统计性显著的提升,但幅度更小。值得关注的是,HI听者在intelligibility上获得的大幅提升,使得他们在TIR -6dB/-9dB时候可以与NH听者有同等水平的表现。
speaker-independent分离可以视作一个无监督聚类,将T-F units聚类到由独立说话人统治的不同类别[6][79]。聚类是在说话人数量上是一个灵活的框架,但他无法像监督学习那样充分利用鉴别性信息(discriminative information)。Hershey[69]是第一个在DNN框架下解决speaker-dependent多说话人分离的。他们的方法,称为deep clustering(后续记作DPCL2016),结合了DNN-based的feature learning和spectral clustering。给定T-F units的gt划分,affinity matrix A可以计算:
DNN被训练来对每个T-F unit做embed。affinity matrix的估计可以从embeddings导出。DNN通过最小化如下cost来学习如何对T-F units输出similar embeddings:
低阶公式可以用于高效地计算cost以及他的导数。推理(inference)时候,mixture被分段,为每个分段(segment)计算embedding matrix V。然后,所有分段地embedding matrix做连接(concatenated)。最后,用K-means来将所有分段的T-F units聚类到说话人cluster。segment-level的聚类比utterance-level的聚类更准确,但只对独立的segment的聚类结果,需要解决时序组织问题。DeepClutering2016被证明能产生高质量的说话人分离,显著地优于用于speaker-independent的CASA方法[79]和NMF方法。
DeepClutering2016一个近来的延伸是deep attractor network[25](后续记作DeepAttractorNet2017),为T-F units学习高维embeddings。与DeepClustering2016不同,这个深度网络建立与聚类中心相似的attractor points,来将被不同说话人统治的T-F units拉到对应的attractor。说话人分离然后被作为mask estimation任务来展开,通过比较embedded points和每个attractor。结果表明DeepAttractorNet2017比DeepClustering2016产生更好的结果。
虽然clustering-based的方法自然而然地导出speaker-independent模型,DNN-based masking/mapping方法将每个DNN输出联系到一个特定的说哈人,并导出speaker-dependent模型。例如,mapping-based方法最小化如下cost:
为了将说话人的DNN输出联合起来,训练一个使用masking/mapping的speaker-independent模型,Yu[202]近来提出permutation invariant training(后续记作PIT2017),如图14。对2说话人分离,DNN被训练输出2个mask,每个都被应用在noisy speech上来产生一个源估计(source estimation)。在DNN训练时,cost函数动态计算。如果将每个输出分配到一个训练数据中的参考说话人,那么有2种可能的分配,每个关联到一个MSE。有更小MSE的分配被选择,DNN被训练来最小化对应的MSE。在training和inference时,DNN接受一个segment或多帧特征,为segment估计2个source。由于DNN的2个输出没有关联到任何说话人,在连续的segment里同一个说话人可能从一个输出切换到另一个输出。因此,估计得到的segment-level source需要做sequential organization,除非segment跟语料一样长。尽管更简单了,说话人分离地结果证实能跟deep clustering得到的结果相持。
在本个说话人分离小节中,从前面文章主体中的一个洞察是,用很多不同speaker pair训练的DNN模型能够分离训练中没有涵盖的speaker pair,即speaker-independent分离,但只能在frame-level左到。对speaker-independent分离,关键要素在于如何在独立的帧/segment上,对已经分离好的语音信号进行分组。这正是sequential organization,在CASA[172]中有很多研究。PIT2017可能被认为是在DNN训练中推行sequential grouping作为约束。另一方面,典型的CASA方法利用pitch controu,vocal tract characteristics,rhyth/prosody,乃至常见的spatial direction当多传感器是可用的,当然一般在监督学习中没有涵盖。看似集成传统的CASA和deep learning是未来研究的一个沃土。
这篇关于WangDeLiangReview2018 - (5.4)说话人分离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!