春争日,夏争时,扫码抽取夏日礼包!!! 了解详情
写点什么

Kaldi 之父 Daniel Povey:我为什么选择在小米开发下一代 Kaldi?

  • 2020 年 3 月 30 日
  • 本文字数:3689 字

    阅读完需:约 12 分钟

Kaldi之父Daniel Povey:我为什么选择在小米开发下一代Kaldi?

在 2019 年小米开发者大会上,Kaldi 之父 Daniel Povey 以小米首席语音科学家的身份第一次和国内开发者见面,并表示将继续在小米进行 Kaldi 的版本开发,业界开发者对 Daniel Povey 加入小米后的动向高度关注,但却鲜有消息传出。在AICon 2020全球人工智能与机器学习技术大会(上海站)召开前期,InfoQ 有幸采访到了 Daniel Povey,听他分享对语音识别领域技术发展的想法。


在语音识别技术领域,Daniel Povey (以下简称:Daniel)的名字家喻户晓。他是语音识别开源工具 Kaldi 的主要开发者和维护者,被称为 Kaldi 之父。


过往,Daniel 在技术领域的发展轨迹始终没有离开“语音识别”。年少时,Daniel 在剑桥大学获得语音识别博士学位。工作初期,Daniel 在 IBM 研究院负责计算机语音识别的工作,并成为 Research Staff Member 的一员。随后,他又进入微软研究院继续深耕语音识别技术,2012 年,Daniel 加入约翰霍普金斯大学,担任语言和语音处理中心系主任。2019 年 12 月初,Daniel 正式加入小米成为小米首席语音科学家,主要负责下一代 Kaldi 的开发。


Kaldi 的意外诞生

当今不少广为流传的科学或技术研究成果都诞生于偶然,例如 Guido van Rossum 在开发 Python 时只是因为他在圣诞节期间觉得很无聊,所以决定开发一种新的脚本解释语言。Kaldi 的诞生与之类似。


在采访中,Dainel 表示,最初开发 Kaldi 主要是为了一个特殊的项目——子空间高斯混合模型(SGMM)发布代码。虽然现在这项技术已经不重要了,但 Kaldi 这个工具为其他很多技术提供了支持,也变得越来越受欢迎。


Kaldi 工具包自 2011 年发布以来,下载量超过了两万多次,合著的论文目前也已经被引用三千多次,Kaldi 集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,被认为是业界语音识别框架的基石。


与许多早期的机器学习框架类似,Kaldi 本身也是用 C/C++语言编写的,虽然当下 Python 是更为机器学习开发者所追捧的,但早期的大部分框架都选择了稳定的 C/C++语言。对此,Daniel 认为,高性能的代码通常在内部用 C 或者 C++实现,后上层来进行调用,或者是由上层来调用其他 C 或者 C++的第三方库。但由于设计时间较早,Kaldi 并没有 Python 接口(或编译成其他语言的接口),要编写唤起 C++程序的 shell 脚本来使用 Kaldi。


下一代 Kaldi 版本规划

在加入小米之前,国内外许多互联网头部公司都向 Daniel 抛出了橄榄枝,包括 Facebook、美团、滴滴、快手等,但在提及为什么会选择加入小米时,Daniel 表示:


我想加入一家规模比较大的公司,能有足够优秀的开发者来进行下一代 Kaldi 的研发。中国(尤其是北京)大公司云集,人才济济,所以这里自然而然成为了我的选择。我也面试了北京的一些其他公司,给我的感觉都很好,我之所以加入小米,是因为我认为小米是孵化开源软件的沃土,我觉得这里也愿意支持一项长期的开源项目,而且,小米的产品在市场上也有着良好的口碑。在我看来,小米是一家充满活力的企业,同事们都很友好且乐于助人。


Kaldi 的目标用户是那些了解语音识别技术的开发者,Kaldi 对于该领域的入门者来说并不容易。因此 Daniel 也表示接下来会研究如何简化 Kaldi。但为了避免项目的体量过大,Daniel 团队现阶段并未对 Kaldi 进行大幅度地简化,但已经在基于 PyTorch 来开发下一代 Kaldi,该项目还没有完成,也没有对外公开发布。过去几个月,Daniel 对 Kaldi 所做的最大调整就是和快速解码相关的一些变动(解码是部署语音识别系统时的图搜索程序)。


下一代 Kaldi 完成后,Daniel 希望能将其融入到小米的产品和服务中。


“和中国公司一起打造健康的社区,走向世界。”这是小米集团副总裁、集团技术委员会主席崔宝秋一直向 Daniel 重点表达的开源愿景,这也正是 Daniel 所欣赏的开源社区环境。


Kaldi 商业化落地

2017 年之前,小米没有自己的语音技术团队,但是却已经有了自己的云、大数据和 AI 平台。从过去的互联互通到未来的整体互联服务中,语音交互扮演着越来越重要的角色,小米也意识到,要想在激烈的市场竞争中占得一席之地,首先就要“自强”。


2018 年 3 月,雷军在两会的媒体沟通会上表示,“2017 年年初,小米设立了探索实验室,不久将有重磅级的人工智能产品发布。”而到了 2018 年 7 月,传闻已久的小米 AI 产品——小米 AI 音箱终于现身。在发布会上,小米联合创始人王川特意提到了小米的 NLP 团队,也就是说小米已经用上了自家的 NLP 技术。


两年间,小米不仅组建了自己的语音技术团队,还在智能产品中应用了自家的 NLP 技术,更重要的是,2019 年年初,小米创始人雷军确定了小米“手机+AIoT"双引擎战略发展模式,为小米在语音技术领域的发展指明了方向,Daniel 带着 Kaldi 的加入则会为小米的“AIoT"战略添砖加瓦。


作为一个开源项目,Kaldi 要用于商业落地还要在很多地方进行调整,例如场景优化、跨平台兼容、对内对外赋能等。加入小米之后,Daniel 负责的主要工作就是将 Kaldi 应用于现有应用,在实践中检验技术的可用性。


目前,业界已有不少企业基于 Kaldi 进行产品研发,针对这一现状,Daniel 在接受 InfoQ 记者采访时给出的建议是:


如果用于基于服务器的、没有内存限制的识别,Kaldi 已经足够优化了,不需要做其他改进。如果用于基于设备的、有内存限制的识别,有时候使用(如 RNN-T)这类端到端的模型,以及 Tensorflow 工具包可能会比仅使用 Kaldi 更有成效。


语音识别技术发展

语音识别是计算机处理和识别人类语音的能力,其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或字符序列。语音识别涉及信号处理、概率论和信息论、模式识别、声学、语言学和认知科学、人工智能等许多学科领域。


过往,工业界取得的许多技术突破是依赖学术界的研究结果,例如,语音识别技术在上世纪 50 年代就已经诞生,而到了 2012 年才在深度神经网络的助力下达到实用化,在没有应用 DNN 之前的六十年里,语音识别技术的发展极为缓慢。2015 年以前,业界更多使用的是传统的 DNN-HMM 混合模型,需要借助对齐信息和上下文相关音素才能达到比较好的识别准确率。2015 年以后,CTC 算法简化了训练过程,于是语音界纷纷投入大量资源训练更深、更复杂的神经网络,利用端到端技术进一步大幅提升语音识别的性能。2017 年 12 月,谷歌提出“使用序列到序列模型的当前最佳语音识别系统”(State-of-the-art Speech Recognition With Sequence-to-Sequence Models),将词错率降低至 5.6%,业界又开始基于此进行探索…


可以说,工业界的每一次突破背后都是学术界的研究成果在支撑,这种模式在人工智能领域最为明显。对此,Daniel 认为:


有时产品开发有助于推进研究,因为它强制我们去解决一些主流研究无法解决的问题,当研究遇到天花板时,就迫使人们要做出改变来解决问题。


语音识别技术发展至今,已经在工业、医疗、教育、金融等各行业进行了落地,而语音识别产品供应商们也表示其产品的识别准确率达到了 95%甚至 97%,针对当下语音识别技术的发展现状,Daniel 认为:


现在业内许多人士认为,语音识别系统的准确度已经很高了,但实际上这种高精准度仅仅针对的是某些特定的语音类型。现阶段,让机器来识别人们日常交流还是比较困难的,尤其是当周围环境掺杂着噪声、音乐且多人同时发声时。也就是说,我们还需要对现有的语音识别技术进行认真打磨。


结语

过去几年,我们看到了各类算法不断出现并应用在实际的业务系统中,进而提升语音识别的效果。同时,语音识别技术的应用领域越来越广,基于语音识别技术的人机交互系统开始大规模应用,并且在限定场景下已经有比较好的表现,比如机器人电话客服系统、智能手机助手、智能音箱等。从火爆渐趋冷静,从学术突破到工业落地,接下来,语音识别领域的技术突破值得期待。


嘉宾介绍:


Daniel Povey 是著名的语音识别开源工具 Kaldi 的主要开发者和维护者,被称为 Kaldi 之父。Kaldi 集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,公认是业界语音识别框架的基石。1993 年至 2003 年,Daniel 在剑桥大学度过了自己的高等教育经历,获得语音识别的博士学位。2003 年至 2008 年,Daniel 在 IBM 研究院负责计算机语音识别的工作,成为 Research Staff Member 的一员。2008 年至 2012 年, Daniel 在微软研究院参与计算机语音识别方面的工作。2012 年,Daniel 加入约翰霍普金斯大学,担任语言和语音处理中心系主任。2019 年 12 月,Daniel 正式加入小米公司,担任小米首席语音科学家,开发下一代 Kaldi。


AICon上海2020 本次也非常荣幸地请到了 Daniel 在“智能语音前沿技术”专场做精彩分享,他将为你带来智能语音方面的最新实践经验分享以及趋势预测,想要和 Daniel 大神面对面交流的同学不要错过机会!


除了智能语音,AICon 上海站还设置有智能金融、推荐广告技术及应用、AI 工程师团队建设与管理、认知智能、大数据计算和分析、NLP 等热门专场,邀请来自 BAT、微软、小米、华为、PayPal、快手等 50+ 一线 AI 技术大咖将带来更多精彩分享,目前大会 5 折报名限时最后一周!更多内容欢迎咨询小姐姐 Amy:18514549229(同微信),我们 8 月上海不见不散!点击官网了解更多。



2020 年 3 月 30 日 13:353963

评论 1 条评论

发布
用户头像
越来越多优秀的人才到中国发展
2020 年 04 月 01 日 23:20
回复
没有更多了
发现更多内容

动手实现一下 JavaScript 中的 call, apply 和 bind

Ethan

Java 大前端

解决 transition 在 display 属性上不生效的问题

Ethan

css3

架构师训练营 - 第七周 - 作业

韩挺

js基础作业总结

公众号:程序猿成神之路

Docker基础修炼5--容器数据共享和持久化实战

黑马腾云

Docker Linux 容器 运维 虚拟化

week07总结 性能测试&操作系统

Z冰红茶

简约而不简单的分布式通信基石

架构师修行之路

分布式 socket udp TCP/IP 通信协议

优秀的求职者,是如何巧妙应对面试提问呢?

xcbeyond

面试 加班 职业规划 薪资 自我介绍

iframe 隐藏滚动条、高度自适应及父子页面通信

Ethan

CSS Java html 大前端

架构师0期07周作业

我在终点等你

阿朱的决定

一直AC一直爽

随笔杂谈 观后感

关注系统压力测试

麻辣

架构师训练营Week7作业

Frank Zeng

JavaScript 类型判断

Ethan

Java 大前端

修改 Docker 数据根目录的 3 种方式

FeiLong

Docker

架构师训练营Week7学习总结

Frank Zeng

JavaScript 中 new 一个对象的过程中发生了什么

Ethan

Java 大前端

第七周学习总结

赵龙

性能优化(一)

olderwei

如何找一碗正宗的热干面

zhoo299

美食

性能测试与优化学习总结

qihuajun

第七周作业

赵龙

架构师训练营 - 第七周 - 学习总结

stardust20

性能优化作业

qihuajun

总结

chenzt

antd vue upload组件使用customRequest上传文件显示文件上传进度

Seven_xw1213

大前端 antd vue upload customRequest 进度条

Docker网络学习第三篇-路由

Lazy

Docker Linux 网络

搭建Hadoop开发环境并编写运行测试类

我是个bug

Java hadoop IDEA

Docker基础修炼6--网络初探及单机容器间通信

黑马腾云

Docker Linux 容器 运维 虚拟化

Docker基础修炼4--Docker仓库及相关命令

黑马腾云

Docker Linux 容器 运维 虚拟化

LeetCode题解:283. 移动零,JavaScript,一次遍历,详细注释

Lee Chen

大前端 LeetCode

Kaldi之父Daniel Povey:我为什么选择在小米开发下一代Kaldi?_新基建_李冬梅_InfoQ精选文章