Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
1、总体框架
Conv-TasNet由三部分组成:编码器、分离器、解码器。
编码器:把混合波形转化为特征空间中对应的表示,简单来说就是提取特征。
分离器:根据前面提取的特征,估计每个源的波形掩码,然后特征与掩码相乘,得到各个源对应的特征
解码器:把各个源对应的特征进行解码,就得到各个源的波形。
2、数学描述
2.1、分离任务
前提假设:混合音乐是由各个源Ci 的波形线性相加得来的(可能现实中并不是这样,这是一个很强的假设)
现在的任务是已知x(t) 要求出每个源Ci对应的si(t),即一直混合的波形求每个源的波形。
2.2、编码器与解码器
首先把x(t)分为若干段重叠的长度为L的小片段,表示为,其中k=1,...,T,T表示分得的总段数,
就转为N维的向量,整个x(t) 就转为一个T x L的矩阵
然后使用1维卷积计算,得到特征表示,计算式子为:其中,,是一个可选的非线性函数,可以使用Relu来确保特征的非负性;
这样计算出来的特征可以通过使用1维转置卷积计算来重构波形。数学表示为:,其中、。x尖为重叠的小片段,表示为C x T x L的矩阵,C为源的个数,然后可以对应每个源Ci把重叠的小片段进行合并来重构波形。
2.3 分离器:估计分离源特征的掩码
通过前面编码器的特征提取得到的,估计出C个掩码,C为源的个数。
掩码是有约束的:,即每个元素的值在0到1之间。
分离后的源的特征表示为,计算式为:
各个源的波形就可以根据特征di来重构:
2.4、卷积分离模块
时间卷积网络(TCN)由全卷积分离模块组成,这些模块由堆叠的1-d膨胀卷积块组成。
在TCN中,每一层由1-D卷积块组成,卷积块的膨胀系数不断增大。
如下图所示,不同颜色的1-D Conv块膨胀因素不同,呈指数增长,以确保有足够大的时间上下文窗口来利用语音信号的长期依赖性。
其中M个1-D Conv块分为一组,整个分离器中需要重复R次。
每个1-D Conv块的输入都要相同的长度,不足的用0填充。
最终TCN的输出传递到一个1x1 Conv块进行掩码估计,并用一个非线性激活函数来得出掩码。
每个1-D Conv块的组成如图所示:
其中用了一个residual path和一个skip-connection path,residual path作为下一个块的输入,所有块的跳转连接路径求和并用作TCN的输出。为了进一步减少参数数量,在每个卷积块中使用深度可分卷积代替标准卷积。
深度可分离卷积算子将标准卷积解耦为两个连续的操作:(关于深度可分离卷积在2.5补充说明)
D-conv:深度卷积
S-conv:深度可分离卷积
a depthwise convolution (D-conv(·)) :深度卷积
a pointwise convolution (1 × 1-conv(·)):1x1的点卷积,与标准卷积一样,但大小规定为1x1
是深度可分离卷积的输入,表示P大小的G个卷积核,表示1大小的G*H个卷积核,和表示矩阵Y和K的行,表示卷积计算。
简而言之,D-conv() 把输入Y的每一行和矩阵K对应行进行卷积计算,然后又1x1-conv的点卷积对特征空间进行一个线性变换。
如果是标准的卷积计算,参数表示为:,而深度可分离卷积只有G x P+G x H个参数,
而标准的卷积计算有G x H x P个参数,当H远大于P时,,模型所需参数就缩小了P倍
最后在1×1-conv块和D-conv块后分别加入非线性激活函数和归一化运算。
PReLU数学表示:,其中是一个可训练的参数
归一化操作:经验上选择全局层归一化(gLN),在gLN中,特征在通道和时间维度上被归一化:
其中,表示特征,是可训练参数,是数值稳定性的一个小常数,用于避免分母为0,可设置为1e-8。
这与计算机视觉模型中应用的标准层归一化是相同的,其中通道和时间维度对应于图像的宽度和高度维度
在因果结构中,gLN不能应用,因为它依赖于信号在任何时间步长上的未来值。
这时用一个累积层归一化(cLN)操作来执行因果系统中的逐级归一化:
其中,是第k帧的特征,对应表示共有k帧的特征,
是可训练参数,用于全部的帧。
为了确保分离模块不受输入缩放的影响,在将所选的归一化方法传递给分离模块之前,将其应用于编码器输出w,如模型流程图中左下角所示。
在分离模块的开始,有一层1x1 Conv,用于决定后续卷积块的输入通道数和residual path
例如,该层有B个通道,那么1-D Conv块的输入就有H个通道,卷积核大小为P;
那么1x1 Conv 和 1-D Conv对应权重应该为和
而residual paths中内核大小表示为为
跳转连接路径中的输出通道数可以与B不同,将该路径中的内核大小表示为
2.5、补充
深度卷积(depthwise_conv),每个通道都有独立的卷积核来计算,输出为通道数乘卷积核个数;
与标准卷积计算相比较,标准卷积计算是把所有通道的计算结果都累加起来,输出为卷积核个数。
深度可分离卷积(depthwise_separable_conv),在基于深度卷积的基础上,得到结果①,结果①为通道数x卷积核个数,然后把结果①在进行一次标准的卷积计算,得到结果②,结果②为卷积核个数。
3、编码器和解码器工作流程的可视化
4、网络超参数表
符号 |
含义 |
N |
编码器的卷积核个数 |
L |
长度为L的波形小片段 |
B |
residual paths的1x1 Conv的通道数 |
Sc |
skip-connection的1x1 Conv的通道数 |
H |
分离器中的卷积块的通道数 |
P |
每个卷积块的核大小 |
X |
重复卷积块的个数 |
R |
重复卷积组的个数 |
5、不同超参数的实验结果
6、结束语
这篇论文还有很多其他的内容,这篇文章主要是对整个模型进行详细的描述,如果有错误请指出,还请多多包涵。