基于嵌入式系统的语音口令识别系统的实现
扫描二维码
随时随地手机看文章
摘要:语音口令识别是信息处理的一个重要研究方向,本文给出一种基于嵌入式系统的语音口令识别系统的设计方案,硬件系统的核心芯片是嵌入式微处理器,语音口令识别算法采用连续隐马尔克夫模型。实验结果表明,将语音识别系统与嵌入式系统相结合,可以使语音口令识别系统广泛应用于便携式设备中。
关键词:语音口令识别;嵌入式系统:隐马尔克夫模型
0 引言
随着计算机技术和信息技术的迅速发展,语音口令识别已经成为了人机交互的一个重要方式之一。语音口令识别系统将根据人发出的声音、音节或短语给出响应,如通过语音口令控制一些执行机构、控制家用电器的运行或做出回答等。在数字信号处理芯片上已经实现了语音口令识别系统或语音口令识别系统的部分功能,然而随着嵌入式微处理器处理能力的大幅度提高,计算量大的语音口令识别算法已经能够通过嵌入式微处理器来完成,将语音口令识别系统与嵌入式系统相结合,发挥语音识别系统的潜力,使语音识别系统能够广泛应用于便携式设备中。
采用隐马尔克夫模型(Hidden Markov Model,HMM)描述语音信号的非平稳性和局部平稳性,HMM中的状态与语音信号的某个平稳段相对应,平稳段之间以转移概率相联系。由于HMM建模对语音信号长度和模型的混合度的要求都比较低,因此在现有的非特定人语音口令识别系
统中,多采用状态输出具有连续概率分布的连续隐马尔可夫模型(Continuous Density Hidden Markov Model,CDHMM)。
论文给出一种基于嵌入式系统的语音口令识别系统的设计方案,硬件系统的核心芯片是嵌入式微处理器,语音口令识别算法采用CDHMM。语音口令首先经过预处理,提取MFCC(Mel-Frequency Ceptral Coefficients)特征参数,然后建立此口令的CDHMM模型,把所有语音口令的模型放在模型库中,在识别阶段,通过概率输出评分,取评分最大的一个作为识别出的口令。将语音识别系统与嵌入式系统相结合,可以使语音口令识别系统广泛应用于便携式设备中。
1 硬件电路的设计和工作原理
基于嵌入式系统的语音口令识别系统需要有接收语音信号的输入芯片配合麦克风实现将模拟语音信号转换成数字信号的功能,然后由嵌入式微处理器对输入的语音口令信号进行处理。完成语音口令信号输入功能的芯片采用的是PHILIPS公司的低功耗芯片UDAl341TS,供电电源电压为3V,该音频处理芯片由模数/数模转换(ADC)、控制逻辑电路、可编程增益放大器(PGA)和数字自动增益控制器(DAGC)以及数字信号处理器等部分组成,能进行数字语音处理。
芯片UDAl341TS采用标准的内部集成电路声音总线IIS(Inter IC Sound Bus),该总线是由PHILIPS等公司共同提出的数字音频总线协议,专门用于音频设备之间的数据传输,目前很多音频芯片和微处理器都提供了对IIS总线的支持。
IIS总线有三根信号线,分别是位时钟信号BCK(Bit Clock)、字选择控制信号WS(Word Select)和串行数据信号Data,由主设备提供串行时钟信号和字选择控制信号,IIS总线的时序如图1所示。
WS也称为帧时钟信号,该信号的电平为低电平时,传输的输入音频数据信号是左声道的音频数据信号;信号WS的电平为高电平时,传输的输入音频数据信号是右声道的音频数据信号。BCK对应着输入音频数据信号的每一位音频数据,其频率为2×采样频率×每个采样值的位数。
与BCK同步的串行音频数据信号采用补码的形式传输,传输顺序是高位先传输。IIS总线格式的信号无论有多少位有效数据,数据的最高位MSB总是出现在WS信号改变(也就是传输一帧数据信号开始)后的第2个串行数据信号SCLK脉冲位置。[!--empirenews.page--]
通过上述IIS总线能够得到输入的音频数据信号,而其它的信号如自动增益控制、输入数据格式的选择和输入增益的控制等控制信号通过称为“L3”形式的接口总线传输。为了减少引脚数和保持连线简单,该接口总线采用串行数据传输方式,接口总线由3条信号线组成:时分复用的数据通道线L3DATA、模式控制线L3MODE和时钟信号线L3CLOCK。模式控制线L3MODE为低电平时的传输模式为地址传输模式;为高电平时的传输模式为数据传输模式。
语音口令识别系统的硬件电路的核心芯片是嵌入式微处理器Samsung S3C2440 AL,主频为400MHz。三星公司推出的RISC微处理器S3C2440 AL具有低功耗、高性能等特点,可以广泛应用于便携式设备中。S3C2440AL具有一个IIS总线音频编码/解码接口,语音口令识别系统的硬件电路如图2所示。其IIS总线控制器通过5根信号线与UDAl34lTS编解码芯片相连。这些5根信号线分别是:系统时钟信号CDCLK:位时钟信号I2-SSCLK;字选择控制信号I2SLRCK;串行数据输入信号I2SSDI;串行数据输出信号I2SDO。S3C2440 AL使用L3接口传输其他(如自动增益控制、输入数据格式的选择和输入增益的控制等)控制信号。为了使系统间能够更好地同步,S3C2440AL需要向芯片UDAl341TS提供CDCLK,该时钟信号的频率可以选择采样频率的256倍、384倍或512倍。
2 基于CDHMM的口令识别的软件设计
2.1 口令识别的软件系统框图
语音口令识别的软件系统分别由特征参数提取、语音模型库和概率输出评分三大模块组成,如图3所示:1)语音口令特征参数的提取,输入不同的语音口令,首先要进行特征参数提取,采用Mel频率参数作为CDHMM的建模参数,Mel频率参数是根据人耳的听觉特性将语音信号的频谱转化为基于Mel频率的非线性频谱,然后转换到倒谱域上。2)在训练阶段,对不同的语音口令建立CDHMM模型。3)在口令识别阶段,通过概率输出评分对待测语音口令做出识别。
语音口令首先经过预处理,提取MFCC特征参数,然后建立此口令的CDHMM模型,把所有语音口令的模型放在模型库中,在识别阶段,通过概率输出评分,取评分最大的一个作为识别出的口令。[!--empirenews.page--]
2.2 CDHMM算法
HMM是一种双重随机过程,用概率统计的方法描述语音信号的产生及变化过程。HMM的模型参数为λ=(N,M,π,A,B),其中,N为模型中马尔克夫链的状态数目;M为每个状态对应的可能的观察数目;π为初始状态概率矢量,π=(π1,…,πN);A为状态转移矩阵,A=(aij)N*N;B为观察概率矩阵,B=(bjk)N*N。
CDHMM的B不再是一个矩阵,而是一组观察值概率密度函数,由M个连续高斯密度函数描述:
N(o,ujk,∑jk)为多维高斯概率密度函数,o是观察矢量序列,即从语音中提取的特征矢量参数(o1,o2,…,ot),t为观察矢量序列的时间长度。ujk,∑jk分别为高斯分布的均值和方差参数,Cjk为高斯分布的权值,满足约束条件
CDHMM参数估计采用“分段K-平均法”。初始模型可以随机选取,由是改进后的模型,再将作为初始值,重新估计。
基于“分段K-平均法”的CDHMM参数估计具体过程为:
(1)设置模型参数初始值λ=(π,A,B)。
(2)根据此λ用Viterbi算法将输入的训练语音数据划分为最可能的状态序列,利用状态序列估计参数A。
(3)用分段K-平均法对B进行重新估计,即将第二步得到的每一种状态的训练语音数据搜集在一起并对其特征进行统计,从而得到B。
对于概率密度函数由若干正态分布函数线性相加的CDHMM系统,每个状态θj(1≤j≤N)的概率密度函数bj(X)由K个正态分布函数线性相加而成,这样可以把每一状态语音帧分成K类,然后计算同一类中诸语音帧矢量X的均值矢量,方差矩阵∑jk和混合密度函数中各概率密度函数的权重系数Cjk。
(4)由(2)和(3)估计的CDHMM参数作为初值,利用重估公式对CDHMM参数进行重估,得到参数。
(5)利用(4)所得的计算,并与p(O/λ)相比较。如果差值小于预定的阈值或迭代次数超过预定的次数,即说明模型参数已经收敛,无需进行重估计算,可将作为模型参数输出。反之,若差值超出阈值或迭代未到预定的次数,则将计算结果作为新的初值,重复
进行下一次迭代。
3 结束语
论文建立了一种基于嵌入式系统的语音口令识别系统,并且对上升、下降等14条口令进行测试,每条语音先切除静音,预加重,然后通过Hamming窗分帧处理,帧长和帧移分别为20ms和10ms,然后对每一帧语音信号提取16MFCC+16AMFCC共32维参数作为特征矢量。该语音口令识别系统达到了实时的要求,可以使语音口令识别系统广泛应用于便携式设备中。