什么是 ASR?
自动语音识别(ASR)是把口语转换成书面文字的技术。 ASR 系统接收音频信号,分析其中的声音,再推断出最有可能的词序列。转录软件、语音助手、实时字幕、听写工具和语音搜索背后都是它。
ASR 是 automatic speech recognition 的缩写,也有厂商写作 automated speech recognition,两者指的是同一回事。想用两分钟快速了解,请阅读我们的ASR 概览。本文则会讲得更深,从引擎本身一直讲到背后 70 年的研究。
这个词常和另外三个概念混在一起,而它们各自回答的是不同的问题:
- ASR(自动语音识别) 把语音音频转换成文字,回答“说了什么?”
- 语音转文字 是同一项技术的产品化叫法,回答的同样是“说了什么?”
- 声纹识别(说话人识别) 辨认或验证是谁在说话,回答“是谁说的?”
- NLP(自然语言处理) 理解文字的含义,回答“这是什么意思?”
在实际使用中,ASR 和语音转文字可以互换:ASR 是工程术语,语音转文字是产品说法。最容易混淆的是声纹识别。它认的是说话的人,就像手机只为机主解锁;ASR 则不管是谁在说,照样把话转写出来。NLP 位于下游:音频先变成文字,再由 NLP 做摘要、回答相关问题或据此执行操作。
ASR 是如何工作的?
现代 ASR 是一个把音频直接映射成文字的神经网络,但在历史上的大部分时间里,它都是由五个独立模型串成的流水线。
经典流水线的工作方式如下,后文的发展史正是一块一块把它搭起来的:
- 采集与预处理。 音频经过数字化和清理,再被切成很短的帧,每帧通常只有几十毫秒。
- 特征提取。 每一帧都被转换成一组紧凑的数值,描述它在不同频率上的能量。
- 声学模型。 这个模型把这些特征对应到音素,也就是一门语言最基本的发音单位,判断刚才最可能发出了哪些音。
- 语言模型。 这个模型知道哪些词序列更常见,所以引擎会写出“我想睡觉”而不是“我想水饺”:两者都对得上音频,只有一个说得通。
- 解码器。 解码器在声学模型和语言模型的联合概率中搜索,输出最有可能的那句话。
转向端到端
从 2010 年代中期开始,端到端深度学习模型(如今大多基于 Transformer 架构)用数十万小时的语音训练,直接学会从原始音频到文字的映射。不再需要手工编写的发音词典,也不再有单独的声学模型,网络把这一切一并学会。正是这一转变,让转录准确率在 2010 年代的提升超过了此前四十年的总和。
由于这些模型从海量音频中学习,它们应对口音、背景噪音和自然对话的能力远胜流水线系统,而且能在同一步里预测标点和大小写,所以现代转录稿读起来就像一份正式文档。
ASR 准确率如何衡量
业界的标准指标是词错误率(WER):把机器转录稿和一份仔细校对过的人工转录稿逐词比对,每一个替换、删除和插入的词都算一次错误。5% 的 WER 大约相当于每 20 个词错 1 个,也就是 95% 的准确率。WER 完全取决于测试音频,所以两家厂商的准确率数字很少能直接比较;我们的指南详细讲解了计算公式,还附有计算器。
语音识别一览
- 诞生
- 语音识别诞生于 1952 年:贝尔实验室的 Audrey 系统能识别单一说话人念出的 0 到 9 十个数字。
- 首款消费级软件
- 1990 年上市的 Dragon Dictate 售价约 9,000 美元,是第一款面向公众销售的语音识别产品,用户每说一个词都得停顿一下。
- 首次听懂 1,000 个词
- 1976 年,卡内基梅隆大学的 Harpy 能听懂 1,011 个词,正是 DARPA 为其五年期语音理解研究计划定下的目标。
- 与人类持平
- 2017 年,Microsoft 在 Switchboard 电话语音基准上测得 5.1% 的词错误率,与转录同一批通话的专业转录员打成平手。
- 开放模型
- OpenAI 于 2022 年 9 月发布的 Whisper 以 680,000 小时音频训练而成,能转录近 100 种语言,模型权重公开。
- 今天
- Sonix 创立于 2017 年,支持 54+ 种语言,准确率达 99%,一小时的录音约 5 到 6 分钟即可转录完成。
语音识别发展史始于 1952 年的贝尔实验室
第一台语音识别机 1952 年诞生于贝尔实验室,它只听得懂十个词:从零到九的数字。
Audrey:自动数字识别器
K. H. Davis、R. Biddulph 和 S. Balashek 用模拟电路搭建了 Audrey,整套设备装满了一个六英尺高的继电器机架。说话人对着电话听筒念出一个数字,机器测量元音的共振峰,听到哪个数字,旁边的指示灯就会亮起。按设计者本人的声音调校后,识别率可达 97% 到 99%;换成陌生人就基本失灵。Audrey 从未走出实验室,因为让接线员拨号更便宜,但它回答了一个根本问题:机器到底能不能听懂人说话。
IBM Shoebox 与 1960 年代
1962 年,IBM 在西雅图世界博览会上展示了 Shoebox。它能识别 16 个口述词,也就是十个数字和六个算术指令,并用它们驱动一台加法机。美国、英国、日本和苏联的实验室陆续造出了能识别元音和小词表的机器;1968 年,Taras Vintsyuk 提出了动态时间规整,让机器可以比较语速不同的语音。到 1969 年,这个领域雄心有余而理论不足,贝尔实验室的 John Pierce 甚至把它比作把水变成汽油的把戏。
DARPA 的语音理解研究计划把词汇量推过了 1,000 词
1971 至 1976 年,DARPA 资助了当时规模最大的语音识别研究,卡内基梅隆大学的 Harpy 达成了 1,000 词的目标。
五年目标
语音理解研究计划要求做出这样一套系统:能听懂多位说话人的连续语音,词汇量 1,000 词,错误率低于 10%;DARPA 出资让卡内基梅隆大学、BBN、SRI 等机构同台竞争。1976 年在卡内基梅隆大学完成的 Harpy 能听懂 1,011 个词,大致相当于三岁孩子的词汇量,也是唯一达标的系统。它的诀窍在于搜索时尽早剪掉不太可能的词序列,而不是逐一权衡所有可能,这个思路至今仍是每一个解码器的核心。
统计方法的转向
同一时期还诞生了此后 40 年间无人能敌的思路。在卡内基梅隆大学,James Baker 1975 年的博士论文描述了 DRAGON 系统,它把语音当作隐马尔可夫模型来处理,让概率而非手写规则来判断说了哪些词。在 IBM,Fred Jelinek 的团队把同样的方法做进了一套研究用听写系统,并加入 n-gram 语言模型,识别器因此可以根据前两个词猜测下一个词。与此同时,贝尔实验室从单一说话人转向多人,造出了能跨说话人工作的识别器,这正是电话应用所需要的。
1980 年代,隐马尔可夫模型让语音识别走向统计化
1980 年代用概率取代了模式匹配,词汇量在十年间从几百个词增长到 20,000 个。
隐马尔可夫模型如何“听”
隐马尔可夫模型并不试图把声音和模板逐一比对。它问的是:哪一串音素最有可能产生收到的这段音频,然后哪一串词最有可能产生这串音素。概率由录音语料训练得出,所以数据越多,识别器就越好,这一特性在互联网到来之后变得举足轻重。隐马尔可夫模型与 n-gram 语言模型结合,成为每一个研究实验室的标准架构,直到 2012 年被深度学习取代。
Tangora、Sphinx 与第一批产品
到 1980 年代中期,IBM 的 Tangora 已能识别 20,000 词的词汇量,不过它要求词与词之间停顿,还得针对每位说话人单独训练。1988 年,李开复 (Kai-Fu Lee) 在卡内基梅隆大学开发的 Sphinx 系统首次把大词汇量、连续语音和说话人无关三者集于一台识别器。James Baker 和 Janet Baker 于 1982 年创立的 Dragon Systems 开始销售面向个人电脑的识别软件。语音识别也第一次走进了消费者的生活:1987 年,Worlds of Wonder 的 Julie 玩偶能回应几句口语,电话公司也开始试用语音拨号。这些玩具很粗糙,却把“语音识别”这个说法带进了寻常人家。
1990 年代,语音识别登上个人电脑
更快的处理器让听写从实验室演示变成了盒装软件,一套共同的基准也让进展变得容易衡量。
Dragon Dictate 到 NaturallySpeaking
Dragon Dictate 于 1990 年上市,售价约 9,000 美元。它是第一款普通公众能买到的语音识别产品,但要求每说一个词就停顿一下。1997 年,Dragon NaturallySpeaking 去掉了这个停顿:它能在家用 PC 上识别连续语音,速度约为每分钟 100 词,同年 IBM 以 ViaVoice 应战。律师、医生或作家第一次可以对着电脑说话并得到可用的文字,前提是先训练它,再逐一纠错。
电话语音菜单与最早的基准
1996 年,BellSouth 推出了 VAL,一个能回答口头提问的拨入式语音门户,此后您与之周旋过的每一套自动电话系统都是它的后代。在幕后,DARPA 和美国国家标准与技术研究院每年在 Switchboard 电话语料库等共享录音上组织评测,词错误率成了每个实验室都要汇报的数字。从那时起,语音识别的历史很大程度上就是这个数字不断下降的历史。
2000 年代,语音识别搬上了云端
这十年的大部分时间里,准确率停在 80% 左右,直到 Google 把识别从设备搬到了自己的服务器上。
平台期
到 2001 年,最好的系统转录听写语音的准确率约为 80%,之后几年带来的是修修补补,而非飞跃。桌面听写始终是小众市场,电话语音菜单依旧让人恼火,研究经费也日渐减少。隐马尔可夫模型已接近天花板,而将要取代它的模型还没有等来所需的算力和数据。
Google Voice Search
Google 2007 年推出的 GOOG-411 号码查询服务收集了数百万条口语查询。2008 年 11 月,Google Voice Search 以 iPhone 应用的形式上线,语音识别的形态从此改变:手机只负责录音,识别则在 Google 的数据中心里运行,所用模型远超任何设备的容量,并以 2300 亿词的搜索查询训练而成。识别从一个程序变成了一项服务,至今仍是这个形态。
