特定人语音控制音乐播放器软件系统设计摘要语音识别技术是人类迈向高度智能化和自动化的信息社会所必备的关键技 术之一经过几十年的艰苦探索和研究,语音识别技术获得了极大的发展,一些 比较成熟的技术已经逐步应用于日常生活中语音识别是解决机器“听懂”人类语言的一项技术作为智能计算机研究的 主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛 关注如今,随着语音识别技术研究的突破,其对计算机发展和社会生活的重要 性日益凸现出来以语音识别技术开发出的产品应用领域非常广泛,如声控 交换、信息网络查询、家庭服务、宾馆服务、医疗服务、银行服务、工业控制、 语音通信系统等,几乎深入到社会的每个行业和每个方面本文阐述了基于MATLAB软件上实现的特定人语音控制播放器软件系统的 设计,实现应用MATLAB软件编程达到控制播放器的功能,语音控制模式能够 识别特定人“开”、“关”、“暂停”等语音指令并实现相应控制,以代替传统的鼠标 或按键操作控制播放器的开关机和播放关键词:DTW算法语音识别 特征提取语音控制Design of music player software system control of specific humanvoiceAbstractSpeech recognition is one of the most indispensable technologies for human to realize a highly intellectual and fully roboticized information society in the future. With many researchers' enormous efforts, the past tens of years have witnessed significant progress in speech recognition technologies and parts of them have already been applied in people's daily life.Speech recognition is to solve machine "understand" a human language technology. As the leading direction of the intelligent computer study and the key technology of man-machine voice communication, speech recognition technology has received extensive attention of national science. Now, with voice recognition technology research breakthroughs, the development of computer and the importance of social life is becoming more and more apparent. Based on speech recognition technology developed has a very wide range of product applications, such as voice-activated telephone exchange, information query, family services, hotel services, medical services, banking services, industrial control, voice communication system, etc., almost into every industry and every aspect of society.This paper describes the design of specific human voice control player software system based on the MATLAB software, and realizes the application of MATLAB software to control the functionality of the player, voice control mode to identify the specific "open", "closed", "pause" voice command and control, to replace the traditional mouse or keyboard operation switch control the player and play.Key words: DTW algorithm; Speech recognition ;feature extraction ; Speech control目录摘要 IAbstract II第一章 绪论 11.1 语音识别概述 11.2 毕业设计任务 11.3 本文研究内容和章节安排 2第二章 语音识别的基本原理与技术 32.1 语音识别系统 32.1.1 概述 32.1.2 语音识别原理简介 32.2.3 语音识别系统的分类 42.2 语音信号预处理 52.2.1 分帧 52.2.2 预加重 62.2.3 加窗 62.3 端点检测 72.3.1 短时能量 72.3.2 短时过零率 82.3.3 短时自相关函数 102.3.4 双门限端点检测 112.4 特征参数提取 122.4.1 LPC 与 LPCC 系数 132.4.2 MFCC 系数 132.4.3 语音信号的分析 15第三章 语音识别算法 183.1 概述 183.2 DTW 算法 183.3非特定人语音识别算法一一HMM 193.4人工神经网络(ANN)识别算法 24第四章 特定人语音控制音乐播放器的软件系统设计 254.1 语音录制 254.2 窗口的选择 254.3 语音信号的特征提取 274.4 DTW 算法实现 284.5 DTW算法的改进 304.6 其他一些相关程序的编写 314.7 特定人语音的识别结果 32第五章 特定人语音控制播放器软件的功能实现 345.1 任务与实现方法 345.2语音控制播放器程序流程图 345.3 实验结果分析 35第六章 结束语 36参考文献 37致谢 39第一章 绪论1.1语音识别概述自从计算机诞生以来,通过语音与计算机交相互动一直是人类的梦想,随着 计算机软硬件和信息技术的飞速发展,人们对语音识别功能的需求也更加明显和 迫切。
语音识别技术就是让机器通过识别和理解过程把人类的语音信号转变为相 应的文本或命令的技术,属于多维模式识别和智能计算机接口的范畴[1]传统的 键盘、鼠标等输入设备的存在大大妨碍了系统的小型化[2],而成熟的语音识别技 术可以辅助甚至取代这些设备在PDA、智能、智能型家电、工业现场、智 能机器人等方面语音识别技术都有着广阔的前景语音识别技术起源于20世纪50年代,以贝尔实验室的Audr y系统为标志⑶ 取得了动态时间归整(DTW)、线性预测分析(LP)、隐马尔可夫模型(HMM)、矢 量量化(VQ)等一系列关键技术的突破和以IBM的ViaVoice、Microsoft的 VoiceExpressH为代表的一批显著成果而国内的语音识别起步较晚,1987年开 始执行国家863计划后语音识别技术才得到广泛关注比较具有代表性的研究单 位为清华大学电子工程系与中科院自动化研究所模式识别国家重点实验室,中科 院声学所等[6]其中中科院自动化所研制的非特定人连续语音听写系统和汉语语 音人机对话系统,其准确率和系统响应率均可达90%以上[4]常见的语音识别方法有矢量量化技术(VQ)、动态时间归整技术(DTW)、隐 马尔可夫模型(HMM)、基于段长分布的非齐次隐马尔可夫模型(DDBHMM)和人 工神经元网络(ANN)[8]。
DTW是较早的一种模式匹配和模型训练技术,它应用动 态规划的思想比较成功的解决了语音信号特征参数序列比较时时长不等的难题, 在孤立词语音识别中获得了良好性能虽然HMM模型和ANN在连续语音大词汇 量语音识别系统优于DTW,但由于DTW算法计算量较少、无需前期进行长期训 练,也很容易将DTW算法移植到单片机、DSP上实现语音识别且能满足实时性⑸ 要求,故其在孤立词语音识别系统中仍然得到了广泛的应用1.2 毕业设计任务本课题运用语音信号识别与处理功能应用MATLAB软件编程达到控制播放器的功能,语音控制模式能够识别特定人“开”、“关”、“暂停”等语音指令并实现相应控制,以代替传统的鼠标或按键操作控制播放器的开关机和播放情况要求独立负责完成本设计任务,要求完成主要程序的编写、调试并能在答辩 时进行该语音识别系统的演示主要内容包括语音库的确立、录音工具的选择、语音特征参量提取、识别算法实现以及相应控制功能实现程序的编写及调试等内容1、通过录制采集语音生成语音库2、录音工具及采样频率的确定3、语音特征参量提取4、程序的编写及调试5、实现特定人语音识别1.3 本文研究内容和章节安排本文的主要研究内容是特定人语音控制音乐播放器软件系统的设计,基于MATLAB的软件环境,研究特定人的语音控制播放器的软件系统设计。
具体的内容安排如下:1. 讨论语音识别系统的基本原理讲述了孤立词识别系统的分类、基本构成 及工作原理2. 研究了语音信号的预处理和特征参数提取内容涉及语音信号的数字化、 加窗处理、端点检测,及特征向量3. 研究特定人孤立词识别算法,包括DTW识别法、HMM识别法以及神经网 络识别法4•设计一个基于DTW算法的特定人语音识别系统,可以通过特定人的语音 控制音乐播放器5.对本文工作进行小结并指出该系统的改进方向,展望了未来语音识别研究的发展趋势第二章 语音识别的基本原理与技术2.1语音识别系统2.1.1 概述语音识别主要指让机器人听懂人说的话,即在各种情况下,可以准确地识 别出语音的内容,从而根据其信息,执行人的各种意图,它是是模式识别的一 个分支,又从属于信号处理科学领域,它是一门涉及面十分广的学科,与计算 机、通信、语音语言学、数理统计、信号处理、神经生物学和人工智能等学科 都有着密切的关系语音识别其实包括两方面的含义:其一是逐字逐句听懂并 转化成书面语言文字;其二是对口述语言中所包含的要求或询问加以理解,做 出正确响应,而不拘泥于所有词的正确转换随着模式识别、计算机技术和信 号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现 成为可能。
近二三十年来,语音识别在军事、工业、医学、交通、民用诸方面 特别是在计算机、信息处理、通信与电子系统、自动控制等领域中有着广泛的 应用当今,语音识别产品在人机交互应用中,已经占到越来越大的比例 [6] 本章将对语音识别系统基本原理、所用到的语音参数算法、语音识别算法做一 简单的介绍[6,7]2.1.2 语音识别原理简介语音识别系统的典型原理框图[1,9-10]如图2-1 所示它包括特征提取、模式 匹配、参考模式库等基本单元由于语音信号是一种典型的非平稳信号,加之 呼吸气流、外部噪音、电流干扰等,这就使得语音信号不能直接用于提取特征, 而要进行前期的预处理预处理的过程包括预滤波、采样和量化、分帧、加窗 预加重、端点检测等经过预处理的语音数据就能够进行特征参数提取在训 练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为 模板库在识别阶段,语音信号经过相同的通道就可以得到语音参数,生成测 试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果后 续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输 入的语音信号转变成文本或命令模板库专家知识识别训练识别决策预处理特征提取失真测度测度估计识别结果图 2-1 语音识别系统原理框图2.2.3 语音识别系统的分类语音识别系统按照不同的角度、不同的应用范围、不同的性能要求会有不 同的系统设计和实现,也会有不同的分类。
一般语音识别系统按不同的角度有 下面几种分类方法[8]1) 孤立词、连续词、连续语音识别系统以及语音理解和会话系统从所 要识别的对象来分,有孤立字(词)识别、连续字(词)识别、连续语音识别 与理解、会话语音识别等孤立词识别系统要求说话人每次只说一个字(词)、 一个词组或一条命令让识别系统识别其中的词组或命令在词汇表中都算是一 个独立词条连续词识别一般特指十个数字(0~9)连接而成的多位数字识别或 由少数指令构成的连接词条的识别连接词识别系统在、数据库查询以及 控制操作系统中用途很广随着近年来的研究和发展,连续语音识别技术已渐 趋成熟,这个最自然的说话方式,将成为语音识别研究及实用系统的主流连 续语音识别是对说话人自然语音进行识别,其识别系统比较复杂,成本也比较 高,所以它并不是所有的应用都采用的方式会话语音识别系统的对象是人们 的会话语言它不但要利用语法信息,而且还要利用谈话话题、上下文文脉等 对话环境的有关信息2) 大词汇、中词汇和小词汇量语音识别系统一般来说,小词汇量系统 是指能识别 1~100 个词汇的语音识别系统,中等词汇量是指 100~1000 个词汇, 大词汇量系统是指 1000 个以上的词汇。
此外还有某些特定用途的中词汇量连接 词识别和无限词汇连续语音的识别等3)特定人和非特定人语音识别系统特定人是指只针对一个用户的语音 识别,非特定人则可用于不同的用户实际上,非特定人语音识别的初始识别 率往往都比较低,一般都要求用户花一定的时间对系统进行训练,将系统的参 数进行一定的自适应调整,才能使识别率达到满意的程度4)实时语音识别和非实时语音识别实时语音识别是指用户输入的语音 命令,系统在时延的范围内马上给出结果非实时语音识别是指用户给出的语 音命令,系统不会立即给出识别结果2.2 语音信号预处理语音识别系统在本质上是一种模式识别系统因此,它的基本结构如图 2-2 所示[15]图 2-2 语音识别系统的基本结构2.2.1 分帧语音信号它是一种典型的非平稳信号,它的均值函数 u(x)和自相关函数 R(xl,x2)都随时间而发生较大的变化[5,9]但是研究发现,语音信号在短时间内 频谱特性保持平稳,即具有短时平稳特性因此,在实际处理时可以将语音信 号分成很小的时间段(约10〜30ms[5,7]),称之为“帧”作为语音信号处理的最小 单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分 帧。
分帧小能清楚地描绘语音信号的时变特征但计算量大;分帧大能够减少计 算量但相邻帧间变化不大,就容易丢失信号特征一般来说取帧长20ms,帧移 为帧长的 1/3〜1/2在Matlab环境中的分帧最常用的方法便是使用函数enframe(x,len,inc),其 中x为语音信号,len为帧长,inc为帧移2.2.2 预加重对于语音信号的频谱,一般来说是频率越高幅值越小,在语音信号的频率 增加为两倍时,其功率谱的幅度下降6dB因此必须对高频进行加重处理,一 般是将语音信号通过一个一阶高通滤波器l-0.9375z-l,即为预加重滤波器它 的目的是滤除低频干扰,特别是在50Hz到60Hz的工频干扰,将对语音识别更 为有用的高频部分进行频谱提升在计算短时能量之前将语音信号通过预加重 滤波器还可起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果预 加重滤波器在Matlab中可由语句x=filter([1-0.9375],1,x)实现2.2.3 加窗为了保持语音信号的短时平稳性,可以利用窗函数来减少由截断处理导致 的Gibbs效应用的最多的三种为矩形窗、汉明窗(Hamming)和汉宁窗(Hanning)。
其窗函数如下,式中的 N 为窗长,一般等于帧长矩形窗的定义:一个N点的矩形窗函数定义为如下w ( n ) = { 1,0 < n < N0, 其他 (2-1)hamming窗的定义:一个N点的hamming窗函数定义为如下w(n)=0.54 - 0.46cos(20,其他2-2)窗口的选择是非常重要的,不同的窗口将使能量的平均结果不同矩形窗的谱平滑,但波形细节会丢失;而汉明窗则刚刚好相反,可以有效克服泄漏现 象,具有平滑的低通特性[4-6]因此,在语音的时域处理方法中,一般选择矩形窗,而在语音的频域处理方法中,一般选择汉明窗或者汉宁窗 [5-6]在 Matlab 中要实现加窗便是将将分帧后的语音信号乘上窗函数,如加汉明窗即为 x=x.*hamming(N)本系统中的端点检测因为采用时域方法故加矩形窗,计算 MFCC 系数时加汉明窗2.3 端点检测在基于 DTW 算法的语音识别系统中,无论是训练和建立模板阶段还是在 识别阶段,都需要先采用端点检测算法确定语音的起点和终点语音端点检测 指的是用计算机数字处理技术从包含语音的一段信号中找出字、词的起始点及 结束点,从而只存储和处理有效语音信号。
对于汉语来说,还可进一步找出其 中的声母段和韵母段所在的位置语音端点检测是语音分析、合成以及识别中 的一个重要环节,其算法的优劣在某种程度上可以说直接决定了整个语音识别 系统的优劣进行端点检测的基本参数主要有短时能量、幅度、过零率和相关 函数等等端点检测最常见的方法是短时能量短时过零率双门限端点检测,近 年来在此基础上发展出的动态窗长短时双门限端点检测方法[20]也被广泛使用nm=02.3.1 短时能量 语音和噪声的主要区别在于它们的能量上语音段的能量比噪声段的要大, 语音段的能量是噪声段能量叠加语音声波能量的和对第 n 帧语音信号的短时 能量 En 的定义为:2-3)xn为原样本序列在窗函数所切取出的第n段短时语音,N为帧长因为在计算时所使用的是信号的平方,故将En作为一个度量语音幅度值变化的函数有 一个缺陷,那就是对高电平非常敏感因此在许多场合会将 En 用下式来代替:E = £ 1 x (m) I2-4)nnm=0这样便不会因为取平方而造成信号的小取样值的大取样值出现较大差异图 2-3 和图 2-4 给出了不同矩形窗和 hamming 窗长的短时能量函数,我们可以发现:在用短时能量反映语音信号的幅度变化的同时,不同的窗函数以及 相应窗的长短均受到影响。
hamming窗的效果比矩形窗略好一点但是,窗的 长短影响起到了决定性作用窗过大(N很大),就等效于很窄的低通滤波器, 而不能反映幅度 En 的变化;窗过小( N 很小),使得短时能量随时间急剧变 化,而不能得到平滑的能量函数所以在11.025kHz左右的采样频率下,N选 为 100~200 比较合适短时能量函数的应用:1)可用于区分清音段以及浊音段En值大对应于浊 音段, En 值小对应于清音段 2)可用于区分浊音变为清音或者清音变为浊音 的时间(根据En值的变化趋势)3)对于高信噪比的语音信号,也可以用来区 分有没有语音(语音信号的开始点或终止点)没有信号(或者仅有噪声能量) 时,En值很小,有语音信号时,能量会显著增大度幅样采 -10 2000 4000 6000 8000 1000012000140001600018000samplN=i0度幅0样采 -10 2000 4000 6000 8000 1000012000140001600018000sample量能2时短0量2能1A 时 "■短00 2000 4000 6000 8000 1000012000140001600018000量50能0 2000 4000 6000 8000 1000012000140001600018000sampl时短0N=150sample 量能2时短0量能500 2000 4000 6000 8000 1000012000140001600018000sampl时短00 2000 4000 6000 8000 1000012000140001600018000sampl1 r量N=250能0 2000 4000 6000 8000 1000012000140001600018000sample量20能10时短00 2000 4000 6000 8000 1000012000140001600018000sample1 I i i ]N=350时短0量能N=350时短0500 2000 4000 6000 8000 1000012000140001600018000 sampl20能1时短0量N=450能0 2000 4000 6000 8000 1000012000140001600018000sample0 2000 4000 6000 8000 1000012000140001600018000same pl时短00 2000 4000 6000 8000 1000012000140001600018000sample图 2-3 不同矩形窗长的短时能量函数图 2-4 不同 hamming 窗长的短时能量函数2.3.2 短时过零率过零率能够反映信号的频谱特性[24]。
当离散时间信号相邻两个样点的正负号相异的时候,我们称之为“过零”,即此时信号的时间波形穿过了零电平的横轴统计单位时间之内样点值改变符号的次数具可以得到平均过零率定义短时平均过零率:2-5)Z 二 F |sgn[ x[m ] - sgn[ x(m - 1)]| w(n - m)nm =—gsgn其中 sgn[] 为符号函数,形窗的条件下,能够简化为|x ( n ) | = {1, x ( n ) > 0- 1, x ( n ) 0,在矩12-6)N "閭[x(m)—sgn[x(m—1)]m=n—N+1短时过零率能够粗略估计出语音信号的频谱特性由语音的产生模型可以知道,发浊音时,声带振动,尽管声道有多个共振峰,但是由于声门波引起了 频谱的高频衰落,因此浊音能量都集中于3KZ以下而清音由于声带不发出振 动,声道的某些部位阻塞气流会产生类白噪声,多数能量便集中在较高频率上高频率对应着高过零率,低频率对应着低过零率,那么过零率和语音的清浊音 便存在着对应关系 .图 2-5 为某一语音在矩形窗的条件下所求得的短时能量和 短时平均过零率分析可以得知:清音的短时能量较低,过零率高,浊音的短 时能量较高,过零率较低。
清音的过零率为0.5 左右,浊音的过零率为 0.1 左右, 但两者分布之间有相互交叠的区域,所以单纯依赖于平均过零率去准确判断清浊音是不现实的,在实际应用中往往会采用语音的多个特征参数进行综合判决短时平均过零率的应用:(1) 区别清音和浊音例如,清音的过零率较高,浊音的过零率较低此 外,清音和浊音的两种过零分布都和高斯分布曲线比较吻合2) 从背景噪声中找出语音信号语音处理领域里的一个基本问题是,怎 么将一串连续的语音信号进行适当的分割,从而确定每个单词语音的信号,亦 即找出每个单词的开始和终止位置3)在孤立词的语音识别中,可以利用能量和过零作为有话无话的鉴别sample86量能4时短20 2000 4000 6000 8000 10000 12000 14000 16000 180000sample率 零 过 均 平 时 短5%sample00 2000 4000 6000 8000 10000 12000 14000 16000 18000图 2-5 形窗条件下的短时平均过零率2.3.3 短时自相关函数自相关函数是用于衡量信号自身时间波形的相似性的清音和浊音的发声机理不相同,因而在波形上也会存在着较大的差异。
浊音的时间波形呈现出了 一定的周期性,波形之间相似性比较好;清音的时间波形呈现出随机噪声的特 性,样点间的相似性较差因此,我们可以利用用短时自相关函数来测定语音的相似特性短时自相关函数定义为:R (k)= 乙 x (m) w (n 一 m) x (m + k) w (n 一 m 一 k) nm =—g令m = n + m',且 w(-m) - w'(m),可以得到:R (k) = S[x(n+m)M^(m)] X(n+m+k)w(m+k)]=S [x(n+m)w(m)]X(n+m+k)w(m+k)] nm=_g2-7)2-8)图 2-6 给出了清音的短时自相关函数波形,图 2-7 给出了不同矩形窗长条件下(窗长分别为N=70, N=140, N=210, N=280)浊音的短时自相关函数波形由图2-6、图2-7短时自相关函数波形分析可以得知:清音接近于随机噪声,清音的短时自相关函数是不具有周期性的,也没有明显突起的峰值,并且随着延 时 k 的增大迅速减小;浊音是周期信号,浊音的短时自相关函数呈现明显的周 期性,自相关函数的周期实际上就是浊音信号的周期,根据这个性质可以判断 一个语音信号究竟是清音还是浊音,还可以判断出浊音的基音周期。
浊音语音 的周期可用自相关函数中第一个峰值的位置来估算所以在语音信号处理中, 自相关函数常用来作以下的两种语音信号特征的估计:1)区分语音是清音还是浊音;2)估计浊音语音信号的基音周期图 2-6 清音的短时自相关函数1 1N=7050-501 1N=140\/ 、20 40 6080 100 120 140 160 180 200 22050延时k-501020 40 6080 100 120 140 160 180 200 220-10100z\N=28020 40 6080 100 120 140 160 180 200 220延时 k20 40 60 80 100 120 140 160 180 延时k200220-10图 2-7 不同矩形窗长条件下的浊音的短时自相关函数2.3.4 双门限端点检测双门限端点检测顾名思义就是需要两级检测,即短时能量的检测和短时过 零率的检测在开始检测之前需要先设定 4 个门限,即分别为短时能量和短时 过零率各设置一个高门限和一个低门限:EHigh、ELow和ZHigh、ZLow整个 语音端点检测分成了四部分:静音段、过度段、语音段、结束段在静音段中 如果能量或过零率其中有一个超过了其低门限,则被认为进入了过度段。
在过 度段中,由于参数的数值较小,还不能确定其是否真的进入语音段,只有两个 参数的其中一个超越了高门限才会被认为是进入语音段当参数降至低门限则 会被认为进入结束除此之外,还有两种可能会引起端点检测的误判:一个是 短时噪音引起的误判,此时便需要引入最小语音长度门限进行噪声判定,即语 音段时间小于一定数值则认定其为是噪声,重新回到静音段,本系统设为 20ms; 一个是语音中字与字的时间空隙引起的误判,此时就需要设定最大静音长度门 限来降低识另的错误率在双门限端点检测中 4 个门限的设定都至关重要,门限设定的好坏会直接 影响到端点检测的结果门限值的设置目前还没有一个通用可靠的方法,需要 根据经验以及特定的环境进行调整最常见的方法有最大值乘上其中的某个比 率、中位值乘上某个比率、最小值乘上某个常数、前三帧平均值乘上某个常数2.4特征参数提取语音信号经过预处理后,接下来很重要的一环那就是特征参数的提取对 于特征参数的要求是:(1) 提取的特征参数能够有效地代表语音特征,具有很好的区分性2) 各阶参数之间具有良好的独立性3) 特征参数要使得计算方便,最好有高效的计算方法,以保证语音识另 的实时实现。
语音特征参数的提取就是从语音波形中提取随时间而变化的语音特征序 列,从而使在语音识另时类内距离尽量小,类间距离尽量大特征参数提取是 语音识另的关键问题所在,特征参数选择的好坏将会直接影响到语音识另的精 度用于语音识另的特征参数有很多种,大致可归为下述几类:(1)基于发声器官如声道、声门和鼻腔的生理结构而提取的参数如共振 峰、谱包络、基音等其中基音能够很好地刻画说话人的声带特征,在很大程 度上反映出了人的个性特征2) 基于声道的特征模型,通过线性预测(LP)所分析得到的参数包 括了线性预测系数(LPC)以及由线性预测导出的各种参数,例如线性预测倒 谱系数(LPCC)、反射系数、部分相关系数、LSP线谱对、对数面积比、线性 预测残差等等根据前人的工作成果以及实际测试比较, LPCC 参数不但可以 较好地反馈声道的共振峰特性,具有较好的识别效果,而且可以使用比较简单 的运算和较快的速度求得3) 基于人耳的听觉机理,反映听觉特性,模拟人耳对声音频率感知的特 征参数例如 MEL频率倒谱参数(Mel-Frequency Cepstral Coefficients,简称 MFCC)等MFCC参数和基于线性预测的倒谱分析相比,突出的优点就是不 依赖全极点语音产生模型的假定,在与上下文无关的说话人识别系统中 MFCC 参数能够比 LPCC 参数更加有效地提高系统的识别性能。
此外,人们还通过对不同特征参数量的组合来提高实际系统的性能当各 组合参量间相关性不大时,将会有较好的效果,因为它们分别反映了语音信号 的不同特征2.4.1 LPC 与 LPCC 系数LPC(Linear Prediction Coefficient,线性预测系数)模拟人发音器官的声管模 型,是一种基于语音合成的参数模型在语音识别系统中一般很少直接使用LPC 系数,而是由 LPC 系数推出的另一种参数 LPCC LPCC(Linear Prediction Cepstrum Coefficient,线性预测倒谱系数)是LPC在倒谱域中的表示它的特征 是基于语音信号为自回归信号的假设,利用线性预测分析获得倒谱系数 LPCC 的优点是计算量小,比较容易实现,对元音具有较好的描述能力,缺点是对辅 音描述能力比较差2.4.2 MFCC 系数LPC模型是基于发音模型建立的而其实LPCC系数也是一种基于合成的系 数,这种参数没有能够充分利用人耳的听觉特性实际上,人的听觉系统是一 个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系[9-10]近些年来,一种可以比较充分利用人耳的这种特殊感知特性 的系数得到了广泛的应用,这就是 Mel 尺度倒谱系数 (Mel-scaled Cepstrum Coefficients,简称MFCC)。
大量研究表明,MFCC系数可以比LPCC参数更好 地提高系统的识另性能[10]MFCC系数的计算是以“bark”为其频率基准的,它和线性频率的转换关系如下:f = 25951og (1 + f )mel 10 700 (2-9)MFCC 系数也是按照帧计算的,首先要通过 FFT 得到该帧信号的功率谱 S(n),然后转换为Mel频率下的功率谱这需要在计算之前先在语音的频谱范 围内设置若干个带通滤波器:Hm(n) m=0,l,...,M-l; n=0,l,...,N/2-lM为滤波器的个数,通常取24,与临界带的个数一样;N为一帧语音信号 的点数,为了计算FFT的方便,通常取256而滤波器在频域上为简单的三角 形,其中心频率 fm 在 Mel 频率轴上是均匀分布的如图 2-8所示为 Mel 尺度 滤波器组,包含24个滤波器,语音信号帧长取为256个点,语音信号的采样频 率为 8KHz,20406080100120Frequency [Hz]Mel-Spaced Filterbank1406260208041281III!100140图 2-8 Mel 尺度滤波器组带通滤波器的系数事先计算好,在计算MFCC系数是直接使用。
MFCC系数的计算过程如下:预处理:确定每一帧语音采样序列的长度(如N=256),并对每帧序列s(n) 进行预加重、分帧和加窗处理;计算离散功率谱:对预处理的每帧进行离散 FFT 变换得到其频谱,再取模 的平方作为离散功率谱 S(n);将功率谱通过滤波器组:计算S(n)通过M个Hm(n)后所得的功率值,即计 算S(n)和Hm(n)在各离散频率点上的乘积之和,得到M个参数Pm,m=0丄…… M-1;取对数:计算Pm的自然对数,得到Lm,m=O,l,……M-1;离散余弦变换:对Lm计算其离散余弦变换,得到D m,m=0,1, M-1,舍去代表直流成份的DO,取Dl,D2,……,Dk作为MFCC参数具体流程可以用框图 2-9 表示为:语曰信号图 2-9 MFCC 系数计算流程图MFCC系数在 Matlab 环境中计算 M 个滤波器的系数可以调用语音工具箱 voicebox 中的函数melbankm(m,n,fs)来实现,其中m为滤波器的个数,n为语音帧长,fs 为采样频率计算 mfcc 系数的函数为 melcepst(s,fs), s 为语音信号2.4.3语音信号的分析1 参数分析语音信号是一种典型的非平稳信号。
但是,由于语音的形成过程是与发音 器官的运动密切相关的,这种物理运动比起声音振动速度来讲要缓慢得多,因 此语音信号常常可被假定为短时平稳的,即在 1O 一 2Oms 这样的时间段内,其 频谱特性和某些物理特征参量可被近似地看作不变这样,我们就可以采用平 稳过程的分析处理方法来处理,一般而言语音信号处理的方法都是基于这种短 时平稳的假设的根据语音信号所分析参数的不同,语音信号参数分析可以分 为时域、频域、倒谱域分析等[13]本文仅涉及时域及频域参数分析2 时域分析进行语音信号最为直观的分析方法就是时域分析语音信号本身就是时域 信号,因而时域分析是最早使用,也是应用最广泛的一种方法,这种方法直接 利用语音信号的时域波形时域分析通常用于最基本的参数分析以及语音的分 割、预处理和大分类等时域分析方法的特点是:第一,表示语音信号比较直 观,物理意义明确;第二,实现起来比较简单,运算量少;第三,可以得到语 音的一些重要参数;第四,采用示波器等通用设备,使用简单[14]2.1 短时能量分析短时能量分析用途:第一,可以区分清音段和浊音段,因为浊音时的短时 平均能量值比清音时大得多;第二,可以用来区分声母与韵母的分界、无声与 有声的分界、连字的分界等。
如对于高信噪比的语音信号,短时平均能量用来 区分有无语音无语音信号噪声的短时平均能量很小,而有语音信号的能量则 显著增大到某一个数值,由此可以区分语音信号的开始点或者终止点2.2 短时过零率分析过零就是信号通过零值对于连续语音信号,可以考察其时域波形通过时 间轴的情况对于离散时间信号,如果相邻的取样值改变符号则称为过零由 此可以计算过零数,过零数就是样本改变符号的次数单位时间内的过零数称 为平均过零数短时过零分析通常用在端点侦测,特另是用来估计清音的起始 位置和结束位置3 频域分析短时傅立叶分析在运用离散时间傅立叶变换分析语音信号的变化时,会遇 到这样的问题,即单一的傅立叶变换并不能反映时间变化的频谱信息,诸如时 变共振峰和谐波具体而言,通常将信号的每一时刻与其相邻时刻信号的傅立 叶变换相联系,这样就可以及时跟踪信号的频谱变化语音信号的短时傅立叶 变换见程序所述可以验证,在短时傅立叶分析中对于同一种窗函数而言,其通带宽度与窗 长成反比如果希望频率分辨率高,则窗长应尽量取长一些;如果希望时间分 辨率高,则窗长尽量取短一些由此可见,傅立叶分析的时间分辨率和频率分 辨率是相互矛盾的,这是短时傅立叶本身所固有的弱点。
短时傅立叶分析一般 采用汉明窗作为分析窗[15]通过基于 MATLAB 和短时频域分析,能够得出[16]:第一,长窗具有较高 的频率分辨率,但具有较低的时间分辨率从一个周期到另一个周期,共振峰 是要发生变化的,这一点即使从语音波形上也能够看出来然而,如果采用较 长的窗,这种变化就模糊了,因为长窗起到了时间上的平均作用第二,短窗 的频率分辨率低,但具有较高的时间分辨率采用短窗时,能够从短时频谱中 提取出共振峰从一个周期到另一个周期所发生的变化当然,激励源的谐波结 构也从短时频谱上消失了第三,在对语音信号进行短时傅里叶分析时,窗长 需要折衷考虑一方面,短窗具有较好的时间分辨率因而能够提取出语音信号 中的短时变化;但另一方面,损失了频率分辨率第四,汉明窗都具有低通的 性质,且在截止频率处比较尖锐,当其通带较窄时(窗越宽,通带越窄),加 窗后的频谱更能够较好反映短时语音信号的频谱,窗越宽这种逼近越好第三章 语音识别算法3.1概述语音识别是研究如何采用数字信号处理技术自动提取以及决定语音信号中 最基本、最有意义的信息的一门新兴的边缘学科目前,常用的语音识别算法 有:基于模板匹配的动态时间规整法(DTW)、基于统计模型的隐马尔可夫模 型法(HMM )以及基于神经网络的识别法等等[101。
3.2 DTW算法在孤立词语音识别中,最为简单有效的方法是采用 DTW(Dynamic Time Warping)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模 板匹配问题,是语音识别出现最早、较为经典的一种算法,主要用于中、小词 汇量,孤立词的语音识别用于孤立词识别时,DTW算法与HMM算法在相同 的环境条件下,识别效果相差不大,但 HMM 算法在训练阶段需要提供大量的 语音数据,通过反复计算才能得到模型参数,而 DTW 算法的训练中几乎不需 要额外的计算所以在孤立词语音识别中,DTW算法仍得到广泛的应用[191无论在训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确定 语音的起点和终点已存入模板库的各个词条称为参考模板,一个参考模板可 表示为{R(1),R(2),......R(m), ......R(M)}, m为训练语音帧的时序标号, m=1 为起点语音帧, m=M 为终点语音帧,因此 M 为该模板所包含的语音帧总 数,R (m)为第m帧的语音特征矢量所要识别的一个输入词条语音称为测 试模板,可表示为{T(1),T(2),......T(n),......T (N)},n 为测试语 音帧的时序标号,n=1为起点语音帧,n=N为终点语音帧,因此N为该模板所 包含的语音帧总数,T(n)为第n帧的语音特征矢量。
参考模板与测试模板一 般采用相同类型的特征矢量(如MFCC)、相同的帧长、相同的窗函数和相同 的帧移假设测试板和参考板分别用T和R表示,为了比较它们之间的相似度,可 以计算它们的距离D[T,R],距离越小则相似度越高为了计算这一失真距离, 应从 T 和 R 中各个对应帧之间的距离算起设 n 和 m 分别是 T 和 R 中任意选 择的帧号,d[T (n) , R (m)]表示这两帧特征矢量之间的距离距离函数取决 于实际采用的距离度量,在 DTW 算法中通常采用欧氏距离若N=M则可以直接计算,否则要考虑将T (n)和R (m)对齐对齐可 以采用线性扩张的方法,如果N
路径不是随意选择的,首先任何一种语音的发音快慢都有可能变 化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出 发,往右上角结束,如图 3-1 所示3.3非特定人语音识别算——HMM1 .HMM 模型HMM是隐马尔可夫模型(Hidden Markov Model)的简称,它的应用是20 世纪80年代以来语音识别领域取得的重要成果与DTW相比,HMM 一方面 用隐式的状态对应于声学各相对稳定的发音单位,并通过状态转移和状态驻留 来描述发音的变化;另一方面它引入了概率统计模型,不再用动态时间对齐的 方法来求匹配距离,而是用概率密度函数计算语音参数对 HMM 模型的输出概 率,通过搜索最佳状态序列,以最大后验概率为准则找到识别结果总之, HMM 模型较为完整地表达了语音的声学模型,并且采用统计的训练方法将底层的声 学模型与上层的语言模型融入统一的语音识别搜索算法中,可以获得较好的结 果[8]2.语音识别中的 HMM在语音识别中,所谓的观察序列就是通过计算所得到的一帧帧的语音参数, 如 MFCC 参数而状态则是在训练阶段事先规定好的不同语音单元对于汉语 普通话来说,语音单元可以是一个完整的音节,也可以是声母或韵母,还可以 是更为精细的音素。
一个 HMM 模型由若干个状态组成,随着时间的变化,各个状态之间可以 发生转移,也可以在一个状态内驻留每个观察向量对不同的状态都有相应的 输出概率如图3-2所示的HMM,包含有四个状态S1〜S4,状态之间或状态自 身的转移概率用a^表示,输入观察序列为才……,oT每个观察序列是一帧 语音特征参数在这个模型,序列中才……,oT是可以观测的输入序列,称 为观察序列,而每一时刻所处的状态却是隐式的3.HMM 的定义一个有N个状态(S], S2,......, SN)的HMM模型由三元参数九=(A, B, n)表示的,其中(1) n=[兀],n2, ,nN]为初始分布矢量,用于描述给定的观察序列 0=0]02……oT在t=1时刻所处状态q1属于模型中各状态的概率分布,即:n1=P(q1=Si) i=l,2, ,N它满足 艺兀二1 (3-1)ii(2) A={ a.j }N N={a」i,j=1,2,……,N}为状态转移概率矩阵,这里a..=P1J N N ij ij(甲+1时刻Iq/时刻),是从状态i转移到j的状态转移的概率分布;(i=1,2,…,i,…,j,…,N),它满足艺j二1若只考虑一阶HMM,当前所处状态qt只与i前一时刻所处状态 qt-1 有关,即:aij=p(qt=Sj|qt-1=Sj,①卢”……"(力引兔卢) (3-2)(3) 状态符号观察概率 B: B 为观察序列 O 中任一观察(它是随机变量 或随机矢量在各状态的观察概率空间中的分布)。
这个分布有离散型和连续型两 类,分别相应于离散HMM和连续HMM对于离散模型B={bjk}N*N是对应一 矢量量化器码矢的概率矩阵;对于连续模型B=bi(x)是描述状态I特征矢量的概 率密度函数在此,为 HMM 中状态数, M 为矢量量化器码数的大小以上就是隐马尔可夫模型的完整定义及说明从定义看出, HMM 与有限 状态的一阶马尔可夫链一样地用初始分布、状态转移概率矩阵来描述有限长随 机序列的统计特性,但他不同于马尔可夫链由每一观察即可确定当前所处状态, 而是由每一观察仅能估算出当前处于各种状态的概率就是说,它具有双重性, 是一种双重随机过程[20][23]4.HMM 的三个基本问题用 HMM 模型构成语音识别系统,需要解决三个基本问题[20][24][26]:(1)输出概率的计算问题:给定观察序列0= (O1,02,……,0T)和HMM 模型九=(A,B,n),如何计算观察斜率对HMM模型的输出概率P (0|九)设 有一语音O= (O],O2,……,OT),T为语音长帧(帧数),模型九产生O的概率可采用前后向算法,使其计算量降低到 N2T 次运算定义 前向变量丐⑴和后向变量卩2)分别为Nat(i)=po],o2,・・ot,qt=sj/九)=工 aiQ-gjbjGQ, i=1NP£(i) = P(ot-1,ot-2,"qt = si,九)=工 aijbj(ot-1)P j(t +1)j=1前向算法过程如下:初始化:ai(i)=兀 ibi(oi),1< i < N,3-3)3-4)3-5)a t + l(j)=工 a t(i)a iji = 1bj(ot +1),1 < t < T,1 < j < N3-6)递推:结束:3-7)3-8)NP(o / 九)=工 aT (i) i=1后向向量的计算过程如下:初始化:Pt(i)=1,1
常用的算法是Viterbi算法3)模型参数的估计问题:如何调整模型参数九=(A, B, n),使P (Q|九) 最大这三个问题中最难的一个,因为没有解析法可用来求解最大似然模型,所 以只能使用迭代法(如Baum-W。