语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

观点
2021
09/02
12:34
亚设网
分享

8 月 31 日,Daniel Povey 以小米集团首席语音科学家的身份,正式推出了新一代 Kaldi。

Daniel Povey 是语音识别领域的执牛耳者,他主要开发和维护的开源工具 Kaldi,是业界公认的语音识别框架的基石,他也被称为 Kaldi 之父。

2019 年 Daniel 离任约翰霍普金斯大学语言和语音处理中心教职,在 Facebook、美团、滴滴、快手等一众互联网巨头抛来的橄榄枝中选择了小米,开始带领小米语音技术团队开发新一代 Kaldi。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

加入小米后,业界开发者对 Daniel 的研究动向一直高度关注。

昨日 Daniel 亮相发布会现场,宣布新一代 Kaldi 完成了所有子项目的布局。他表示,“新一代 Kaldi 的目标不仅仅是赶上或者稍微领先现有语音识别库,而是要从根本上改变语音识别的实现方式。”

据悉,经过近一年多的技术研发,Daniel 团队完成了所有模块的研发和更新,新一代 Kaldi 在 Librispeech 数据集上的词错率降到了 2.57%;通过全新代码库解决了 Kaldi 灵活性不足、体量过大等问题;作为核心部件的 k2,不仅可以用来做语音识别,也可以用来做手写文字识别等其他任务。

兼容 PyTorch,提高识别精度

Kaldi 集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,自 2011 年发布以来下载量超过了两万多次。无论是工业界还是学术界,几乎所有的语音团队都在使用 Kaldi 引擎来开发智能解决方案,包括 MIT、哈佛、清华、微软、谷歌、Facebook 等等。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

作为语音识别领域的“老前辈”,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 何以能从根本上改变人们实现语音识别的方式。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

“我们实现了多轮解码 (mutiple pass decoding) 的示例,以及我们称之为‘双向建模’(bidirectional modeling) 的模型”。Daniel 兴奋地表示,基于这种多层模型的优势,新一代 Kaldi 可以大大提高语音识别模型的建模能力,从而降低词错误率。目前,新一代 Kaldi 在 LibriSpeech 数据集上的词错误率为 2.57%。

值得一提的是,Daniel 团队在 k2 中实现了所有的 FSA 操作的可导性,用户仅使用几十行代码就可以完成复杂的多层模型结构。同时,他们还为用户提供了极大的“自定义”空间,诸如在网络中加入 phone 的 embedding 信息,支持带置信度的识别等用户自己的各种想法都能够基于 k2 来实现。

Daniel 表示,希望通过新一代 Kaldi,能为语音识别领域打开一扇崭新的大门。

引入 Python,改善灵活性

新一代 Kaldi 分为 Lhotse、Icefall 和 k2 三个部分,Daniel Povey 博士在发布会上表示,新一代 Kaldi 的独立设计是为了降低耦合性,方便用户使用。更重要的是,这样有助于扩展了组件使用的灵活性。

例如,用作数据准备的 Lhotse,既可以用在 Icefall 项目里,也可以用在任意其他语音识别库里来处理音频和文本数据,

Daniel 团队在发布会上介绍了 Lhotse、Icefall 和 k2 三个部分的更新细节。

Lhotse 抛弃了传统的 shell 脚本,采用了更加方便易用的 Python 语言。通过通用且不失灵活性的接口设计,满足了包括语音识别,语音合成等多种语音任务的需求,方便用户基于 Lhotse 可以方便地实现针对自己特定任务的接口,操纵各种不同的音频元数据和文本。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

Lhotse 引入了 Audio Cuts 的概念,将训练数据自动地组织为一组组 Cuts,并基于这种表示,提供了 on-the-fly 的数据混合,裁剪,增强和特征提取等操作,从而在不影响数据处理效率的前提下,降低了数据存储所需空间。

此外,Lhotse 还提供了很多公开数据集的数据处理脚本,用户可以直接使用这些脚本,来进行相关语音任务的数据处理工作,大大降低了用户在某个数据集上进行实验的前期成本。

“相信在不久的将来,随着新一代 Kaldi 的推广和普及,Lhotse 甚至有可能成为语音领域使用最为广泛的数据准备工具。”Daniel 期待地表示。

作为训练脚本的集合,同 Lhotse 一样,Icefall 也是一个纯 Python 项目。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

用过 Kaldi 的人都知道,Kaldi 里有大量的基于不同数据集的示例脚本,显著降低了用户的学习成本。

但这同时也带来一个缺点:示例脚本集合太过庞大,代码耦合过于紧密,导致维护成本较高。

考虑到这一点,Daniel 表示 Icefall 并不是对大量脚本的盲目集合,而是在提取公共组件的同时将不同数据集的示例脚本进行独立组织,以方便用户的学习和使用。

此外,由于将数据准备部分单独放在 Lhotse 项目中,核心计算部分单独放在 k2 中,Icefall 项目只需要关注语音识别模型的结构定义部分,降低了整个语音识别过程的耦合性,方便了网络结构的复用。

k2 是新一代 Kaldi 的核心。它的贡献在于,将加权有限状态转换器 (Weighted Finite State Transducers, WFST) 和相关算法无缝地集成到基于 Autograd 的机器学习工具包中,如 PyTorch(已完成支持)和 TensorFlow。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

WFST 是语音识别领域最为核心的数据结构,可以用来构建诸如“音标-> 词-> 句子”的状态转换概率图。

支持 WFST 可导意味着我们可以做很多以前很难做到,甚至做不到的事情,如消除以往语音识别任务中训练跟解码过程不匹配的问题、多轮(可求导)的语音识别过程、在声学网络中嵌入任意辅助信息等。

同时,k2 也支持很多现有的语音识别模型,如 CTC、LF-MMI、RNN-T 等。

值得一提的是,去年 Facebook 发布了类似于 k2 的图网络建模 GTN 框架。与之相比,k2 实现了更多的 WFST 相关算法,并且能够高效地支持 GPU(GTN 目前只支持 CPU)。GPU 实现,意味着语音识别模型的训练速度更快,解码速度更高效。新一代 kaldi 的解码速度已经是实时的 300 倍左右。此外,k2 在语音识别的基础上,还可以应用于手写文字识别等其他 seq-to-seq 的任务。

新一代 Kaldi 依然开源

“新一代 Kaldi 或将在明年之前将全部应用到小米所有的智能语音产品中”,Daniel 向媒体表示。他说,新一代 Kaldi 能够适用各种场景的不同语音模型,如远近场语音唤醒、离在线语音识别、说话人识别等通用模型,以及口语评测、语种识别、语音情绪识别等。

以小米小爱为例,“通过它,用户可以连接到各种各样的 AIoT 设备并与它们产生互动: 智能音箱、手机、电视、智能手表、儿童故事机、车载后视镜等。”

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

不仅是小米,所有企业、开发者和普通用户都可以继续享受新一代 Kaldi 的核心技术。Daniel 表示,当初之选择加盟小米,也是因为小米承诺 Kaldi 可以继续作为开源项目。“小米是一家稳定的公司,重视开源开放,而且允诺我一直做开源项目,这对于我来说是最好的选择”

Kaldi 从诞生之日起,就是一款开源语音识别工具包。Daniel 一直坚持开源工作,鼓励更广泛的用户自由使用、复制以及修改源代码,并推动智能语音技术的发展。

新一代 Kaldi 依旧采用了高效的 C++ 代码实现。由于将 k2 的 C++ 代码都包装到了 Python, 模型的训练迭代都可以使用纯 Python 代码完成。

Daniel 表示,基于 Icefall 中的示例脚本,开发者们可以很容易地基于自己公司产品的数据集进行修改,进而快速地搭建线上数据反馈和模型自动迭代更新的流程,这将大大缩短模型更新的周期。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

随着新一代 Kaldi 的发布和其在小米产品线的逐步落地,相信在不久的将来,小米将和其他公司一起,为普通用户带来更加完善的 AIoT 产品体验。

关于 Daniel

Daniel 可以说是语音识别领域的殿堂级人物。除了开发 kaldi 外,他还对语音识别做出了许多科学贡献,包括助力判别训练(现在称为序列训练)的早期发展等。从 1999 年发布语音识别研究成果以来,其论文被引用次数超过了 30000 次。也因如此,Daniel 从约翰斯・霍普金斯大学离职后,引发了全球科技巨头的一场人才争夺战。

语音识别大拿 Daniel Povey 发布新一代框架 Kaldi,有望年内应用于小米产品

Daniel 在 2012 年加入约翰斯・霍普金斯大学,担任语言和语音处理中心任副教授。在此之前,他在 IBM 研究院、微软研究院从事计算机语音识别研究。

2019 年 10 月,Daniel 正式加入小米公司,担任小米集团首席语音科学家。

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表亚设网的观点和立场。

2.jpg

关于我们

微信扫一扫,加关注

Top