文章插图
8月31日,Daniel Povey以小米集团首席语音科学家的身份,正式推出了新一代Kaldi。Daniel Povey是语音识别领域的执牛耳者,他主要开发和维护的开源工具Kaldi,是业界公认的语音识别框架的基石,他也被称为Kaldi之父。2019年Daniel 离任约翰霍普金斯大学语言和语音处理中心教职,在 Facebook、美团、滴滴、快手等一众互联网巨头抛来的橄榄枝中选择了小米,开始带领小米语音技术团队开发新一代Kaldi。
文章插图
加入小米后,业界开发者对Daniel的研究动向一直高度关注。昨日Daniel亮相发布会现场,宣布新一代Kaldi完成了所有子项目的布局。他表示,“新一代Kaldi的目标不仅仅是赶上或者稍微领先现有语音识别库,而是要从根本上改变语音识别的实现方式。”据悉,经过近一年多的技术研发,Daniel团队完成了所有模块的研发和更新,新一代Kaldi在Librispeech数据集上的词错率降到了2.57%;通过全新代码库解决了Kaldi灵活性不足、体量过大等问题;作为核心部件的k2,不仅可以用来做语音识别,也可以用来做手写文字识别等其他任务。Kaldi集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,自 2011 年发布以来下载量超过了两万多次。无论是工业界还是学术界,几乎所有的语音团队都在使用Kaldi引擎来开发智能解决方案,包括MIT、哈佛、清华、微软、谷歌、Facebook等等。
文章插图
作为语音识别领域的“老前辈”,Kaldi也急需更新迭代。Daniel在媒体见面会上坦言,初版Kaldi的旧代码库已经难以满足机器学习发展的需求,用户需要更轻便、更灵活的源代码,也需要兼容 PyTorch 等主流框架的工具包。新一代Kaldi的研发工作从2019开始启动,去年已经完成了k2和Lhotse模块的研发工作。Daniel还在2020 MIDC大会上进行了展示,不过当时 Icefall模块还只是一个初步概念。今年研发团队进一步完善了k2和Lhotse模块, 并基于二者正式发布Icefall项目。Daniel介绍说,与初代Kaldi相比,新一代Kaldi是一个全新的代码库,主要是由C++、CUDA写就;支持Python调用;后端也由 PyTorch取代了此前的自定义代码。发布会现场,Daniel团队不仅展示了如何使用k2和Lhotse来实现现有的各种不同的语音识别模型,如基于Transformer/Conformer的CTC和LF-MMI等,更着重展示了k2何以能从根本上改变人们实现语音识别的方式。
文章插图
“我们实现了多轮解码(mutiple pass decoding)的示例,以及我们称之为‘双向建模’(bidirectional modeling)的模型”。Daniel兴奋地表示,基于这种多层模型的优势,新一代Kaldi可以大大提高语音识别模型的建模能力,从而降低词错误率。目前,新一代Kaldi在LibriSpeech数据集上的词错误率为2.57%。值得一提的是,Daniel团队在k2中实现了所有的FSA操作的可导性,用户仅使用几十行代码就可以完成复杂的多层模型结构。同时,他们还为用户提供了极大的“自定义”空间,诸如在网络中加入phone的embedding信息,支持带置信度的识别等用户自己的各种想法都能够基于k2来实现。Daniel表示,希望通过新一代Kaldi,能为语音识别领域打开一扇崭新的大门。新一代Kaldi分为Lhotse、Icefall和k2三个部分,Daniel Povey博士在发布会上表示,新一代Kaldi的独立设计是为了降低耦合性,方便用户使用。更重要的是,这样有助于扩展了组件使用的灵活性。例如,用作数据准备的Lhotse,既可以用在Icefall项目里,也可以用在任意其他语音识别库里来处理音频和文本数据,Daniel团队在发布会上介绍了Lhotse、Icefall和k2三个部分的更新细节。Lhotse抛弃了传统的shell脚本,采用了更加方便易用的Python语言。通过通用且不失灵活性的接口设计,满足了包括语音识别,语音合成等多种语音任务的需求,方便用户基于Lhotse可以方便地实现针对自己特定任务的接口,操纵各种不同的音频元数据和文本。