conv-tasnet网络结构
encoder:
输入波形,通过一个一维卷积,提取特征,得到一个特征矩阵。
# input encoder
self.encoder = nn.Conv1d(1, 512, 256, bias=False, stride=16)
#输入信号通道为1,帧长256,帧移16
#1*3200->1*512*185[(3200-256)/16+1=185]
separation:
由卷积的一维扩张卷积块组成的时间卷积网络(TCN)估计每个spk的mask,使网络可以对语音信号的长期依赖性进行建模。经过4个repeat,d=8,增加感受野。
这里用TCN, 和传统卷积不同的是,膨胀卷积允许卷积时的输入存在间隔采样,采样率受图中的d控制。 最下面一层的d=1,表示输入时每个点都采样,中间层d=2,表示输入时每2个点采样一个作为输入。一般来讲,越高的层级使用的d的大小越大。所以,膨胀卷积使得有效窗口的大小随着层数呈指数型增长。这样卷积网络用比较少的层,就可以获得很大的感受野。
后面再用卷积先扩大通道数,对不同说话人进行不同通道的区分,然后就可以分离为不同说话人个数的mask。
例如:
1512185->11024185,再把11024185分离为12512*185