最近准备开始进行语音识别算法的学习,所以决定拿kaldi进行解读,这样一方面更加增加自己C++的基本功,另一方面也可以让自己慢慢走入语音识别的大门,自己的路,决定了就走下去,不管有多难。
首先我决定从kaldi的官网入手,不多说进入主题。
kaldi是什么
kaldi是使用c++写的语音识别的工具,apache 授予了v2.0的证书(果真应验,apache旗下无弱将)。kaldi旨在供语音识别研究员使用。
kaldi的命名
据传说,kaldi是埃塞俄比亚人,他发现了咖啡。
kaldi相较于其他工具
kaldi在目标和范围上和HTK相似,目标是用c++写的现代灵活的代码易于修改和扩展。它包含以下重要特点:
- 与有限状态转换器的代码级集成(FSTs)。 【我们根据openFst工具包进行编译,将其用作库】
- 广泛的线性代数支持。【我们包含一个包装BLAS和LAPACK的矩阵库】
- 可扩展的设计。【尽可能的,我们以最通用的方式提供我们的算法。例如,我们的解码器在提供由(帧,fst-input-symbol)索引的分数的对象上进行模版化。这意味着解码器可以从任何合适的分数来源工作,例如神经网络。】
- 开放许可。【该代码在apache2.0下获得许可,这是限制最少的许可证之一】
- 完整的recipes。【我们的目标适用于构建语音识别系统的完整配方,从广泛使用的数据库(比如语言数据联合会提供的数据)开展工作。】
发布完整配方是kaldi的重要目标之一,由于代码在允许修改和重新发布的