前言:
如今同学们对“全音素s5调音”大约比较关怀,同学们都需要分析一些“全音素s5调音”的相关文章。那么小编也在网络上网罗了一些关于“全音素s5调音””的相关文章,希望看官们能喜欢,姐妹们一起来学习一下吧!本文主要来跟大家说下基于深度学习的一种特征,瓶颈特征(bottleneck)。此外,还有一个名词叫tandem,这个意思就是把bottleneck特征跟mfcc特征或者plp特征合并在一起使用,往往这么使用效果更好。下面介绍2种bottleneck特征的过程:
1、使用自编码器来提bottleneck特征
这个kaldi里有个脚本,地址为;这里使用自编码器来重构特征,把输出维度设置跟特征维度一样就即可,当然你想设置小点也没关系,至于效果就靠实验了。timit这个如果大家使用这个脚本跑的话应该效果比使用原始特征不会好到哪里去,基本0.1个点的差别,有兴趣的可以试试。
然后这个使用的代价准则是MSE准则,不需要softmax层。
2、使用ASR的方法来提bottleneck特征
具体描述起来也简单,就是把神经网络的倒数第2层或者中间层设置成一个很小的值,比如64或者128等等。然后还根据asr训练的方式来训练。最后使用前向打分的时候只打到这一层,然后对这一层使用pca或者svd来做下降维。一般再把这个特征跟原始的mfcc或者plp再合并成tandem特征往下做ASR或者声纹语种的特征,当然也可以单独使用bn的特征来往下走,至于效果多做实验就可以看到。可以参考下面这个图:
此图来自论文yudong老师的Improved Bottleneck Features Using Pretrained Deep Neural Networks 。
这部分kaldi里也有tandam的脚本,具体的样例kaldi的kaldi/egs/babel/s5d的run-2b-bnf.sh 带bnf的脚本,这个是nnet2的脚本,nnet1里面也支持。这里还是多说几句,如果大家还想用kaldi来做一些事情的话,最好能放弃nnet1跟nnet2,切换到nnet3的结构上来。自动求导这种还是比自己写前向跟后向来得更容易点。
特征部分的介绍基本也就完成了,此外,kaldi里还有很多的特征变换,再没有深度学习大法之前很多人都会对特征做一系列变换来提高性能。所以kaldi的三音素部分总是出现很多脚本,这些很多分别对应一种特征变换,慢慢迭代,效果会越来越好。然而当今语音界,可能越多数据越好,很多方法在数据面前变得很无力。不过如果你是学生,了解这些特征变换学习数学没有坏处。