语音识别控制小车设计本科设计

上传人:jin****ng 文档编号:125127311 上传时间:2022-07-26 格式:DOC 页数:51 大小:842KB
收藏 版权申诉 举报 下载
语音识别控制小车设计本科设计_第1页
第1页 / 共51页
语音识别控制小车设计本科设计_第2页
第2页 / 共51页
语音识别控制小车设计本科设计_第3页
第3页 / 共51页
资源描述:

《语音识别控制小车设计本科设计》由会员分享,可在线阅读,更多相关《语音识别控制小车设计本科设计(51页珍藏版)》请在装配图网上搜索。

1、语音识别控制小车设计本科设 计河南科技大学本科毕业设计(论文)基于语音识别的智能小车摘要随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使 得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音 识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来 越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本 需要手工操作的工作用语音来方便地完成。语音识别按说话人的讲话方式可分为孤立词 (Isolated Word) 识别、连接 词(Connected Word)识别和连续语音(Continuous Speech)识别。从识别对象 的类型来看,语音识别可以分

2、为特定人 (Speaker Dependent) 语音识别和非 特定人(Speaker Independent)语音识别。本设计采用的识别类型是特定人孤 立词语音识别。本系统分上位机和下位机两大方面。上位机利用 PC 上 MATLAB 强大 的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口 控制等工作,根据识别到的不同语音通过 PC 串口向下位机发送不同的指 令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后, 根据不同的指令控制小车完成不同的动作。该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹 配算法进行了些许改进。 本设计达到了预期目标 ,实现了所

3、期望的功能效果。关键词:MATLAB,语音识别,端点检测,LPC,单片机,电机控制河南科技大学本科毕业设计(论文)SMART CAR GASED SPEECH RECOGNITIONABSTRACTWith the development of computer technology,pattern recognition,signal processing technology and acoustic technology etc, the speech recognition system that can meet the various needs of people is more

4、 possible to achieve.The past three decades, the voice recognition in the field of computer, information processing, communications and electronic systems, automatic control has increasingly wide range of applications.Speech recognition by the speakers speech can be divided into isolated word (Isola

5、ted Word) identification, conjunctions (Connected Word) and continuous speech recognition (Continuous Speech) identification. Identifying the type of object from the point of view, the voice recognition can be divided into a specific person (Speaker Dependent) speech recognition and non-specific (Sp

6、eaker Independent) speech recognition. This design uses the identification type is a specific person isolated word speech recognition.This design is of a good implementation of speech recognition in the control field, it does the work that would otherwise require manual operation by the voice of peo

7、ple easily.This system includes two major aspects:the host system and the slave system. The host system use the MATLAB on the computer which has powerful mathematical computing ability to do the work of voice input, endpoint monitoring, feature extraction, matching, identification and serial control

8、,then it send different commands through the PC serial port to slave system according different recognised voice. The slave system is a car controlled by a single-chip河南科技大学本科毕业设计(论文)micro-controller.It controls the car do different actions according different instructions received.The design is che

9、cking and realization of the existing speech recognition algorithm and I the endpoint detection and matching algorithms were slight improved.This design achieved the expected goals and achieved the desired functional effect.KEY WORDS : MATLAB,Speech Recognition,Extreme Points Test,LPC,Chip Microcomp

10、uter,Motor Drive河南科技大学本科毕业设计(论文)目录前 言 1第1章 系统总体设计方案介绍 2第2章 上位机设计 32.1 语音识别简介 4语音识别发展 4语音识别的分类 42.2 声音录入 52.3 声音的预处理 5欲加重处理 6分帧处理 62.4 端点检测 6过零率 6音量 7过零率和音量积谱 8用过零率和音量积谱来检测端点 92.5 特征参数提取 10特征参数概述 10用MATLAB实现LPC系数的计算 142.6 语音识别中的模式匹配 14DTW算法原理14程序实现 172.7 MATLAB 上的 GUI 设计18第3章 下位机设计 203.1 小车总体设计 20小车总

11、体框图 20小车结构设计 213.2 小车硬件设计 21单片机电路设计 21河南科技大学本科毕业设计(论文)驱动电路设计 23稳压电路设计 243.3 小车软件设计 25主程序流程图 25部分主程序 26底层驱动程序 28结论 30参考文献 31致谢 31附录 32河南科技大学本科毕业设计(论文)前言随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使 得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音 识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来 越广泛的应用。语音命令控制可广泛用于家电语音遥控、玩具、智能仪器 及移动电话等便携设备中。使用语音作为人

12、机交互的途径对于使用者来说 是最自然的一种方式,同时设备的小型化也要求省略键盘以节省体积。当 今,语音识别产品在人机交互应用中已经占到越来越大的比例。语音识别按说话人的讲话方式可分为孤立词 (Isolated Word) 识别、连接 词(Connected Word)识别和连续语音(Continuous Speech)识别。孤立词识别 是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个 词条,一般用在语音电话拨号系统中。连接词语音识别支持一个小的语法 网络,其内部形成一个状态机,可以实现电话语音查询、航空定票等系统。 连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音

13、录 入的听写机。从识别对象的类型来看,语音识别可以分为特定人 (Speaker Dependent) 语音识别和非特定人 (Speaker Independent) 语音识别。特定人是 指只针对一个用户的语音识别,非特定人则可用于不同的用户。实际上, 非特定人语音识别的初始识别率往往都比较低,一般都要求用户花一定的 时间对系统进行训练,将系统的参数进行一定的自适应调整,才能使识别 率达到满意的程度。本设计采用的识别类型是特定人孤立词语音识别。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操 作的工作用语音来方便地完成。本系统分上位机和下位机两大方面。上位 机利用 PC 上 MATL

14、AB 强大的数学计算能力,进行语音输入、端点监测、 特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过 PC 串 口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收 到上位机传来的指令后,很据不同的指令控制小车完成不同的动作。该设计对语音识别的现有算法进行了验证和实现, 并对端点检测和匹 配算法进行了些许改进。 为了更方便的进行上位机的操作, 本设计用 MATLAB 的 GUI 设计了一个图形界面。上面设置了串口选择框、录音开始按钮、语河南科技大学本科毕业设计(论文) 音识别结果框等。下位机采用 STC2C5A60S2 单片机作为控制中心,采用 L298 专用驱动芯片搭

15、建双桥,进行点击的正反转调速等控制。 本设计达到了预 期目标,实现了所期望的功能效果。第1章 系统总体设计方案介绍本系统分上位机和下位机两大方面。上位机利用 PC 上 MATLAB 强大的 数学计算能力,进行语音的输入、端点监测、特征参数提取、匹配、识别、 串口控制等工作,根据识别到的不同语音通过 PC 串口向下位机发送不同的 指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后, 很据不同的指令控制小车完成不同的动作。 PC 机和小车之间通过串口无线 传输模块进行数据传输。总体框图如图 1-1 所示:N/单片机控a无线1-1 系统总体框第2章 上位机设计河南科技大学本科毕业设计(

16、论文)上位负责语音的识别,并根据识别到的不同结果向下位机(小车)发 送不同的指令。上位机的设计基于 MATLAB 平台,利用 MATLAB 强大的数学 计算能力,进行语音的输入、预处理、端点监测、特征参数提取、匹配、 识别、串口控制等工作。2.1 语音识别简介2.1.1 语音识别发展 随着时代的发展,人们越来越注重生活的品质。便捷时尚成为当代人 们的追求目标。随着计算机技术、模式识别和信号处理技术及声学技术等 的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十 年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域 中有着越来越广泛的应用。语音命令控制可广泛用于家电语音

17、遥控、玩具、 智能仪器及移动电话等便携设备中。使用语音作为人机交 互的途径对于使 用者来说是最自然的一种方式,同时设备的小型化也要求省略键盘以节省 体积。当今,语音识别产品在人机交互应用中已经占到越来越大的比例。2.1.2 语音识别的分类语音识别按说话人的讲话方式可分为孤立词 (Isolated Word) 识别、连接 词(Connected Word)识别和连续语音(Continuous Speech)识别。孤立词识别 是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个 词条,一般用在语音电话拨号系统中。连接词语音识别支持一个小的语法 网络,其内部形成一个状态机,可以实现简单的

18、家用电器的控制,而复杂 的连接词语音识别系统可以用于电话语音查询、航空定票等系统。连续语 音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听 写机。显然,连续非特定人语音识别的难度要大得多,因为不仅有说话人 口音的问题,还有协同发音、断字断句、搜索等问题,除了考虑语音的声 学模型外还要涉及到语言模型,如构词法、文法等。从识别对象的类型来看, 语音识别可以分为特定人 (Speaker Dependent) 语音识别和非特定人 (Speaker Independent) 语音识别。特定人是指只针对一 个用户的语音识别,非特定人则可用于不同的用户。实际上,非特定人语 音识别的初始识别率

19、往往都比较低,一般都要求用户花一定的时间对系统 进行训练,将系统的参数进行一定的自适应调整,才能使识别率达到满意 的程度。非特定人大词表连续语音识别是近几年研究的重点,也是研究的难点。 目前的连续语音识别大多是基于 HMM( 隐马尔可夫模型 )框架,并将声学、 语言学的知识统一引入来改善这个框架,其硬件平台通常是功能强大的工 作站或 PC 机。2.2 声音录入本设计利用 PC 上的话筒口进行声音录入。通过 MATLAB 的 wavrecord 函数进行声音录入。 wavrecord 是 MATLAB 的专有声音录入函数,他有一下 三种调用方式:(1)y = wavrecord(n,Fs)(2)

20、y = wavrecord(n,Fs,ch)(3)y = wavrecord(n,Fs,dtype)其中n代表声音录入的总采样数。Fs代表声音的采样率。ch代表声音 录入采用的通道数,当ch为1时为单声道,当ch为2时为立体声。dtype 代表采样数据的存储类型, MATLAB 提供四种存储类型如下:(1)double (default value), 16 bits/sample(2)single, 16 bits/sample(3)int16, 16 bits/sample(4)uint8, 8 bits/sample本设计单次采样总数为 50000 点,采样率为 22000HZ 。即:y

21、=wavrecord(50000,22000);2.3 声音的预处理河南科技大学本科毕业设计(论文)2.3.1 欲加重处理预加重的目的在于滤除低频干扰,尤其是 50Hz 或 60Hz 的工频干扰, 将对于语音识别更为有用的高频部分的频谱进一步提升。在计算短时能量 之前应用该滤波器,还可以起到消除直流漂移、抑制随机 噪声和提升清音 部分能量的效果。2.3.2 分帧处理 在计算各个系数之前要先将语音信号作分帧处理。语音信号是瞬时变化的,但在1020ms内是相对稳定的我设定的采样频率为11025所以我 们对预处理后的语音信号S1(n)以1024点为一帧进行处理,帧移为512个 采样点。2.4 端点检

22、测 所谓端点检测,就是在实时输入的声音信号中,区分背景噪声和环境 噪声,准确地判断出声音信号的开始点和结束点。 在语音识别系统中 ,正确、 有效地进行端点检测不仅可以减少计算量和缩短处理时间 ,而且能排除无 声段的噪声干扰、提高语音识别的正确率。研究表明 ,即使是在安静的环境 下,语音识别系统一半以上的错误可能主要来基于 MTLAB 编写的语音端点检 测程序。除此之外 , 在语音合成、 编码等系统中 ,高效的端点检测也直接 影响甚至决定着系统的主要性能。因此 , 端点检测的效率、 质量在语音处 理系统中显得至关重要。2.4.1 过零率过零率(Zero Crossing Rate )是在每个音框

23、中,音讯通过零点的次 数。一般而言,噪声的过零率大于气音的过零率,而气音的过零率又大于 有声音的过零率。一半情况下,噪声的波形和声音波形相比幅度非常小, 为了排除噪声对过零率产生的影响,我将声音的原始谱向上平移,使得噪 声的过零点影响大大减小。如下,图 2-1 展示了没有平移前的过零谱图, 图 2-2 展示了平移后的过零谱图。可以看出,平移后,话音可以很容易从 噪音中区分开来。声音波形100.511.522.533.5x 10 4过零谱00.511.522.53x-203.510 42-1 平移前的过零谱声音波形00.511.522.533.5x 10 4过零谱00.511.522.533.5

24、x 10 42-2 平移后的过零谱2.4.2 音量 能量或者音量代表声音的大小,可由声音讯号的震幅来类比,又称为 能量( Energy )或强度( Intensity )等。话音的能量远比噪声的能量要大河南科技大学本科毕业设计(论文)故可用能量来区分是静音还是由话音。这里将每帧的幅度绝对值之和作为210-1-2每一帧的总能量大小。音量谱如图 2-3 所示:0 0.5 1 1.5 2 2.5 3 3.5 x 1042-32.4.3 过零率和音量积谱通常利用短时能量来检测浊音,用过零率来检测清音,两者配合实现 可靠的端点检测。端点检测算法常用的是由语音能量和过零率组合的有双 门限法,以及短时能量和

25、过零率的乘积构成的能频值法。图 2-4 展示了过 零谱、音量谱和过零率和能量成绩构成的谱线。声音波形过零谱100500000.511.522.533.5x 104x 104420过零音量积谱00.511.522.53 3.5x 1042-4 过零音量积谱50000.511.522.533.5音量谱x 1042.4.4 用过零率和音量积谱来检测端点端点检测算法常用的是由语音能量和过零率组合的有双门限法,以及短时能量和过零率的乘积构成的能频值法。这里采用的是第二种方法,通 过能量和过零率的乘积构成的能频值来判断语音的端点。这里我对端点进行了两级判断。首先根据过零率和音量积设定一个较 高的门限 T

26、H , 若谱大于 T H ,则可确定 2个端点 A、 B, 并可认为这 2 个端点之间是语音信号 , 这样相当于完成初判。 再根据背景噪声的过零率 和音量积设定一个比 TH 稍低的门限 T L , 如果信号的能量大于 TL ,则所 对应的端点 C、 D 之间仍是语音信号 ,至此完成了第二级判断。判断结果如图 2-5所示:声音波形0 0.5 11.52 2.53 3.5语音波形210-1x 1042-5 端点检测出的语音波形2.5 特征参数提取2.5.1 特征参数概述 对于特征参数,有多种参数可供选取。常见的有三种:(1)线形预测系数特征矢量 (LPC)(2)LPC 倒谱特征矢量 (LPCC)(

27、3)Mel 倒谱系数 (MFCC)1. 线性预测系数 (LPC) 这里我采用最简单的一种线形预测系数特征矢量 (LPC) 。 线性预测(Linear Prediction) 分析是最有效的语音分析技术之一,在语音编码、语 音合成、语音识别和说话人识别等语音信号处理领域中得到了广泛的应用。河南科技大学本科毕业设计(论文)基本思想是:一个语音信号的抽样值可以用过去的若干个抽样值的线性组 合来逼近。语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒 至几十毫秒,则可以得到一系列近似稳定的信号。人的发 音器官可以用若 干段前后连接的声管进行模拟,这就是所谓的声管模型。由于发音器官不可能毫无规

28、律地快速变化,因此语音信号是准稳定的 (quasi steady)。全极点线性预测模型(LPC)可以对声管模型进行很好的描 述,这里信号的激励源是由肺部气流的冲击引起的,声带可以有周期振动 也可以不振动,分别对应浊音(Vowel)和清音(Consonant),而每段声管则 对应一个LPC模型的极点。一般情况下,极点的个数在1216之间,就可以足够清晰地描述语音信号的特征了。LPC是语音分析的重要手段,它能很好地进行谱估计,即可作为语音特征的参数。因此仅用12个LPC系数就能很好地表示复杂语音信号的特征,这就大大降低了信号的冗余度并有效地 减少了计算量和存储量,使之成为语音识别和语音压缩的基础。

29、nk nk=1k = 1,2, p 2.1 (i,0) = a (i, k)上式表示p个方程构成的方程组,未知数为 p个。求解该方程组,就 可以得到系统的线性预测系数。由基于自相关的递推求解公式求解,也就 是所谓的Durbin算法得:E (0) = R (0) nn2.2R (i)a (i-i)R (i- j)nj nk =4i E (i-1)n2.3 a (i ) = k ii2.4a (i) = a (i-1) -k a (i-1), 1 j ijji i- j2.5E(i)= (1 一k2)E(i-i)ni n2.6公式中,上标表示第i次迭代,每次迭代只计算和更新ar行 a直 到i二p时

30、,结束迭代。在MATLAB中利用lpc函数计算LPC系数,其语法为:a = lpc(x,n);这里x为一帧语音信号,n为计算LPC参数的阶数。通常x为240点或 256点的数据,n取1012,对语音识别来说就已经足够。2. 线性预测倒谱系数 (LPCC)在语音识别系统中,很少直接使用LPC系数,而是由LPC系数推导出另一种参数:线性预测倒谱系数(LPCC)。倒谱实际上是一种同态信号处理 方法,标准的倒谱系数计算流程需要进行 FFT 变换,对数操作和相位校正 等步骤,运算比较复杂。在实际运作中大多数语音识别系统都会采用倒谱 参数来作为有关距离的度量。 LPC 倒谱系数是描述说话人声道特性的,广

31、泛应用于声纹识别。在实际计算中,当序列x(n)为最小相位的情况下,可以利用序列x(n) 及其倒谱系数c(n)的递推关系来简化计算。序列x(n)及其复倒谱系数c(n)的递推公式如下:0, n Jk=o2.7LPCC参数是一种非常重要的参数,它不是由原始信号x(n)得到,而是由LPC系数am得到的。由2.6式可得LPC到LPCC的直接递推关系。c = log G 20 2.8m 一1 kc = a + 乙 c a ,1 m p mm k m-kk=i2.103. Mel 尺度倒谱系数 (MFCC)LPC模型是基于发音模型建立的,LPCC系数也是一种基于合成的参数。 这种参数没有充分利用人耳的听觉特

32、性。实际上,人的听觉系统是一个特 殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个 对数的关系。近年来,一种能够比较充分利用人耳这种特殊的感知特性的 参数得到了广泛的应用,这就是 Mel尺度倒谱参数(Mel-scaled Cepstrum Coefficient),或称Mel频率倒谱系数,简称为MFCC。大量的研究表明, MFCC参数能够比LPCC参数更好地提高系统的识别性能。从目前使用的情况 来看,在大词汇量语音识别应用中已逐渐取代原本常用的线性预测编码导 出的倒频谱参数,原因是它考虑了人类发声与接收声音的特性,具有更好 的鲁棒性。由于语音信号在时域上的变化快速而不稳定,所以

33、通常都将它 转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。所以通常 将加窗后的帧经过快速傅立叶变换(FFT),求出每帧的频谱参数。再将每 帧的频谱参数通过一组N个(N 般为2030个)三角形带通滤波器 所组成的 Mel 频率滤波器,将每个频带的输出取对数,求出每一个输出的 对数能量(log energy ) Ek, k =1, 2,.N。再将此N个参数进行余弦 变换(cosine transform ) 求出 L 阶的 Mel -scale cepstrum 参数。MFCC参数的计算是以“ bark”为其频率基准的,它和线性频率的转换 关系是:f = 25951og (l+f)mel

34、 i0 700 211MFCC 参数也是按帧计算的。首先要通过 FFT 得到该帧信号的功率谱 S(n) ,转换为 Mel 频率下的功率谱。这需要在计算之前先在语音的频谱范 围内设置若干个带通滤波器:H (n), m = 0,1, , M -1, n = 0,1, ,N -1 m22.12MFCC参数的计算通常采用如下的流程:(1)首先确定每一帧语音采样序列的点数。对每帧序列s(n) 进行预加重处理后再经过离散FFT变换,取模的平方得到离散功率谱 S(n)。(2) 计算S(n)通过M个Hm(n)后所得的功率值,即计算S(n)和Hm(n)在各离散频率点上乘积之和,得到 M个参数Pm,m = 0丄,

35、M - 1。(3) 计算Pm的自然对数,得到Lm,m = 0丄,-1。(4) 对” 5 , Sr计算其离散余弦变换,得到Dm,m = 0丄,M - 1。(5) 舍去代表直流成分的D0,取D1,D2, ,DK作为MFCC参数。 用MATLAB实现LPC系数的计算 本系统使用的特征参数是线性预测系数(LPC)。在MATLAB中利用lpc函数计算LPC系数,其语法为:a = lpc(x,n);这里x为一帧语音信号,n为计算LPC参数的阶数。通常x为240点或 256点的数据,n取1012,对语音识别来说就已经足够。2.6 语音识别中的模式匹配2.6.1 DTW 算法原理目前,语音识别的匹配主要应用H

36、MM和DTW两种算法。DTW算法由于没 有一个有效地用统计方法进行训练的框架,也不容易将低层和顶层的各种 知识用到语音识别算法中,因此在解决大词汇量、连续语音、非特定人语 音识别问题时较之HMM算法相形见绌。HMM是一种用参数表示的,用于描述 随机过程统计特性的概率模型。而对于孤立词识别,HMM算法和DTW算法在相同条件下,识别效果相差不大,又由于DTW算法本身既简单又有效,但HMM 算法要复杂得多。它需要在训练阶段提供大量的语音数据 ,通过反复计算才河南科技大学本科毕业设计(论文)能得到参数模型,而DTW算法的训练中几乎不需要额外的计算。鉴于此,DTW 更适合本系统的要求。在孤立词语音识别中

37、,最为简单有效的方法是采用 DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决 了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一 种算法。用于孤立词识别, DTW 算法与 HMM 算法在训练阶段需要提供大量的 语音数据,通过反复计算才能得到模型参数,而 DTW 算法的训练中几乎不 需要额外的计算。 所以在孤立词语音识别中, DTW 算法仍然得到广泛的应用。无论在训练和建立模板阶段还是在识别阶段,都先采用端点算法确定 语音的起点和终点。已存入模板库的各个词条称为参考模板,一个参考模 板可表示为 R=R ( 1),R(2),

38、R(m), R (M),m 为训练语音帧的时序标号, m=1 为起点语音帧, m=M 为终点语音帧,因此 M 为该模板 所包含的语音帧总数,R (m)为第m帧的语音特征矢量。所要识别的一个 输入词条语音称为测试模板,可表示为T=T(1),T(2),,T(n), T(N),n 为测试语音帧的时序标号, n=1 为起点语音帧, n=N 为终点语音 帧,因此N为该模板所包含的语音帧总数,T(n)为第n帧的语音特征矢 量。参考模板与测试模板一般采用相同类型的特征矢量(如 MFCC, LPC 系 数)、相同的帧长、相同的窗函数和相同的帧移。假设测试和参考模板分别用T和R表示,为了比较它们之间的相似度,

39、可以计算它们之间的距离DT,R,距离越小则相似度越高。为了计算这一失真距离,应从T和R中各个对应帧之间的距离算起。设n和m分别是T 和R中任意选择的帧号,dT (n),R (m)表示这两帧特征矢量之间的距 离。距离函数取决于实际采用的距离度量,在 DTW 算法中通常采用欧氏距 离。若N=M则可以直接计算,否则要考虑将 T (n)和R (m)对齐。对齐可 以采用线性扩张的方法,如果 NM可以将T线性映射为一个M帧的序列, 再计算它与R (1),R (2),R (M) 之间的距离。但是这样的计算 没有考虑到语音中各个段在不同情况下的持续时间会产生或长或短的变 化,因此识别效果不可能最佳。因此更多的

40、是采用动态规划(DP)的方法。如果把测试模板的各个帧号 n=1N 在一个二维直角坐标系中的横轴上标出,把参考模板的各帧号 m=1M 在纵轴上标出,通过这些表示帧号的整 数坐标画出一些纵横线即可形成一个网络,网络中的每一个交叉点( n,m) 表示测试模式中某一帧的交汇点。DP算法可以归结为寻找一条通过此网络 中若干格点的路径,路径通过的格点即为测试和参考模板中进行计算的帧 号。路径不是随意选择的,首先任何一种语音的发音快慢都有可能变化, 但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出 发,在右上角结束。为了描述这条路径,假设路径通过的所有格点依次为( n ,m ), (n ,m

41、 ), (n ,m ),其中(n ,m ) = (1, 1),(n ,m )= (N,M)。路径可以用函数m=0(n )描述,其中n=i, i=1, 2, ,N,0(1)=1,0(N) =M。为了使路径不至于过倾斜,可以约束斜率在0. 52的范围内,如果路径已经通过了格点( n ,m ),那么下一个通过的格点( n ,m ) 只可能是下列三种情况之一:(n , m ) = (n +1, m +2 )(n ,m )=(n +1,m +1)(n ,m )=(n +1,m )用r表示上述三个约束条件。求最佳路径的问题可以归结为满足约束 条件r时,求最佳路径函数m=0(n ),使得沿路径的积累距离达到

42、最小值, 即:搜索该路径的方法如下:搜索从( n ,m )点出发,可以展开若干条 满足 的路径,假设可计算每条路径达到( n ,m )点时的总的积累距离, 具有最小累积距离者即为最佳路径。易于证明,限定范围的任一格点( n , m )只可能有一条搜索路径通过。对于(ni, mi),其可达到该格点的前一 个格点只可能是(n , m )、(n , m -1 )和(n , m -2 ),那么(n , m ) 一定选择这 3个距离之路径延伸而通过( n ,m ),这时此路径的积累距离 为:D(n ,m ) =dT(n ),R(m )+D(n , m )其中的n = n -1 ,m -1由下式决定:D(

43、n ,m ) =minD(n , m ),D(n , m -1),D(n , m -2)这样可以从(n , m ) = ( 1, 1)出发搜索(n , m ),再搜索(n , m ),河南科技大学本科毕业设计(论文)对每一个( n ,m )都存储相应的前一格点( n ,m )及相应的帧匹配距 离dn , m 。搜索到(n ,m )时,只保留一条最佳路径。如果有必要的 话,通过逐点向前寻找就可以求得整条路径。这套DP算法便是DTW算法。2.6.2 程序实现DTW算法可以直接按上面的描述来实现,即分配两个 NXM的矩阵,分 别为积累距离矩阵D和帧匹配距离矩阵d,其中帧匹配距离矩阵d (i,j) 的

44、值为测试模板的第i帧与参考模板的第j帧间的距离。D (N,M)即为最 佳匹配路径所对应的匹配距离。程序中,首先申请两个nXm的距阵D和d,分别为累积距离和帧匹配 距离。这里n和m为测试模板与参考模板的帧数。然后通过一个循环计算 两个模板的帧匹配距离距阵d。接下来进行动态规划,为每个格点(i,j) 都计算其三个可能的前续格点的累积距离D1、D2和D3。考虑到边界问题,有些前续格点可能不存在,因此要加入一些判断条件。最后利用最小值函数min,找到三个前续格点的累积距离的最小值作为 累积距离,与当前帧的匹配距离d(i,j)相加,作为当前格点的累积距离。 该计算过程一直达到格点(n,m),并将D (n

45、,m)输出,作为模板匹配的 结果。程序如下:functiondist=fDTW(t,r)n = size( t,1);m = size(r,1);if(abs(n-m)1D2 = D(i-1,j-1);elseD2 = realmax;endif j2D3 = D(i-1,j-2);elseD3 = realmax;endD(i,j) = d(i,j) + min(D1,D2,D3);endenddist = D(n,m);elsedist=realmax;End2.7 MATLAB 上的 GUI 设计河南科技大学本科毕业设计(论文)MATLA 作为功能强大的科学计算软件, 同样也提供了图形用

46、户界面设计 的功能。在 MATLAB 中,基本的图形用户界面对象包括三类:用户界面控件 对象,下拉式菜单对象和快捷菜单对象。根据这些图形对象,可以设计出 界面友好。操作方便的图形用户界面。本系统的整个上位机使用 MATLAB 做的,为了更方便的进行操作,我用 MATLAB 的 GUI 设计了一个图形界面。上面设置了串口选择框、录音开始按 钮、语音识别结果框等。实际界下面如图 2-6 所示:2-6 MATLAB-GUI 界面第3章 下位机设计3.1 小车总体设计3.1.1 小车总体框图系统总体框图如下所示。整个系统以单片机作为控制中心,单片机前 要接受上位机传来的控制指令,后要根据收到的指令控制

47、小车完成不同的 功能。小车共有两个电机,有 L298 构成的 H 桥来驱动。稳压电路采用线性 稳压芯片 7805 来完成。系统框图如图 1-1 所示:3-1 系统总体框3.1.2 小车结构设计本小车底盘采用三轮结构,两个动力轮分别由两个直流电机单独驱动 第三个轮是转向轮,可以三百六十度转向。核心板采用通用板搭建,采用 专用芯片插槽,方便单片机的拆卸。驱动电路和稳压电路焊在同一通用板 上,两个板子用铜柱固定为上下两层,节省空间。整个小车实物图见附录3.2 小车硬件设计3.2.1 单片机电路设计本系统单片机采用的是宏晶公司的 STC12C5A60S2 ,它采用增强型 8051 内核。指令代码完全兼

48、容传统 8051 单片机,但速度比传统 8051 单片机快 8-12 倍。单片机控制电路主要有复位电路、晶体振荡电路两部分。其总体电路图如图 3-2 所示:U1INI 1_u 1 2 3 dip- ppp p*Pl.5Pl.d PL7 RST RXD/P3 0 DCD/P3.L INT0P3 2 INT1/P3.3 T0/P34 T1/P3 5 WR/P3.6 RD/F3.7 STALZ XTAL1 VSSVCCPD.Q/ADO PD. L/ADL PD.2/AD2PD.3ZAD3P0.4/AD4PD.5ZAD5P0.6AD6PD.7ZAT-7 EA ALE/PROC PSEN P2.7UL1

49、5 P3.6/A14 PZ.5/A13 P2.4/A12 P2.3/A1L PZ.Z/A10 P2.1/A9 FZ.0/A339333736353433323130 u28262524Z322214UVCCSTC12C5A60S23-21. 复位电路河南科技大学本科毕业设计(论文) 复位电路是单片机控制电路中很重要的电路之一。 STC12C5A60S2 单片 机为高电平复位,及即要使得复位管脚 RST 保持一定时间的高电平。其复 位电路分两种情况。当单片机时钟频率小于 12MHZ 时,采用第一种复位电路。将 RST 管脚 接 1K 电阻 R1 到地,其电路如图 3-3 所示。3-3 第一复位电

50、路当单片机时钟频率大于 12MHZ 时,采用第二复位电路,其电路如图 3-4所示。lOmFvcc3-4 第二复位电路本电路单片机时钟采用的是 12MHZ ,故复位电路采用第二种。以上复位 电路只能保证单片机能够上电复位,为了更好的进行调试,本电路对上面 的电路进行了更改,使得单片机电路能够手动复位。改进后的复位电路如 下图3-5所示。当按键按下时,由于电阻 R1的作用,RST管脚保持为高电 平。单片机复位。IllHR1LSI3-5 改进后的实际复位电路2. 晶振电路STC12C5A60S2 单片机内部含有 R/C 时钟振荡电路,单片机可以选择使 用内部自有的 R/C 时钟振荡电路,也可以使用外

51、接的高精度晶体 /时钟。用 户在下载用户程序时,可选择是使用内部 R/C 振荡器还是外部晶体时钟。 常温下内部时钟频率为 5V 单片机: 1117MHZ ,3.3V 单片机: 812MHZ 。单 片机内部时钟电路受温漂等影响较大,当对精度要求不高时可以使用内部 时钟。本电路需要串口数据收发,控制对时钟要求较高,故采用的时钟源是外接的高精度晶体 /时钟。其电路如图 3-6 所示。3-6 晶体振荡电路3.2.2 驱动电路设计驱动电路的选择及稳定性对小车性能来说是至关重要的。这里我采用河南科技大学本科毕业设计(论文)L298 专用驱动芯片来驱动两个直流电机。 L298 驱动芯片内置两个 H 桥电路,

52、 可以两个电机实现正转和翻转。最大输出电流可以达到两安,这对小车上 的直流电机足够用。L298 的外围电路也是非常重要的,图 3-7 为 L298 的外围电路。途中 8 个单向导通二极管起着非常重要的作用,它可以防止电机磁场作用产生很 大的反向电压时对 L298 内部电路的破坏作用。一 rn一匚电路3.2.3 稳压电路设计小车的整个硬件电路共需要两个电压,电源电压为 8 伏,直接供给直 流电机。而单片机控制电路需要五伏的电压,故需要设计一个稳压电路来 输出稳定的 5 伏电压供给单片机控制电路。本系统采用线性稳压芯片 7805 把 8 伏的电源电压稳成 5 伏输出。其电路图如图 3-8 所示:V

53、iLM78Vout3.3 小车软件设计3.3.1 主程序流程图3-9 主函数流程小车单片机采用 STC12C5260S2 ,此单片机属于 8051 内核,采用 KEIL开发环境来编程。下位机程序主要功能就是时刻准备接受上位机传来的串河南科技大学本科毕业设计(论文)口数据,然后,根据不同的数据控制小车电机是小车完成不同的动作 主函数流程图如图 3-9 所示:3.3.2 部分主程序部分程序如下:#include#includehard.hunsigned char RxBuf32=0; /接收缓冲区4 g 00000000000000000000000000000000* 名称 : Com_Ini

54、t()* 功能 : 串口初始化,晶振 11.0592, 波特率 9600 ,使能了串口中断* 输入 : 无* 输出 : 无/void Com_Init(void)TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd;/设置波特率 9600TL1 = 0xFd;TR1 = 1;/启动定时器 1ES = 1;/开串口中断EA = 1;/开总中断河南科技大学本科毕业设计(论文)* 名称 : Com_Isr()* 功能 : 串口中断子函数* 输入 : 无* 输出 : 无void Com_Isr(void) interrupt 4static unsigned c

55、har i = 0;/定义为静态变量, 当重新进入这个子函数时 i 的值不会发生改变EA = 0;if(RI = 1)/当硬件接收到一个数据时, RI 会置位if(i = 0)RxBuf0 = SBUF - 48; /这里减去 48 是因为从电脑中发送过来 的数据是 ASCII 码。RI = 0;i+;i=i%2;EA = 1;fifef 樺押樺押樺押樺押樺押樺押樺押樺押樺押樺押樺押樺押樺-I - |Jk|void main()Com_Init();while(1)河南科技大学本科毕业设计(论文)switch(RxBuf0)case 1: go_ahead(); break;case 2:st

56、op();break;case 3:go_afterward();break;default :3.3.3 底层驱动程序 底层驱动程主要分两块儿:电机控制程序和串口控制程序。 串口控制主要是进行寄存器设置,设置串口时钟得喝波特率。串口数据的接收程序有查询法和中断法。查询法主要是通过不断查询串口数据接 收标志位,当标志位置位时,说明串口数据接收缓冲区已满,于是就可以 把数据从接收缓冲区中读出,其流程图如图 3-10 。中断的方法是,打开单片机硬件串口中断,串口数据接收缓冲区已满 时,单片机就会触发串口中断,通知 CPU 读取串口接收的数据。中断的方 法可以减少 CPU 占用率,故这里我采用了中断

57、的方法。开始J河南科技大学本科毕业设计(论文)3-10 串口程序,查询法电机控制主要是通过控制 L298 电机驱动芯片来控制电机。 L298 有六个 输 入 脚 ( IN1,IN2,ENA;IN3,IN4,EAB ) 和 四 个 输 出 脚(0UT1,0UT2;0UT3,0UT4 )。它的六个输入口分别连接单片机的P00P0“5 ,四个输出口连接两个电机。通过控制六个输入口电平来控制电机正反转或 者停止。其主要的控制方法见表 3-1:表 3-1 电机控制IN1IN2ENAOUT1OUT2电机101高低正转011低高翻转XX0高阻高阻停转IN3IN4EABOUT3OUT4电机101高低正转河南科

58、技大学本科毕业设计(论文)011低高翻转XX0高阻高阻停转结论本次设计对语音识别的现有算法进行了实现和验证,并对端点检测和 匹配方法进行了稍微改进。小车的硬件设计性能良好,软件运行正常,能 达到预定要求。本设计达到了预期目标。本设计语音识别的准确度还有很大的提高空间,语音识别的程序效率 还有待进一步提高。本设计语音识别的特征参数提取采用的是易于获取的 LPC (线性预测系数),而大多数识别案例是采用 LPCC (线性预测倒谱系 数),这方面还有待去试验。还有一种特征参数是 Mel尺度倒谱系数(MFCC) 人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是 不同的,基本上是一个对数的关系, Mel尺度倒谱系数(MFCC )能够比较 充分利用人耳这种特殊的感知特性。这方面的试验还有待进行。串口无线 传输具有很简单的接口,软件控制简单,但它的传输距离有限,故无线传 输方案还需要进一步改进。河南科技大学本科毕业设计论文参考文献1 谭浩强C程序设计北京:清华大学出版社,19952 郭天祥.51单片机C语言教程.北京:电子工业出版社2009张毅刚,彭喜元等.新编MCS-51单片机应用设计哈尔滨:哈尔滨工业大学出版社 ,20034 刘瑞新 单片机原理及应用教程 机械工业出版社 ,20035 何立民 单片机应用技术选编( 1) 北京航空航天大学出版社 ,19926 胡汉才

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!