1 语音分离任务概述
语音分离任务基本模型
语音分离的最终目的是将目标声音与背景噪声(环境噪声、人声等)进行分离。语音分离还通常被称为“鸡尾酒会问题(cocktail party problem)”。根据说话人(麦克风)的数目,通常将语音分离任务分为单通道(Single-channel)语音分离和麦克风阵列(Multi-channel)的语音分离。
语音分离的通常处理流程如上图所示。首先需要一个混合的语音信号(通常包含两到三个人的语音信号)。然后对于时频域的语音分离我们需要将时域的语音信号通过短时傅里叶变换(STFT)将时域信号转换为时频域信号。而对于时域的语音分离我们只需要搭建一个encoder-decoder的端到端的模型即可。
语音分离任务前期进展缓慢的原因
1 技术复杂性:语音分离涉及复杂的信号处理技术和机器学习算法。早期,由于计算资源和算法的限制,难以有效地处理语音信号中的多种成分,如背景噪声、多个说话人的声音等。
2 数据标注困难:音分离任务需要大量的标注数据来训练模型。然而,标注语音数据是一项耗时且复杂的工作,特别是在多说话人场景中,需要准确区分每个说话人的语音。
3 模型泛化能力:早期的模型往往难以适应不同场景和说话人的变化,导致在实际应用中的效果有限。
语音分离任务的难点
1 标签置换问题(Label Permutation Problem):在语音分离任务中,输入网络的是一个混合语音信号,而输出则是分离后的多个语音信号。由于输出有多个标签(即多个说话人的语音),而输入只有一个标签(混合语音),这就带来了标签置换问题。具体来说,当模型输出多个语音信号时,我们无法确定哪个输出对应哪个说话人,因为输出顺序是任意的。标签置换问题会导致模型在训练过程中难以准确计算损失函数,从而影响模型的训练效果和性能。
2 说话者无关性(Speaker independent):语音分离任务通常要求模型具有说话者无关性,即模型能够处理不同说话人的语音信号。说话者无关性要求模型能够捕捉到语音信号中的通用特征,而不是依赖于特定说话人的特征。这增加了模型的复杂性和训练难度。
解决方法
针对标签置换问题,现有的解决方法主要分为两类:
1 基于高维embedding的网络结构
方法:如deep clustering和deep attractor network等,这些方法通过在高维空间中学习语音信号的embedding来表示不同说话人的特征。
优势:通过embedding表示,可以更容易地区分不同说话人的语音信号,从而缓解标签置换问题。
2 permutation invariant training(PIT):
方法:PIT是一种训练策略,它通过在训练过程中考虑所有可能的输出顺序来计算损失函数,并选择最小的损失值来更新模型参数。
优势:PIT可以有效地解决标签置换问题,提高模型的训练效果和性能。
语音分离任务数据集
对于语音分离任务,数据集一般使用的是华尔街日报数据集(Wall Street Journal dataset,WSJ0)。