DoNews 9月2日消息(刘文轩)小米在 Interspeech 发布新一代 Kaldi 子项目 Icefall 1.0 正式版。Daniel Povey 加入小米,担任小米集团语音首席科学家已经有两年,他在小米的主要工作也是带领团队开发新一代 Kaldi,并努力从根本上改变语音识别的实现方式。
Daniel 在 2003 年博士毕业后,进入 IBM 研究院负责计算机语音识别方面的工作,2008 年离开 IBM,加入微软研究院,继续进行计算机语音识别方面的工作。
DoNews 在小米位于北京的总部与 Daniel Povey 进行了一次交流,Daniel 也透露,可望明年开始将新一代 Kaldi 融入小米产品中,不过当下仍有许多事情要做。
现有端到端语音识别模型的流行和准确率的逐步提升,加上 PyTorch、TensorFlow 等深度学习工具包的普及,使新一代 Kaldi 的开发得到动力。至于为什么选择将新一代 Kaldi 的开发放在小米进行,Daniel 表示,除了小米,也有其他大型互联网公司希望他能加入,但他希望可以坚持做开源项目,担心有些公司会在起初保证项目的开源,但过一两年后改变主意。选择小米是由于它是一家稳定的公司,同时也表现出对开源的重视,并承诺可以在这里一直做开源项目。
那么 Kaldi 在小米产品中的应用状况如何呢?Daniel 透露,目前小米产品中的 ASR 使用的还是第一代 Kaldi,接下来将逐步把新一代 Kaldi 融入到小米产品中,希望在今年年底或明年初开始将下一代 Kaldi 应用于小米产品,不过现在还有很多集成和测试要做。Daniel 介绍称,团队目前正在做的一件事是使用 k2 来加速现有生产模型的解码。
新一代 Kaldi 由 3 个独立的项目组成,分别为 k2、Lhotse 和 Icefall,它是一个全新的代码库,完全重新编写,主要由 C++ 和 CUDA 完成,并可以在 Python 调用。新一代 Kaldi 与第一代 Kaldi 有很多不同,新一代 Kaldi 全部运用 Python 脚本,组件比以前更解耦;机器学习后端是 PyTorch,以前使用自定义代码,而且以后还可能会支持 PyTorch 以外的机器学习后端。
谈到未来的规划,Daniel 表示,作为核心项目的 k2,团队计划未来把 k2 中一部分的 Python 脚本用 C++ 重写,这样既提高效率并更利于产品化部署。当前 k2 版本是 1.5,接下来还会创建 k2 的 2.0版本 ,计划在 12 月之前完成。
Lhotse 作为训练数据准备部分,目前已经比较完善,接下来还将持续迭代并发布新版本。Icefall 作为训练脚本集合,目前非常具有可塑性,因为这个代码库还很新,而且发展非常快。
Daniel 在 2009 年主导约翰霍普金斯大学夏季研讨会结束后,打算开发一个工具包来普及正在研究的想法,Kaldi 也由此诞生,项目在最初的研讨会大约两年后终于完成。
Daniel 表示,新一代 Kaldi 与 PyTorch 兼容,可以从机器学习的最新发展中获益,并且代码更容易修改,它比原来的 Kaldi 代码库灵活得多,它允许用户更轻松地尝试新想法。
对于将 Kaldi 开源的做法,Daniel 认为,他希望做有深远影响力的项目,开源项目可以让很多人使用,并共同参与贡献,直到今天,仍有人在 Kaldi 上贡献代码。但如果不选择开源,这一目的就很难实现。另一方面,一旦项目开源就很难闭源了,而且依附于 Kaldi 发展起来的中小企业有很多。“我会一直坚持将 Kaldi 的项目开源。”Daniel 说道。