kaldi工具:est-pca 和 paste-feats
感觉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相关推荐
- Python机器学习笔记 使用scikit-learn工具进行PCA降维...
Python机器学习笔记 使用scikit-learn工具进行PCA降维 之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-lear ...
- Python机器学习笔记 使用scikit-learn工具进行PCA降维
Python机器学习笔记 使用scikit-learn工具进行PCA降维 之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-lear ...
- pca降维python实例_Python机器学习笔记:使用scikit-learn工具进行PCA降维
之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...
- kaldi常用工具(原理分析)
工具介绍使用:http://blog.csdn.net/zjm750617105/article/details/52540823 , 如果只想看怎么用那看前边那个link就足够了,不需要再往下读了, ...
- kaldi学习 - 一脚本流学习工具使用
目录 yesno训练 先给出整体脚本如下: 分块详解 建立解码脚本 kaldi中脚本东西比较多,一层嵌一层,不易阅读. 本文以yesno为例,直接使用kaldi编译的工具,书写简易训练步骤,方便学习k ...
- kaldi lesson教程示例
创建示例目录 第一步:egs目录下创建lesson文件夹,lesson文件夹创建版本标识文件夹v1 mkdir lesson cd lesson mkdir v1 结果展示 (notebook) ro ...
- 常用工具(原理分析)
kaldi常用工具(原理分析) 工具介绍使用:http://blog.csdn.net/zjm750617105/article/details/52540823 , 如果只想看怎么用那看前边那个li ...
- [转]kaldi中的特征提取
转:http://blog.csdn.net/wbgxx333/article/details/25778483 本翻译原文http://kaldi.sourceforge.net/feat.html ...
- 让开发自动化持续重构 --使用静态分析工具识别代码味道
系列内容: 此内容是该系列的一部分:让开发自动化 在过去的几年里,我曾看过很多项目的大量源代码,从精美的设计到像是用胶带绑定到一起的代码.我写过新的代码也维护过其他开发人员的源代码.我喜欢编写新的代码 ...
最新文章
- 2018年技术展望--中文版
- 零基础python入门书籍-浅谈零基础自学python入门书
- Codeforces 1108 E2(线段树+思维)
- jsr250-api_JSON处理的Java API(JSR-353)–流API
- [css] 怎么才能让图文不可复制?
- 逐帧动画与人运动动画制作
- 全连接神经网络_【模型解读】从“局部连接”回到“全连接”的Non-Local神经网络...
- dpkg:处理 xxx (--configure)时出错解决办法,也可用于卸载软件出错的情况
- Linux上的tomcat版本升级
- Common Electrical I/O (CEI)
- 疯狂的程序员 41-50
- 程序员被老板要求两个月做个app, 要不比京东差,网友:辞职吧
- java rhino 运行 js_深入浅出Rhino:Java与JS互操作
- win10 添加打印机
- adb shell打开开发者选项
- tACS恢复老年人认知控制能力的EEG功能和DTI结构网络机制
- weixuan -奥利给turtle
- c语言c 一元二次方程,如何用C语言来计算一元二次方程
- js继承(ES5,ES6)
- 艺赛旗RPA验证码处理系列(三):破解极验滑动验证码
热门文章
- 智慧树python程序设计基础课后答案_智慧树知到Python程序设计基础作业题库答案...
- Codeforces Round #105 D. Bag of mice 概率dp
- 拿捏SQL数据分析:从基础破冰到面试题解
- 我的避难日记-《R:pheatmap》,热图,heatmap,聚类
- 细数 List 的10个坑,保证你一定遇到过
- 图像处理 语音信号 matlab china-pub 当当,MATLAB数字信号与图像处理范例实战速查宝典...
- 迪拜政府重金研究区块链,未来四年…
- 微信浏览器无法下载APP 微信内下载APK的解决方案
- STM32实现定时器和LED呼吸灯
- 实训素材纯HTML+CSS代码 (教育主题 3页 )