打开文本图片集
摘 要:在人工智能技术发展的进程中,语音识别已经成为重要分支之一。语音识别技术作为人与机器的一种交互方式,将前端处理之后的信号转换成文本或者指令,进而用于控制相关智能设备。当前,基于深度学习的云端语音识别技术已经逐渐成熟,但考虑到离线设备无法使用云端语音识别API,基于本地的嵌入式语音别技术研究仍然重要。本文从嵌入式语音识别系统的组成分别介绍前端信号处理、声学模型和语言模型等相关技术点。
关键词:语音识别;嵌入式;人工智能
中图分类号:TN912.34 文獻标识码:A 文章编号:2096-4706(2019)14-0166-03
Design of Embedded Speech Recognition System Based on Cortex-A9
YUAN Yi,CHEN Shengyong
(Guangzhou Ligong Science and Technology Co.,Ltd.,Guangzhou 510660,China)
Abstract:In the process of artificial intelligence technology development,speech recognition has become one of the important branches. As a way of interaction between human and machine,speech recognition technology converts the signal processed by the front end into text or instructions,which can be used to control relevant intelligent devices. At present,cloud speech recognition technology based on deep learning has been gradually mature,but considering that offline devices cannot use cloud speech recognition API,research on local embedded speech technology is still important. In this paper,the components of embedded speech recognition system are introduced,including front-end signal processing,acoustic model and language model.
Keywords:speech recognition;embedded;AI
0 引 言
语音识别技术是人机交互的关键技术,在数十年的发展中提升显著。语音识别的起源可以追溯到二十世纪五十年代,首个语音识别系统是贝尔实验室开发的Audry系统,该系统可以识别0到9的英文数字。经过十余年的发展,在二十世纪六十年代左右,线性预测分析和动态规划算法的提出,极大地推动了语音识别技术的落地,使用线性预测编码可以对语音信号进行建模,进一步提取语音的特征来识别。随后,动态时间规整算法(DTW)、矢量量化技术(VQ)和隐马尔可夫模型(HMM)理论[1]的提出,促使语音识别相关产品逐渐具备实用性,识别算法也转变成基于统计模型的方法。在二十世纪九十年代后,人工神经网络技术[2]受到广大研究人员的关注,逐渐从图像领域发展到了语音识别技术研究,基于深度神经网络[3]的语音识别有效提升了识别率。
1 系统构成
嵌入式语音识别系统与常规语音识别系统构成一致,其区别主要在于,嵌入式语音识别所有的计算均在本地完成。如图1所示,包括硬件拾音电路部分、前端信号处理、结合声学模型和语言模型的解码部分,以及文本输出响应部分。
图1 嵌入式语音识别系统结构图
语音识别的过程大致分为三部分:首先,从硬件拾音电路中获取当前环境中的声音信号,并从中提取出相应的特征序列,提取特征的方法很多,嵌入式语音识别系统常用的是梅尔频率倒谱系数(MFCC);其次,通过声学模型对提取的特征序列解码,将特征序列映射成音素序列;最后,结合语言模型对音素序列进一步解码,输出相应的文本字符串并执行与之对应的操作。
2 基本原理
当一段语音信号通过拾音电路进入语音识别系统中,假定其通过预处理提取出特征后,表示成声学的特征向量为X=[x1,x2,x3,…,xi],向量中的xi表示某一帧语音数据的特征向量。用W=[w1,w2,w3,…,wi]表示将被预测的文本序列,或称之为词序列,其中wi为被预测序列的第i个词。语音识别最本质也是最关键的任务在于求解W*=argmaxWP(W"X),也就是需要求取出使得P(W|X)最大取值情况下的W,即最可能的文本序列。通过贝叶斯理论可以得出P(W|X)的简化形式:
由此我们发现,语音识别的关键在于求解P(X|W)和P(W)两部分,通常将P(X|W)称为声学模型的表达式,而P(W)就是语言模型的概率。
2.1 前端信号处理
前端信号处理主要是对原始的语音信号进行相关的处理,去除语音信号中可能会影响识别的噪声,使得处理后的语音信号更容易提取特征,从而提升整个嵌入式语音识别系统性能。前端信号处理主要包括语音活动检测、语音降噪、回声消除和声源定位等。
语音活动检测(VAD)在嵌入式语音系统中的作用突出,直接影响整个系统的功耗。语音活动检测主要用于检测出语音信号开始位置和结束位置,因为拾音器总是不停地采集周围环境的声音信号,但多数情况下不存在人声,因此只需要将通过VAD区分出的人声信号送入下一阶段处理,而非人声信号则直接丢弃,从而可以达到降低功耗的目的。用于语音活动检测的算法存在多种,例如,基于阈值的VAD和基于分类器的VAD。基于阈值[4]的VAD是通过在时域提取语音信号的短时能量或短时过零率判断,或者在频域提取MFCC或谱熵特征来处理,給定好合理的相关门限,从而区分出人声和非人声部分。基于阈值的VAD计算量不大,因此常用于嵌入式语音识别系统。
语音降噪[5]主要用于消除原始信号中的噪声,常见噪声包括室内风扇和空调等发出的噪声,以及室外的汽车和自然界发出的杂音。语音降噪是为了降低噪声来提升信噪比,从而达到提升识别准确率的目的。在嵌入式语音识别系统中,常用的降噪算法包含谱减法、维纳滤波法和自适应最小二乘法。
回声消除[6]顾名思义就是用于消除系统的回声,广泛用于手机免提通话中。在语音识别系统中,回声消除是实现语音打断的基础,即当嵌入式设备正通过扬声器播放音频时,回声消除会去除掉拾音器采集到的从扬声器播放的信号,仍然可以通过语音控制设备。因此在嵌入式语音识别系统中,回声消除一般使用自适应滤波的方法,通过设置滤波器来模拟回声的相应环境,估计并消除回声信号。
声源定位是智能音箱中的一项技术,用于指示说话人的方向,从而使用空间滤波消除说话人方向之外的信号。考虑到计算量大小的控制,在嵌入式系统中通常使用广义互相关的相位变换算法(GCC-PHAT)和位变换加权的可控响应功率算法(SPR-PHAT),SPR-PHAT算法[7]效果要优于GCC-PHAT算法。
2.2 声学模型
在嵌入式语音识别系统中,复杂的声学模型在有限提高识别率的同时,可能极大地增加了系统对于当前设备算力的需求。声学模型的建模是把语音信号的观测特征与句子的语音建模单元联系起来,即计算P(X|W)。嵌入式语音识别通常使用隐马尔可夫模型(HMM)建模,HMM可以有效地处理好语音信号与文本序列的不定长关系。隐马尔可夫模型图如图2所示,因此,将声学模型表达式P(X|W)展开为:
在上式中,P(w1)表示HMM的初始状态概率,不同状态或者相同状态之间的转移概率为P(w2|w1)和P(w2|w2),一般可以使用统计方法计算转移概率。状态与语音的观测特征关系P(x1|w1)、P(x2|w2)和P(x3|w2)称为发射概率,可以使用高斯混合模型(GMM)建模。当然,神经网络技术的发展也可应用于语音识别,可通过卷积神经网络CNN或者深度神经网络DNN来表征发射概率。
2.3 语言模型
当前语音识别系统尚不能缺少语言模型,语言模型可以使得语音识别在特定领域效果更佳,合理地设置语言模型,可以使得嵌入式语音识别系统实用化。语言模型主要针对声学模型预测的文字序列,通过对于特定领域文字序列特征的学习,输出综合得分最高的序列。例如,声学模型预测的文字序列可能是“你号卧室小名”或者“你好我是小明”,显而易见,我们会选择“你好我是小明”,而这种辅助选择要归功于语言模型。语言模型P(W)是序列发生的概率,通常使用链式法则来展开计算,若W为w1,w2,…,wn,那么P(W)表示成:
3 嵌入式应用
嵌入式语音识别系统主要应用于较小词汇量的离线识别方案,例如声控空调、声控台灯和声控冰箱等。嵌入式语音识别是对云端语音识别应用的补充,Cortex-A9作为一款性能较强且常用的ARM处理器,并且可搭建成熟的嵌入式Linux环境,十分有利于快速开发。
本文所述的嵌入式语音识别系统基于Cortex-A9开发,使用了第2节的相关算法,成功实现了离线语音识别的功能,可用于控制空调设备。本文所构建的命令词如表1所示。
在安静环境中,单个命令词的识别所需时间小于0.5s,识别率可达95%左右,可以适用于智能家居场景。
4 结 论
本文针对嵌入式语音识别系统的设计,分别阐述了前端信号处理、声学模型和语言模型等关键技术。前端信号处理使用了谱减法降噪和基于阈值的VAD,声学模型建模为隐马尔可夫模型,并且,语言模型使用3-gram建模等,并在Cortex-A9处理器平台得以实现。该系统识别速度和识别率表明本文所述的相关算法选择非常适用于嵌入式语音识别系统。在以后的研究中,可以继续对声学模型建模进行研究,使用新模型来进一步提升识别的准确率。
参考文献:
[1] 何湘智.语音识别的研究与发展 [J].计算机与现代化,2002(3):3-6.
[2] 毛健,赵红东,姚婧婧.人工神经网络的发展及应用 [J].电子设计工程,2011,19(24):62-65.
[3] 余凯,贾磊,陈雨强,等.深度学习的昨天、今天和明天 [J].计算机研究与发展,2013,50(9):1799-1804.
[4] 李宇,郭雷勇,谭洪舟.基于噪声倒谱阈值频谱估计的语音活动检测 [J].计算机工程,2011,37(14):140-142.
[5] 朱建华,田岚.基于谱减法和小波阈值的新型语音降噪算法研究 [J].煤炭技术,2013,32(1):171-173.
[6] 夏晓.自适应滤波器中LMS算法的研究及应用 [D].北京:北京邮电大学,2013.
[7] 王志峰,冯杰,蒋灏,等.基于SRP和GA的声源定位方法 [J].电声技术,2013,37(10):36-40.
作者简介:袁毅(1991-),男,汉族,湖南湘西人,算法工程师,工学硕士,研究方向:嵌入式人工智能技术。