ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kaldi简介

2021-04-03 18:33:52  阅读:356  来源: 互联网

标签:简介 代码 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的重要目标之一,由于代码在允许修改和重新发布的许可下公开获得,我们希望鼓励人们以kaldi自己的脚本类似的方式发布他们的代码以及脚本目录。

考虑到时间的限制,我们尽可能的使kaldi的文档尽可能的完整。但是在短时间内,我们不能希望自己生成与HTK一样全面的的文档。特别是在HTKbooks中有很多介绍性资料,为外行人解释统计语音识别,这可能永远都不会出现在kaldi的文档之中。kaldi的大部分文档是这样写的,只有专家才能访问它。在未来,我们希望能够使得它更加的容易访问,同时铭记我们的目标受众是语音识别研究人员和语音识别培训人员。总的来说,kaldi并不是一个傻瓜式的语音识别工具包。他可以让你做很多没有意义的操作(PS:最后这句说的很有意思,大家自行理解)。

The flavor of kaldi
在本节中,我们试图总结kaldi工具包一些更加通用的特性。在某种程度上,他描述了当前开发人员的目标或者说当前项目的状态。这并不意味着排除不同风格的研究人员。

我们强调通用的算法和通用的组合配方。【我们说通用算法指的是像线性变换那样的东西,而不是专属于语音的内容。但是如果更具体的算法是有用的,我们不会那么教条。我们希望可以在任意数据集上运行的配方,而不是定制的数据集的配方。】
我们更喜欢证明正确的算法。【配方的设计原则是他们绝不会以灾难性的方式失败,一直在避免可能失败的配方和算法,即使他们在正常情况下没有失败。】
kaldi的代码是经过全面测试的。【目标是让所有或几乎所有的代码都具有测试例程。】
我们尽量使简单的情况简单化。【在构造一个大型的语音工具包的时候,代码可能会成为很少替换的forest,这很危险。我们试图通过以下的方式来构建工具包,来避免这种情况。每一个命令行语句通常适用于有限的一组案例。例如解码器可能只适用于GMM。因此,当你添加新模型的类型时,您将创建一个新的命令行解码器。(调用相同的底层模版代码)。】
kaldi代码很容易理解。【尽管kaldi工具包整体可能会变的非常庞大,但我们的目标是让每个单独的部分都可以毫不费力的理解。如果他提高了单个件的可理解性,我们将会重复书写代码。】
kaldi代码很容易重构和重用。【我们希望工具包尽可能松散耦合,这意味着给定任何的头文件都应该尽量少#include其他的头文件,矩阵库尤其依赖于另一个子目录中的代码,所以他可以独立于其他所有的kaldi代码独立使用。(PS:不错,这个库想必是算法部分使用最多的了。)】
项目的状态
目前,我们拥有大多数标准结束的代码和脚本,包括所有的标准线性变换,MMI,增强的MMI和MCE判别式训练,以及特征空间判别式训练。我们为华尔街日报和资源管理以及配电盘提供配方,由于词汇和语言模型问题,交换机配方尚未提供最新的结果。因此我们不使用任何的外部数据源。

以上是关于About the kaldi project的部分(省去了最后的引用),看到这里个人相信广大第一次接触他的人都有很多细节不懂,比如什么解码器,什么FSTs,还有那些c++矩阵包到底是如何使用的等等等等。其实我也是存在同样的很多问题,那么我们必须把问题分解,分为多个子任务从分别击破。我的想法是按照官网的理论走一遍,然后针对各个模型走一遍,然后针对模型的论文走一遍,最后代码走一遍。至于里面的第三方的包的使用方法和细节,我则利用业余时间进行测试学习,如果有可能,我会写博客进行介绍。那么今天就先到这里,与诸君共勉。

标签:简介,代码,kaldi,工具包,语音,配方,我们
来源: https://www.cnblogs.com/ai-ldj/p/14614485.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有