对话Kaldi之父Daniel Povey:新一代Kaldi子项目布局基本完成,打造语音识别框架基石
日前,小米Kaldi团队在Interspeech上发布了Icefall的1.0正式版本,这是语音识别开源工具新一代Kaldi的重要组成部分,同时也标志着新一代Kaldi的3个子项目已完成基本布局。据悉,新一代的Kaldi降低了耦合性,方便用户使用;同时也可以用在任意其他语音识别库里来处理音频和文本数据,拥有更好的泛用性与兼容性。
说到“Kaldi”,对于大多数人可能比较陌生,但对于语音识别的从业者却是名声在外,几乎所有的语音团队都在使用Kaldi引擎来开发智能解决方案。Kaldi集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,是业界公认的语音识别框架的基石。
今日,速途网有幸采访到了“Kaldi之父”——Daniel Povey博士,在采访中,他分享了加入小米开发新一代Kaldi的更多细节,以及未来的一些规划。
2019年10月,Daniel博士正式加入小米公司,担任小米集团语音首席科学家,主要工作就是带领团队开发新一代Kaldi。谈到加入小米的契机,Daniel博士表示,大型开源项目是长久的工程,选择小米是因为觉得它是一家稳定的公司,同时对表现出对开源的承诺与重视,允诺Kaldi团队能在这里一直做开源项目。
在采访中,速途网还发现一个有趣的事情:Kaldi团队所有成员都整齐划一地穿着白色T恤,除了“NEXT- GEN KALDI”(新一代Kaldi)的文字以外,还有一个皱着眉头的人物。据Daniel介绍,这T恤出自他本人设计,上面的人物是Liliana(Daniel的助理),因为她有时候的面部表情是衣服上面画的那样,就像她在监工,看到这个画面就感觉Liliana无处不在。可见,Kaldi团队日常的工作氛围紧张且富有激情。
据速途网了解,新一代Kaldi共分为三个部分: Lhotse、Icefall和k2。
其中,Lhotse是训练数据准备部分,设计了通用又不失灵活性的接口,以适应包括语音识别、文本转语音等多种语音任务,并引入了Audio Cuts的概念从而在不影响数据处理效率的前提下,降低了数据存储所需空间。Icefall是训练脚本集合,包含有大量的基于不同数据集的示例脚本,大大降低了用户的学习成本。k2是新一代Kaldi的核心,核心贡献在于将加权有限状态转换器(WFST)和相关算法无缝地集成到基于Autograd的机器学习工具包,如PyTorch和TensorFlow中。
新一代Kaldi依旧采用了高效的C++代码实现,且更重要的是由于将k2的C++代码都包装到了Python, 模型的训练迭代都可以使用纯Python代码完成,大大方便了用户的使用。
基于Icefall中的示例脚本,工程师们可以很容易地基于自己公司产品的数据集进行修改,进而快速地搭建线上数据反馈和模型自动迭代更新的流程,比原来的 Kaldi 代码库更加灵活,缩短模型更新的周期。除此之外,由于高效的支持GPU,如果用户或企业基于GPU来部署新一代Kaldi的模型,也将获得GPU对模型解码的加速优势,这将大大提高模型最终的识别速度。
经过这一年的开发,Daniel博士带领团队完善了k2和Lhotse, 并基于二者正式发布Icefall项目。其中k2的主要更新包括以下几点:优化代码以提高整体性能;实现一些Icefall项目需要用到的辅助函数;并修复了bug。
得益于新一代Kaldi的技术升级,带来了更为高效的解码速度和更低的WER(词错误率),提升了产品的语音识别体验。而在产品层面,Daniel博士透露,新一代Kaldi将逐步融入到小米产品之中,例如进行离线/在线语音识别加速、端到端的声纹识别等工作,随着集成和测试工作的逐步推进,新一代Kaldi将有望于今年年底或明年初在小米产品之中登场,与大众正式见面,让更多人享受到科技的乐趣。