kali源代码简单说明

kaldi源代码简单说明

kaldi是开源的,基于C++的语音识别工具。一方面语音识别有较高的技术门槛,包含了很多方面的东西,另一方面kaldi集成了太多的东西,造成了其代码量很大,阅读起来很困难。

kaldi现在集成了很多的东西,造成其代码量很大,直接阅读起来感觉无从下手。但是,每个项目,一开始的时候,都是比较简单的,代码量也较小。

我从git上下载过来kaldi源码后,通过git reset 命令,回退到最原始的版本,看最原始版本的代码,就没有那么难了。最原始的版本,虽然缺失了很多功能,比如online解码、神经网络,kws等,但是其基本的代码还是有的。这里主要就是记录了阅读这些代码时总结的一些东西。当然,代码也只是走马观花地看了一遍,没有仔细看细节。


kaldi/base 文件夹 ==============================================
  包含两个基本的头文件 kaldi-type.h  kaldi-common.h
  四个小模块 kaldi-error   kaldi-math   kaldi-utils   io-funcs
  kaldi-type.h 中定义了基本的unint32 int32等类型,以及BaseFloat
  kaildi-error 中,定义了 KALDI_ERR   KALDI_WARN  KALDI_LOG  和 KALDI_EXIT 等。还是用的define,以及类中返回stream的方法。比起后面的版本,要简单很多
  kalid-math 中,定义了基本的π,根号2等的值,定义一些最大最小值,定义随机数的实现,LogAdd LogSum等,公约数,因式分解等
  kaldi-utils中,KALDI_SWAP4  KALDI_DISALLOW_COPY_AND_ASSIGN   KALDI_ASSERT_IS_INTEGER_TYPE  KALDI_STRTOLL 等
  io-funcs中,定义基本输入输出,类模板定义方式 WriteBasicType  ReadBasicType,可以是二进制或文本模式
  四个小模块分别生成.o文件,然后生成kaildi-base.a。每个模块都有测试代码。

kaldi/matrix文件夹 ==============================================
  生成的.o文件 kaldi-matrix.o  kaldi-vector.o  packed-matrix.o  sp-matrix.o  tp-matrix.o  matrix-functions.o  srfft.o
  生成的.a文件 kaldi-matrix.a

  kaldi-blas.h matrix-comm.h  两个基本的头文件;前者定义使用哪个blas,后者定义了基本的矩阵类型

  packed-matrix 基本压缩矩阵,声明模板类PackedMatrix
  tp-matrix 和 sp-matrix  三角矩阵和对称矩阵TpMatrix SpMatrix,其基类是PackedMatrix
  kaldi-vector 和 kaldi-matrix   kaldi中的向量和矩阵,声明模板类 VectorBase Vector SubVector     MatrixBase SubMatrix Matrix
  jama-eig jama-svd 特征分解和奇异值分解,只有使用atlas时才用到这两个文件,因为其他的库已经自带这两个算法了

  matrix-functions 矩阵计算应用函数,如计算FFT; srfft 另一种高效的FFT计算方法
 
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值