最近在学习语音识别的一些知识,做了一些笔记,这篇文章讲讲语音识别的发展,以及相关的几个容易混淆的概念。
从物理声音被转换为电信号,再通过模数转换器转换为数据。一旦被数字化,就可适用若干种模型。语音识别的技术,就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术。
50年代:贝尔实验室开始语音识别的研究,主要研究基于简单的孤立词的语音识别系统。实现针对特定说话人的十个英文数字的孤立词语音识别系统。
60年代:出现三个关键的技术,提出一种时间规整的机制,采用动态规划算法实现动态时间规整DTW技术,利用音素动态跟踪的方法进行连续语音识别的开创性工作。为语音识别的后来发展奠定了基础。
70年代:语音识别技术快速发展的时期。实现大规模语音识别,大词汇量,孤立词识别。
80年代:基于隐马尔科夫模型的声学建模和基于n.gram的语言模型。尝试大词汇量、非特定人连续语音识别。
90年代:语音识别技术基本成熟的时期,基于GMM-HMM的语音识别框架得到广泛使用和研究。
20年代初期:语音识别并没有得到非常好的应用,因为系统的错误率还很高。2006年开始再度兴起。
通信基础知识和信号处理、声学基本知识和特征、概率论和信息论、统计学、机器学习等等。
语音识别
简称ASR(Automatic,Speech,Recognition),将声学语音进行分析,并得到对应的文字或拼音信息。
自然语言处理
简称NLP(Neuro-linguistic programming),用于将用户的语音转换为结构化的、机器可以理解的语言。
语音唤醒
简称KWS(keyword spotting),技术通过在设备或软件中预置唤醒词,当用户发出该语音指令时,设备便从休眠状态中被唤醒,并响应指令。
语音合成
简称TTS(Text To Speech),即将文本转换成语音,实现让机器说话。
声纹识别
简称VPR(Voice Print Recognition),根据说话人的声波特性进行身份辨识的服务,是生物识别技术的一种。
应用场景的区别
语音识别、声纹识别、自然语言处理,以及语音合成四者的目的和应用场景是不同的。
类型 |
简称 |
目的 |
应用场景 |
语音识别 |
ASR |
语音——》文字 |
生成字幕、智慧会场、语音唤醒、智能客服 |
声纹识别 |
VPR |
识别说话人的身份 |
身份认证、公安刑侦 |
语音唤醒 |
KWS |
语音——》指令 |
小度音箱、小爱音箱 |
语音合成 |
TTS |
文字——》语音 |
智能音箱 |
语言处理 |
NLP |
语音——》语言 |
同声翻译、自动阅卷 |
以小米音箱为例(来自MTSC大会上小米工程师的分享)。
在四个阶段里,输入和输出分别是下方的内容:
阶段 |
唤醒KWS |
语音识别ASR |
语音处理NLP |
语音播报TTS |
IN |
关键字语音 |
用户指令语音 |
用户指令文字 |
播报文字 |
OUT |
是否唤醒 |
文字 |
应对处理+播报文字 |
播报语音 |
示例 |
小爱同学 回复我在 |
现在几点了 |
Domin:time Intention:current time To_speek:现在时间是九点 |
播放MP3音频:现在时间是九点 |
出于保护用户隐私和减少误识别两个因素的考虑,智能音箱一般在检测到唤醒词之后,才会开始进一步的复杂信号处理(声源定位、波束形成)和后续的语音交互过程。
一般而言,唤醒模块是一个小型语音识别引擎。由于语音唤醒的目标单一(检测出指定的唤醒词),唤醒只需要较小的声学模型和语言模型来区分出有无唤醒词出现),声学评分和解码可以很快,空间占用少,能够在本地实时。
所以讲到这里,亚马逊的音响半夜突然启动和开始说话,就不奇怪了~
最多人容易将语音识别和声纹识别混淆。
声纹识别和语音识别在原理上一样,都是通过对采集到的语音信号进行分析和处理,提取相应的特征或建立相应的模型,然后据此做出判断。但语音识别是从不同人的词语信号中寻找共同因素,声纹识别是通过语音波形中反映说话人生理和行为特征的语音参数。
声纹识别一般会连接到公安部的声纹数据库,鉴别人的身份。所承载的功能特点和人脸识别是一样的,都是为了证明,“你是张三,还是李四”。所以声纹识别不注重语音信号的语义,而是从语音信号中提取个人声纹特征,挖掘出包含在语音信号中的个性因素。
按使用范围分类
从语音识别的使用范围分类,可分为封闭域识别和开放域识别,具体概念及优劣如下方表格:
范围 |
概念 |
算法 |
应用场景 |
提供形式 |
封闭域识别 |
以预先指定的字/词集合为识别范围,对范围之外的语音会拒识 |
声学模型和语言模型进行裁剪,使得识别引擎的运算量变小 |
不涉及到多轮交互和多种语义说法的场景。 如电视盒子,智能音箱 |
一般将引擎封到嵌入式芯片或者本地化的SDK中,从而使识别过程完全脱离云端,摆脱对网络的依赖,并且不会影响识别率 |
开放域识别 |
无需预先指定识别词集合,在整个语言大集合范围中进行识别 |
声学模型和语音模型一般都比较大,引擎运算量也较大 |
实时性要求不高的客服语音质检,录制完的视频转字幕配置等。如会议字幕系统 |
基本上都只以云端形式提供(云端包括公有云形式和私有云形式),依赖于网络 |
按识别对象分类
根据识别的对象不同,语音识别任务大体可分为三类,孤立词识别、关键词识别、连续语音识别。
范围 |
概念 |
应用场景 |
孤立词识别 |
识别事先已知的孤立的词 |
如“开机”、“关机”等 |
关键词识别 |
检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现 |
如在一段话中检测“计算机”、“世界”这两个词 |
连续语音识别 |
识别任意的连续语音, |
如一个句子或一段话 |
按发音人分类
根据发音人,可以把语音识别技术分为特定人语音识别和非特定人语音识别。
特定人语音识别(SD),只能识别一个或几个人的语音。
非特定人语音识别(SI),可以被任何人使用系统,更符合实际需要,但要比针对特定人的识别困难得多。