CBHG模块如下图所示。
首次提出在Goggle的一篇文章:TACOTRON: TOWARDS END-TO-END SPEECH SYNTHESIS
回到CBHG模块,该模块善于提取序列特征。下面为模块步骤:
1.输入序列,先经过K个1-D卷积,第K个卷积核(filter)通道为k,这些卷积核可以对当前以及上下文信息有效建模;
2.卷积输出被堆叠(stack)一起,沿着时间轴最大池化(maxpooling)以增加当前信息不变性,stride取为1维持时间分辨率;
3.然后输入到几个固定宽度的1-D卷积,将输出增加到起始的输入序列(参考ResNet连接方式),所有的卷积都采用Batch Normalization;
4.输入多层的highway 网络,用以提取更高级别的特征;
5.最后在顶部加入双向GRU,用于提取序列的上下文特征;
与原文中的不同是加入了batch normlization,残差连接以及stride=1的最大池化,表现比原文更好。