文章插图
Lhotse引入了Audio Cuts的概念,将训练数据自动地组织为一组组Cuts,并基于这种表示,提供了on-the-fly的数据混合,裁剪,增强和特征提取等操作,从而在不影响数据处理效率的前提下,降低了数据存储所需空间。 此外,Lhotse还提供了很多公开数据集的数据处理脚本,用户可以直接使用这些脚本,来进行相关语音任务的数据处理工作,大大降低了用户在某个数据集上进行实验的前期成本。“相信在不久的将来,随着新一代Kaldi的推广和普及,Lhotse甚至有可能成为语音领域使用最为广泛的数据准备工具。”Daniel期待地表示。作为训练脚本的集合,同Lhotse一样,Icefall也是一个纯Python项目。
文章插图
用过Kaldi的人都知道,Kaldi里有大量的基于不同数据集的示例脚本,显著降低了用户的学习成本。但这同时也带来一个缺点:示例脚本集合太过庞大,代码耦合过于紧密,导致维护成本较高。考虑到这一点,Daniel表示Icefall并不是对大量脚本的盲目集合,而是在提取公共组件的同时将不同数据集的示例脚本进行独立组织,以方便用户的学习和使用。此外,由于将数据准备部分单独放在Lhotse项目中,核心计算部分单独放在k2中,Icefall项目只需要关注语音识别模型的结构定义部分,降低了整个语音识别过程的耦合性,方便了网络结构的复用。k2是新一代Kaldi的核心。它的贡献在于,将加权有限状态转换器(Weighted Finite State Transducers, WFST)和相关算法无缝地集成到基于Autograd的机器学习工具包中,如PyTorch(已完成支持)和TensorFlow。
文章插图
WFST是语音识别领域最为核心的数据结构,可以用来构建诸如“音标->词->句子”的状态转换概率图。支持WFST可导意味着我们可以做很多以前很难做到,甚至做不到的事情,如消除以往语音识别任务中训练跟解码过程不匹配的问题、多轮(可求导)的语音识别过程、在声学网络中嵌入任意辅助信息等。同时,k2也支持很多现有的语音识别模型,如CTC、LF-MMI、RNN-T等。值得一提的是,去年Facebook发布了类似于k2的图网络建模GTN框架。与之相比,k2实现了更多的WFST相关算法,并且能够高效地支持GPU(GTN目前只支持CPU)。GPU实现,意味着语音识别模型的训练速度更快,解码速度更高效。新一代kaldi的解码速度已经是实时的300倍左右。此外,k2在语音识别的基础上,还可以应用于手写文字识别等其他seq-to-seq的任务。【 python|兼容PyTorch!语音识别大牛Daniel Povey正式发布新一代框架Kaldi!】
全面赋能小米语音产品
在万物互联的时代,智能语音交互扮演者越来越重要的角色。嗅觉敏锐的小米早在2017年已经注意到到这片蓝海市场。在Daniel加盟之前,小米已经逐步搭建了自己的语音技术团队,并推出了智能语音产品-小爱音箱。2019 年年初,小米创始人雷军提出“手机 +AIoT"双引擎发展战略,为小米在语音识别领域的发展指明了一条可行路径。“新一代Kaldi或将在明年之前将全部应用到小米所有的智能语音产品中”,Daniel向媒体表示。他说,新一代Kaldi能够适用各种场景的不同语音模型,如远近场语音唤醒、离在线语音识别、说话人识别等通用模型,以及口语评测、语种识别、语音情绪识别等。以小米小爱为例,“通过它,用户可以连接到各种各样的 AIoT 设备并与它们产生互动:智能音箱、手机、电视、智能手表、儿童故事机、车载后视镜等。”
文章插图
不仅是小米,所有企业、开发者和普通用户都可以继续享受新一代Kaldi的核心技术。Daniel表示,当初之选择加盟小米,也是因为小米承诺Kaldi可以继续作为开源项目。“小米是一家稳定的公司,重视开源开放,而且允诺我一直做开源项目,这对于我来说是最好的选择”Kaldi从诞生之日起,就是一款开源语音识别工具包。Daniel一直坚持开源工作,鼓励更广泛的用户自由使用、复制以及修改源代码,并推动智能语音技术的发展。