Closed yinruiqing closed 1 year ago
您好!由于我们的工作中PPE的提取使用的是Kaldi,而安装Kaldi比较麻烦,所以便没有给出完整的提取脚本,而是直接提供了提取好的PPE文件。
如果您安装了Kaldi并想要自己提取,确实可以利用local/make_ppe.sh
中的代码,但是接着需要进行normalization,即从训练集计算均值方差,然后把所有PPE减去均值除以方差。这一步跟extract_fbank.sh
中的stage 1是一样的。
经过normalize过的PPE应当和我们提取的一致了。
前两维是一致的,第三维能量还是不一致。
我刚刚测试了一下,能量维度上的数值也是比较接近的,能否看看您使用的cmvn命令?
我是照着 extract_fbank.sh
的代码写的,我把ppe cmvn的值打印了一下,是:
[[-8.39433032e+07, 1.00398811e+09, 3.17046403e+09, 1.99149193e+08],
[ 6.21878470e+07, 5.08943132e+09, 5.26694237e+10, 0.00000000e+00]]
能否看一下是否一致呀?
这确实有点奇怪,我这边的值是
array([[-8.39473270e+07, 1.00398806e+09, 3.43334481e+09, 1.99149193e+08],
[ 6.21899246e+07, 5.08943088e+09, 6.14383048e+10, 0.00000000e+00]])
在第三列上差别比较大,我怀疑是计算ppe时候的能量就已经不同了。能否输出一下1001_134708_000013_000000这句话的没有norm的PPE,取前20帧对一下,我的是这样:
确实不太一样,有可能是降采样算法不一样导致的,我降采样用的是sox。
那可能的确是由于数据处理的一些缘故了;不过我认为这个影响不会很大,毕竟PPE的信息只是在模型训练的过程中做一个辅助监督的作用,只要这一维度仍然代表了energy的意义,那就仍然是可以用的。 进一步地,由于PPE不直接输入模型中,所以即使训练时候的PPE存在一些差别,训出来的模型也是可以通用的。 所以如果您想换成自己提取的PPE,我觉得直接用提取出来的就可以~
还有这三个特征有没有做过消融实验呀?
不加PPE这个分支的话,不仅PPE重建的效果会下降,还会影响一些音质,因为用PPE辅助信息来输入后面的HifiGAN是能帮助其优化重建效果的
这可能确实是由于数据处理的一些初步的训练;不过我认为这个影响不会很大,毕竟PPE的信息只是在模型的过程中起到辅助监督的作用,只要这个维度仍然代表了能量的意义,仍然是可以用的。 进一步地,由于PPE不直接输入模型中,所以即使训练时的PPE存在一些差别,训练出来的模型也是可以通用的。所以 如果您想换成自己提取的PPE,我觉得直接用提取出来的就可以~
I used ffmpeg for downsampling, and the energy in the third dimension is still inconsistent. May I ask what method you used for downsampling?Looking forward to your reply.
@Alidaling Our data preprocessing was conducted long ago, and if my memory serves me well, we used the SoX command sox --norm -r 16000
to normalize and downsample.
使用项目里的ppe提取脚本 跑出来的结果和项目提供的ppe特征对不上。还有这三个特征有没有做过消融实验呀?