感觉kaldi的一些工具的说明不是很详细,经常会用错,这就需要看看相近的几个命令都尝试一下。
我现在有一个需求: 需要把128维的bottleneck features 用PCA降到26维,然后再把这26维与之前的fbank的特征做一个拼接,生成每一帧都是26+26=52维的特征,yeah, 这就是tandem-feature.
现在bottleneck feature已经okay了(这一步其实走的很艰难 ), 然后开始一步一步的走,虽然没那么容易,但是在一点一点的接近目标,当我有了tandem-feature之后我就可以直接套用之前的脚本了。

下面对test集合的转换作为demo:
第一步: PCA降维
如果直接用est-pca会发现 “~/kaldi/src/bin/est-pca –dim=10 –binary=false scp:feats.scp 0.mat” ,无论的feats.scp是什么,最后总会得到一个10*128的矩阵。 我的需求是:将uttid:(len(frames), 128) tansform to uttid: (len(frames), 20).
Daniel: “maybe you need ‘transform-feats’ to apply the learned matrix to the features.:
David: “The binary est-pca is needed to estimate the PCA transform. As Dan said, transform-feats is used to apply the PCA (or LDA, etc) transform.”

需要先产生一个pca的transform文件

cd ~/kaldi/egs/sre10/dnn_v1/data_bn_train_dnn_3_512/test
#--binary=false 便于观察,跟下边那句一样可以使用
~/kaldi/src/bin/est-pca  --dim=26  scp:feats.scp pca_transform.mat
OR 处理向量(ivector)
est-pca --dim=2 --read-vectors=true scp:eval_ivec.scp pca_transform.mat
#然后用这个transform文件去应用于我们实际的test数据文件,同时生成降维后的ark和对应的scp
~/kaldi/src/featbin/transform-feats pca_transform.mat scp:feats.scp ark,scp:pca_test.ark,pca_test.scp
#最后打开pca_test.ark文件验证一下:
~/kaldi/src/featbin/copy-feats ark:pca_test.ark ark,t:- | head -n 10
#验证之后每一帧都是26维--》OK

第二步: 将降维之后的特征跟原始的f bank的特征做一个concatenation,虽然叫这个名字但是不是用的concat-feats,而是用的past-feats。

~/kaldi/src/featbin/paste-feats scp:feats.scp scp:pca_test.scp  ark,scp:concat_test.ark,concat_test.scp
再验证一下concat_test.ark的维数, perfect

到此就okay了,纠结了一天的问题终于解决了,其实很简单,但是由于不知道,也没人仔细的指导, 科研就是这样,一会去吃自助,犒劳一下自己(舍友们放假都还没回来),科研也很孤独啊,唉。
希望能帮到大家!

kaldi工具:est-pca 和 paste-feats相关推荐

  1. Python机器学习笔记 使用scikit-learn工具进行PCA降维...

    Python机器学习笔记 使用scikit-learn工具进行PCA降维 之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-lear ...

  2. Python机器学习笔记 使用scikit-learn工具进行PCA降维

    Python机器学习笔记 使用scikit-learn工具进行PCA降维 之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-lear ...

  3. pca降维python实例_Python机器学习笔记:使用scikit-learn工具进行PCA降维

    之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...

  4. kaldi常用工具(原理分析)

    工具介绍使用:http://blog.csdn.net/zjm750617105/article/details/52540823 , 如果只想看怎么用那看前边那个link就足够了,不需要再往下读了, ...

  5. kaldi学习 - 一脚本流学习工具使用

    目录 yesno训练 先给出整体脚本如下: 分块详解 建立解码脚本 kaldi中脚本东西比较多,一层嵌一层,不易阅读. 本文以yesno为例,直接使用kaldi编译的工具,书写简易训练步骤,方便学习k ...

  6. kaldi lesson教程示例

    创建示例目录 第一步:egs目录下创建lesson文件夹,lesson文件夹创建版本标识文件夹v1 mkdir lesson cd lesson mkdir v1 结果展示 (notebook) ro ...

  7. 常用工具(原理分析)

    kaldi常用工具(原理分析) 工具介绍使用:http://blog.csdn.net/zjm750617105/article/details/52540823 , 如果只想看怎么用那看前边那个li ...

  8. [转]kaldi中的特征提取

    转:http://blog.csdn.net/wbgxx333/article/details/25778483 本翻译原文http://kaldi.sourceforge.net/feat.html ...

  9. 让开发自动化持续重构 --使用静态分析工具识别代码味道

    系列内容: 此内容是该系列的一部分:让开发自动化 在过去的几年里,我曾看过很多项目的大量源代码,从精美的设计到像是用胶带绑定到一起的代码.我写过新的代码也维护过其他开发人员的源代码.我喜欢编写新的代码 ...

最新文章

  1. 2018年技术展望--中文版
  2. 零基础python入门书籍-浅谈零基础自学python入门书
  3. Codeforces 1108 E2(线段树+思维)
  4. jsr250-api_JSON处理的Java API(JSR-353)–流API
  5. [css] 怎么才能让图文不可复制?
  6. 逐帧动画与人运动动画制作
  7. 全连接神经网络_【模型解读】从“局部连接”回到“全连接”的Non-Local神经网络...
  8. dpkg:处理 xxx (--configure)时出错解决办法,也可用于卸载软件出错的情况
  9. Linux上的tomcat版本升级
  10. Common Electrical I/O (CEI)
  11. 疯狂的程序员 41-50
  12. 程序员被老板要求两个月做个app, 要不比京东差,网友:辞职吧
  13. java rhino 运行 js_深入浅出Rhino:Java与JS互操作
  14. win10 添加打印机
  15. adb shell打开开发者选项
  16. tACS恢复老年人认知控制能力的EEG功能和DTI结构网络机制
  17. weixuan -奥利给turtle
  18. c语言c 一元二次方程,如何用C语言来计算一元二次方程
  19. js继承(ES5,ES6)
  20. 艺赛旗RPA验证码处理系列(三):破解极验滑动验证码

热门文章

  1. 智慧树python程序设计基础课后答案_智慧树知到Python程序设计基础作业题库答案...
  2. Codeforces Round #105 D. Bag of mice 概率dp
  3. 拿捏SQL数据分析:从基础破冰到面试题解
  4. 我的避难日记-《R:pheatmap》,热图,heatmap,聚类
  5. 细数 List 的10个坑,保证你一定遇到过
  6. 图像处理 语音信号 matlab china-pub 当当,MATLAB数字信号与图像处理范例实战速查宝典...
  7. 迪拜政府重金研究区块链,未来四年…
  8. 微信浏览器无法下载APP 微信内下载APK的解决方案
  9. STM32实现定时器和LED呼吸灯
  10. 实训素材纯HTML+CSS代码 (教育主题 3页 )