机器人的语音识别技术_第1页
机器人的语音识别技术_第2页
机器人的语音识别技术_第3页
机器人的语音识别技术_第4页
机器人的语音识别技术_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机器人的语音识别技术摘要1897年,MG马可尼所完成的无线通信试验就是在固定站与一艘拖船之间进行的,距离为18海里。标志着通信进入了一个新的时代,随着社会的进步,科技发展也日益兴盛起来。电子技术和智能自动化的发展更是为人们的日常生活和工业生产提供了极大的方便。人们可以通过一系列的信息传递来直接或间接的控制机械的运转。让机器能够听懂人类的语言并且能够按照人的口头命令行动,从而实现人际交流一直以来都是人类的一个梦想。本文所研究的机器人语音识别和控制,对于服务于机器人的应用领域具有重要的现实意义。通过单片机可以很方便的实现语音控制技术,本次设计是利用凌阳单片机SPCE061A的语音识别控制特性, 根

2、据语音识别的基本原理,对智能机器人进行语音控制,使其根据人的指令做出左转、右转、前进、后退、跳舞、发射飞碟等相应的动作。由于材料等各方面的限制,只能以理论的形式出现。关键词:语音识别,语音控制(嵌入式语音的识别技术),智能机器人,语音压缩算法目录1 绪论.31.1 本次课题的由来1.2 设计目的及任务及设计理念1.3 声控机器人的发展前景 1.4 整体方案的规划2 嵌入式语音的识别技术11 2.1 模式匹配原理的引入 2.2 语音识别技术总括3 软件设计.20 3.1 主程序的设计 3.2 语音压缩算法的研究 3.3 关键模块的设计4 功能的实现.29 4.1 机器人预想功能的总体实现5 设计

3、总结.301 绪论1.1 设计课题由来单片机在现实生活中越来越多的被应用于工业生产和生活娱乐当中。自从人类能够使用机器以来,就有一个梦想,那就是能够与机器人进行语言交流,让机器人按照人的指令去完成相应的操作。语音识别技术就是让机器人通过语音识别把语音信号转变为相应的文本或命令的高新技术。语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和人工智能等等。都属于电子信息专业的基本课程。随着社会的进步和日益发展,智能自动化系统逐渐被应用到服务行业。于是“机器人”也就应运而生了,但是现在机器人的发展还处在一个不成熟的阶段,它还不能象人们想象的那样做出各种各样的动作来服务于人类。

4、随着社会的发展,人们的物质文化生活水平也有了较大的提高,为了满足人们愈来愈高的要求,机器人的深入和普及也越来越受到人们的关注。人有五官,机器人的视觉电子摄象已经随着安全防护的发展有了一定的发展,平常我们在楼宇监控系统可以看到简单的机器人视觉系统(电子摄象及处理),数码相机等。声音的控制除了我们平常所遇到的声控灯,我们很难再找到别的。语音这种人类最简单、最自然、最方便和最有效的交换信息的方式,在机器人上的应用还较少。基于单片机和外围接口技术,我们可以大致画出语音控制的基本框图。中央处理系统机器人控制显示器语音处理系统图1.1 最原始的机器人语音控制用语音控制来操作机器人代替烦琐的键盘输入。和机器

5、通话实现人机对话是十分诱人的,具有广阔的发展前景,是机器人人工智能的重要标志。图1.2 改进的机器人语音识别框图1.2 设计的目的及任务我们想象中的理想机器人应该是能够象人类一样听懂自然语言,可以在燥声情况下,一定的频率范围内。语言是由不同的人的声带所发出的,人们辨别它主要是通过声波的变换来判断的,这就是我们平常所说的音变。这样就使基本模型的音界变的不甚明确,于是在明确的电脑语言处理下就变的比较困难。在人们普通的对话中,有时候人类自己也很难辨别对方模糊的语音,不同的词语听起来会非常相似,这就是我们平常所说的语音的模糊性。在语音的控制方面,首先要对燥声环境,非特定人,语音模糊和音变等一系列事实的

6、困难进行过滤和处理,这就需要大量的数据处理,这样分配给听觉的时间就非常有限。于是普通的单片机就不能很好的满足这样一系列复杂的要求,这就需要在已有语音识别技术的研究基础上,配合功能强大的凌阳16位单片机SPCE061A,对机器人的语音识别和特定命令对应行为能力的结合进行实现,是一个实践性和操作性要求较强的实用性课题。机器人语音识别是语音识别在机器人领域的应用,它的最终目的是让机器人听懂人们口述的语言,进而对口述语言中包含的要求或询问做出正确的动作反应或语言反应,从而形成一个良好的,自然的“人机通信系统”。以进一步推动服务机器人的发展和应用。因此,研究机器人的语音识别,对于服务机器人的普及与应用意

7、义重大。未来科技的发展趋势是在以人为本的前提下,更多地实现机器设备的自动化和智能化,让机器为人服务,代替人们进行繁重的体力劳动和高危险工程。借助机器之力进行社会建设已经成为了一个必然的选择。随之而来的发展与和谐生活的命题必然会将人机交流的重要性提到一个新的高度,成为服务型机器人投入社会的关键所在。设计理念:在整个设计过程中,我们本着一切向能实现理想机器人的方向靠拢。但是本次设计还缺乏一定的实践。1.3 声控机器人的发展前景机器人是多学科交叉的产物,集成了运动学与动力学、机械设计与制造、计算机硬件与软件、控制与传感器、模式识别与人工智能等学科领域的先进理论与技术。同时,它又是一类典型的自动化机器

8、,是专用自动机器、数控机器的延伸与发展。当前,社会需求和技术进步都对机器人向智能化发展提出了新的要求。语音信号处理技术就是使用数字信号处理技术对于因信号进行处理,处理的目的使用得到的某些参数进行高效传输、存储、语音增强、语音合成和语音识别。我国的语音识别系统的研究起步比较晚,但是也取得了很好的成绩,研究水平也从实验室逐步走向实用,从1987年开始执行国家863计划后,国家863智能计算机专家组为语音识别技术研究专门理想,每两年滚动一次。我国PC机语音识别技术的研究水平已经基本上与国外同步,在汉语语音识别技术上还有自己的特点和优势,但是独立开发的专用汉语语音识别芯片还是较少,多数都是与国外研究机

9、构合作开发研制的。可以说,语音识别的研究已经得到了全世界范围的重视,是引领未来科学发展方向的关键技术之一。因此,研究机器人的语音识别,开发实用的机器人语音识别系统,对于服务机器人的普及与应用意义重大。1.4 整体方案的规划本课题是基于SPCE061A的智能机器人语音识别的实现,最终目的是形成一个较好的人机交流环境,使机器人能够听懂经过训练的人的口头命令,并能够按照命令进行相应的动作。由多带通滤波器及现行匹配电路构成的专用IC。专用IC是以8位或16位单片机为计算核心,外加A/D转换,D/A转换及存储器。由DSP组成的语音识别系统,一般由定点16位DSP,外加A/D转换,D/A转换,以及ROM、

10、RAM、FALSH等存储器组成。由人工神经网络构成的语音识别专用芯片。SOC是将MCU或DSP、A/D、D/A、RAM、ROM以及预放、功放等电路集成在一个芯片上,只要加上极少的电源供电等外围电路,就可以实现语音识别、语音合成及语音回放等功能。SPCE061A是一种集成度很高的单片机,它将MCU、A/D、D/A、RAM、ROM集成在一块芯片上,同时具有16*16位的乘法运算和内积运算功能,CPU最高时钟频率可达到49MHz。本课题的主要实现过程是:外部语音命令通过转换装置输入到系统内部,经过语音识别程序的处理转化为机器人可识别的触发命令然后触发相应子程序进行相关动作。动作的实现方法是:凌阳61

11、板向控制不同端口送高低电平以控制置于机器人内部不同位置的电机的运转,调用延时,根据需要使各个部分电机相互配合,完成要求的动作,从而实现机器人的语音控制。本设计综合考虑SPCE061A单片机的特性以及机器人行动模式来进行设计,具体模块如图2.1所示。整个设计分为主控模块、语音模块、电机模块等,各个模块分别完成,然后进行结合,实现机器人的语音识别。具体过程是:首先进行机器人的语音训练,我们这次设计采用的是特定人语音识别,每一个命令发布者都必须在发布命令之前对机器人进行命令的语音训练。这样做有一个好处,非特定人不能命令机器人进行动作。整个硬件设计部分以保持机器人外部灵活性为前提,在机器人各个部分内置

12、电机,利用三极管的通断特性来设计电路,完成硬件电路的设计和组装。具体电路如下:左右腿、脖子电机驱动模块(摘抄)加速及发射电机输入/输出接口嵌入式语音的识别技术2.1 模式匹配原理的引入嵌入式语音识别系统都采用了模式匹配的原理,语音识别一般分为两个步骤。第一步是系统“学习”或“训练”阶段。这一阶段的任务是建立识别基本单元的声学模型以及进行文法分析的语言模型,即构建参考模式库。第二是“识别”或“测试”阶段。根据识别系统的类型选择能够满足要求的一种识别方法,采用语音分析方法分析出这种识别方法所需求的语音特征参数,按照一定的准则和测度与参考模式的模型进行比较,通过判决得出结果。 特征提取经过预处理后的

13、语音信号,要对其进行特征提取,即特征参数分析。该过程就是从原始语音信号中抽取能够反映语音本质的特征参数,形成特征矢量序列。目前语音识别所用的特征参数主要有两种类型:线性预测倒谱系数(LPCC)和美尔频标倒谱系数(MFCC)。LPCC系数主要模拟人的发声模型,为考虑人耳的听觉特性。它对元音有较好的描述能力,而对辅音描述能力差。其优点是计算量小,比较彻底地去掉了语音产生过程中的激励信息,易于实现。MFCC系数考虑到了人听觉特性,并具有很高的抗噪声能力,但因为提取MFCC参数要在频域处理,计算傅立叶变换将耗费大量宝贵的计算资源。因此,嵌入式语音识别系统中一般都选用LPCC系数。语音特征提取是分帧提取

14、的,每帧特征参数一般构成一个矢量,因此,语音特征是一个矢量序列。该序列的数据率一般可能过高,不便于其后的进一步处理,为此,有必要采用很有效的数据压缩技术方法对数据进行压缩。矢量量化就是一种很好的数据压缩技术。参考模式库参考模式库是将一个或多个说话者的多次重复的语音参数经过训练得到的。它是声学参数模板。建立参考模式库是在系统使用前获得并存储起来的。参考模式库的建立过程称为训练过程。模式匹配模式匹配是将输入的待识别的语音特征参数同训练得到的参考语音模式进行逐一比较分析,获得最优匹配的参考模式便是识别结果。目前常用的语音识别算法主要有:动态时间规整(DTW)、隐马尔可夫(HMM)理论、矢量量化(VQ

15、)技术。2.2 语音信号识别技术语音识别的过程就是将用麦克风或电话捕捉到的声波信号转化成一组词语的过程。被准确识别的词语The recognized words can be the final results, as for applications such as commands & control , data entry , and document preparation .可以得出最后的结果,进入响应,如指挥与控制系统,数据输入和文件的准备工作。They can also serve as the input to further linguistic processing in

16、 order to achieve speech understanding, a subject covered in section也可以作为输入,为进一步的语言加工服务,以达到讲话被理解的目的。矢量量化的基本原理将若干个标量数据组成一个矢量(或者是从一帧语音数据中提取的特征矢量)在多维空间给与整体量化,从而可以在信息量损失较小的情况下压缩数据量。矢量量化有效地应用了矢量中各元素之间的相关性,因此可以比标量量化有更好的压缩效果。当给矢量量化器输入一个任意矢量进行矢量量化时,矢量量化器首先判断它属于哪个子空间的代表矢量。也就是说,矢量量化过程就是用代表的过程,或者说把量化成了Y。 式中,量化

17、器函数。矢量量化器和码书的设计矢量量化器和码书设计方法是采用递推算法,这个算法就是LBG算法。整个算法实际上就是最佳设计和最佳码书两个条件的反复迭代过程,即由初始码书寻找最佳码书的迭代过程。它从对初始码书进行迭代优化开始,一直到系统性能满足要求或不再有明显的改进为止。隐马尔可夫模型隐马尔可夫模型(Hidden Markov Models,简称为 HMM),作为语音信号的一种统计模型,今天正在语音处理的各个领域中获得广泛的应用。大约 100 年前,数学家和工程师们就已经知道马尔可夫链了。但是,只是在近三十几年里,它才被用到语音信号处理中来,其主要原因在于当时缺乏一种能使该模型参数与语音信号处理达

18、到最佳匹配的有效方法。直到 20 世纪 60 年代后期,才有人提出了这种匹配方法,而有关它的理论基础,是在 1970 年前后由 Baum 等人建立起来的,随后由 CMU 的 Baker 和 IBM 的 Jelinek 等人将其应用到语音识别之中。由于 Bell实验室 Rabiner 等人在 20 世纪 80 年代中期对 HMM 的深入浅出的介绍,才逐渐使HMM 为世界各国从事语音信号处理的研究人员所了解和熟悉,进而成为公认的一个研究热点。近几十年来,隐马尔可夫模型技术无论是在理论上或是实践上都有许多进展。其基本理论和各种实用算法是现代语音识别等的重要基础之一。HMM的基本参数 对于语音识别,H

19、MM 可以用下面六个模型参数来定义,即:MS,O,A,B,FS:模型中状态的有限集合,即模型由几个状态组成。设有 N 个状态,S |i = 1, 2,N。记 t 时刻模型所处状态为 ,显然 (, , )。O:输出的观测值符号的集合,即每个状态对应的可能的观察值数目。记 M个观察值为 ,,记 t 时刻观察到的观察值为 ,其中 (, )。A:状态转移概率的集合。所有转移概率可以构成一个转移概率矩阵,即:A= 其中 是从状态 到状态 转移时的转移概率,1i,jN且有 01, 。B:输出观测值概率的集合。B(k),其中(k)是从状态 到状态转移时观测值符号 k 的输出概率。根据 B 可将 HMM 分为

20、连续型HMM和离散型 HMM 等。(离散型 HMM)(连续型 HMM):系统初始状态概率的集合,表示初始状态是的概率,即: F:系统终了状态的集合。这里需要说明的是,严格地说 Markov 模型是没有终了状态的,只是在语音识别里用的 Markov 模型要设定终了状态。这样,可以记一个 HMM 为 M=S,O,A,B,F,为了便于表示,常用下面的形式表示一个 HMM,即简写为 M=A,B,。所以形象地说,HMM 可以分为两部分,一个是 Markov 链,由、A 描述,产生的输出为状态序列。另一个是一个随机过程,由 B 描述,产生的输出为观察值序列,T 为观察值时间长度。隐马尔可夫模型的基本算法欲

21、使所建立的 HMM 对于实际应用有效,下面三个问题必须加以解决:(1) 识别问题:给定观察符号序列 0=o1,o2, ,oT和模型 M=A,B,如何快速有效地计算观察符号序列的输出概率 P(O|M);(2) 寻找与给定观察字符序列对应的最佳的状态序列:给定观察字符号序列和输出该符号序列的模型 M= A,B,如何有效地确定与之对应的最佳的状态序列。即估计出模型产生观察字符号序列时最有可能经过的路径。它可以被认为是所有可能的路径中,概率最大的路径。这种算法的指导思想就是概率最大的路径是最有可能经过的路径,即最佳的状态序列路径;(3) 模型训练问题:实际上是一个模型参数估计问题,即对于初始模型和给定

22、用于训练的观察符号序列 0=o1,o2, ,oT 如何调整模型 M= A,B,的参数,使得输出概率 P (O M)最大18。下面结合讨论这三个问题的解法,介绍 HMM 的基本算法。前向-后向算法前向-后向算法(Forward-Backward,简称为 F-B 算法)是用来计算给定一个观察值序列 0=o1,o2, ,oT 以及一个模型 M= A,B,时,由模型 M 产生出 O 的概率 P (O|M)的。设 S1 是初始状态,SN 是终了状态,则前向-后向算法可以介绍如下:1前向算法前向算法即按输出观察值序列的时间,从前向后递推计算输出概率。首先说明下列符号的定义:0=o1,o2, ,oT输出的观

23、察符号序列P(O|M)给定模型 M 时,输出符号序列 O 的概率从状态到状态的转移概率从状态到状态发生转移时输出的概率输出部分符号序列 o1,o2, ,ot并且到达状态 的概率,即前向概率 由上面符号的定义,则可由下面的递推公式计算得到:(1)初始化 (2)递推公式 (t=1,2,T;i,j=1,2,N)(3)最后结果 P( O|M)= t 时刻的等于 t-1 时刻的所有状态的之和,当然如果当状态 到状态没有转移时 =0。这样在 t 时刻对所有状态 (j=1,2, N)的都计算一次,则每个状态的前向概率都更新了一次,然后进入 t+1 时刻的递推过程。2.后向算法与前向算法类似,后向算法即按输出

24、观察值序列的时间,从后向前递推计算出概率的方法。首先说明下列符号的定义:0=o1,o2, ,oT输出的观察符号序列P(O|M)给定模型 M 时,输出符号序列 O 的概率从状态 到状态 的转移概率从状态 到状态 发生转移时输出ot的概率从状态 开始到状态 结束输出部分符号序列ot+1,ot+2,oT 的概率,即后向概率。可由下面的递推公式计算得到:(1)初始化 (2)递推公式(t=T,T+1,,1;i,j=1,2, ,N)(3)最后结果 P(O|M)= 根据定义的前向和后向概率,有如下关系成立:维特比(Viterbi)算法如何有效地确定与之对应的最佳的状态序列。这可以由另一个 HMM 的基本算法

25、 Viterbi算法来解决。Viterbi 算法解决了给定一个观察值序列和一个模型 M=A,B,时,在最佳意义上确定一个状态序列的问题。这里讨论的最佳意义上的状态序列,是指使 P(S,O/M)最大时确定的状态序列。即 HMM 输出一个观察值序列 时,可能通过的状态序列路径有多种,这里面使输出概率最大的状态序列就是我们的所求。Viterbi 算法可以叙述如下:(1)初始化 (j1) (2)递推公式 (t=1,2,,T;i,j=1,2,,N) (3)最后结果 在这个递推公式中,每一次使 最大的状态 i 组成的状态就是所求的最佳状态序列。所以利用 Viterbi 算法求取最佳状态序列的步骤如下: (

26、1) 给每个状态准备一个数组变量,初始化时令初始状态 S1 的数组变量为 1,其他状态的数组为 0;(2)根据 t 时刻输出的观察符号 ot 计算 (j=1,2,,N) 当状态 到状态没有转移时;设计一个符号数组变量,称为最佳状态序列寄存器,利用这个最佳状态序列寄存器把每一次使最大的状态 i 保存下来;(3)tT 时转移到 (2),否则执行(4);(4)把这时的终了状态寄存器内的值取出,则: 输出最佳状态序列寄存器的值,即为所求的最佳状态序列。软件设计3.1 主程序的设计语音识别系统功能的实现大部分是由软件来完成的。因此,语音识别系统的软件设计是十分复杂的。本次程序的设计是依靠C语言和汇编语言

27、共同完成的主程序流程图。在主程序中开始是对RAM存储器进行清除,这为存放提取的语音信号的特征矢量和模板库做准备。播放第一条提示音是为了提醒用户系统的语音训练己启动,现在可以进行训练。训练首先是此系统的触发名称,即系统的名字。接下来就是依次对各条命令进行训练。在训练过程中,如训练成功,则有语音提示进行下一条的训练:如出现训练失败也会提示用户继续训练此条语音。直到全部命令训练完毕后,系统将准备进行语音识别。识别初始化是确定语音输入来源于A/D转换器的MIC通道。播放开始识别的提示音是为了让用户明确现在可以向系统下达命令了。系统接到命令后就开始进行识别,如识别成功,则系统会按命令执行,如识别失败,系

28、统也会通过语音提示用户。系统的主程序是依靠调用各子程序来完成的,而系统的子程序主要有语音训练程序、语音识别程序、语音播放程序及机器人运动程序。其中语音部分主要依靠语音压缩程序来完成。3.2 语音压缩算法的研究压缩编码的目的是通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息。压缩编码是必要的,实际应用中,未经压缩编码的音频资料量很大,直接进行传播或存储是不现实的,所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使用较少的资源建立更多的信息。常用的压缩编码有波形编码、参数编码和混合编码 。 用于SPCE系列芯片语

29、音功能的语音压缩与解压缩算法有SACM_A2000, SACM_S480, 和SACM_S240,其对应的语音压缩编码率类型分别为16 Kb/s,20 Kb/s,24 Kb/s;418 Kb/s,712 Kb/s;214 Kb/s。本设计用到的压缩算法有SACM_A2000和SACM_S480。SACM_A2000算法SACM_A2000属于波形编码,该压缩算法压缩比较小(8:1),所以具有高质量、高码率的特点,适用于高保真音乐和语音。SACM_S480算法SACM_S480属于混合编码,该压缩算法压缩比较大,为80:3,其存储容量大,音质介于A2000和S240之间,适用于语音播放。此算法具

30、体实现过程如下:在PC 机上录好提示语音,经压缩工具压缩处理后存储到单片机ROM里, SPCE061A 将提示语音解压缩后送D/A 还原语音,提示操作结果。采用SACM(Sunplus Audio Coding method ,音频编码算法) 将PC 机上已录制的8 K,16 位音频文件压缩为二进制文件,再加入用户程序,存储在程序存储器中,播放时将其解压缩,并以8 K的频率送D/A 还原出声音。语音播放程序包括播放程序和中断服务程序。播放程序初始化A/D ,定时器TimerA 和音量,从ROM 里取出预先压缩好的语音数据,解压缩后存在播放队列里。中断服务程序定时地从播放序列中读数据,送D/A

31、转换后驱动喇叭发音。播放程序如下:SACM_S480_Initial (Init_Index); 初始化A/D ,Timer,SACM_S480_Volume (Volumn_Index); 初始化音量SACM_S480_Play(Speech_Index,Channel,Ramp_Set);播放一条语音while(SACM_S480_Status()&0x0001)=1)SACM_S480_ServiceLoop(); 播放服务函数SACM_S480_Stop();停止播放主播放函数SACM_S480_Play( int Speech_Index ,int Channel ,int Ramp

32、_Set) 有3 个参数: Speech_Index 表示播放索引号;Channel 表示播放通道(1通过DAC1 通道播放,2通过DAC2 通道播放,3通过DAC1和DAC2通道播放);Ramp Set 表示消除开始放音时的“啵”声。3.3 关键模块的设计在进行语音识别之前,首先要进行特定人的语音训练,让机器人能够听懂人的命令,也就是语音模板的建立。子程序中重要的语句是训练函数BSR_Teain(int CommandID,int TrainMode),其中CommandID是命令序号, TrainMode代表训练次数。训练结果出现不同情况就会出现不同的返回值,然后程序会针对相应值进行相应的

33、处理。整个程序的工作原理是这样的:当被调用的时候,首先通过语音播放程序播放一条提示音,提示用户开始进行语音训练。然后等待用户说出命令,当接收到语音的时候, 通过BSR_Teain程序,系统会生成一个res值,不同的res的值代表不同的训练结果,当训练不成功,系统提示用户继续训练,成功则返回。主程序只用到了整个子程序的返回值以判断是否继续进行。每条程序训练两遍。语音识别程序语音训练完成后,要想使机器人能够听懂人发出的命令,还应该对语音命令进行语音识别,将语音信号转化成单片机可识别的代码,这一步也是整个设计的关键之所在。子程序中最重要的函数是BSR_GetResult(),它的作用是从辨识器中获取

34、数据。根据识别情况返回不同数值。当得到语音数据的时候,经过机器判断会产生一个res值,当没有命令被识别出来的时候,res=0;识别器停止未初始化或识别未激活时,res=-1;识别不合格的时候,res=-2;识别出来时返回命令的序号。在进入语音识别阶段,首先要对辨识器进行初始化,并且启动实时监控,以随时接收用户指令。然后播放语音识别提示音提示用户开始发布命令。若识别不出来,则经过一个定时程序判断是否超时。超时就直接退出子程序,否则继续识别。若识别成功则将识别出来的命令序号返给主程序。语音播放程序 本次设计采用了SACM_A2000和SACM_S480两种语音压缩算法进行语音压缩和播放,但是由于两

35、种语音算法仅仅是语音质量和压缩大小等方面有所不同,基本思想还是相同的,所以它们可以“共享”一个流程图(如图4.5)。当收到播放信号的时候,子程序首先停止主程序的辨识,并对语音播放系统进行初始化。然后提取一个压缩语音数据进行播放。判断是否播放结束,如果没有,就继续读取压缩数据,解压缩并添加到播放序列。整个语音播放结束后,开启辨识器和实时监控并退出子程序返回到调用点。机器人运动程序机器人的运动主要依靠内置电机的正反运转,所以机器人的运动程序虽然比较繁琐,但是仍然可以说是相对简单。起初,我们设想利用方波生成符合运动规律的交替信号来实现机器人的走动。但是后期实现的时候我们舍弃了这一方案,因为机器人的运

36、动是模仿人的运动而制作的,人的运动十分复杂,仅仅想要利用方波来实现虽然是可行的,但是对整个设计却没有很大的必要,费时费力。我们决定还是采用最原始也是相对来说比较容易想到的方法:改变端口电压调用延时改变端口电压调用延时。这样做有一个好处,那就是灵活。虽然程序显得庞大一些,但是具体设定运动方式时却十分易于调整,可以在任意动作之后随意添加其他动作。功能的实现4.1 机器人预想功能的总体实现首先在软件IDE上进行程序编译,然后将程序代码下载到机器人的61板上。打开机器人的电源,进行语音训练。如果训练成功则进入语音识别状态,如果训练没有成功则重复训练。声音训练的时候可以使用不同的命令,但是由于程序是设定

37、好的,所以尽量按照设定好的命令进行训练,这样不容易混淆。进行训练的时候尽量在安静的环境进行。发布命令的时候注意命令的顺序问题。由于程序采用模块化设计,需要机器人完成其它动作只需要适当更改相应子程序,改动方法简单易实现,可操作性强。设计总结鉴于电子通信行业的飞速发展,机器智能自动化的进一步完美实现。智能机器人越来越受到人们的关注,或许美国电影(机械公敌)就是个很好的例子虽说是反面的。本次设计基于智能机器人,利用凌阳单片机SPCE061A在语音方面的强大功能,进行人的口语语言识别。整体设计采用特定说话人语音识别,在进行识别之前需要说话人进行语音训练,非特定人不能命令机器人进行动作,这就排除了现场环

38、境中有可能出现的包含命令关键字的相似语音的影响。最终完成的系统能够准确辨识经过训练的说话人的语音,辨识效果好,准确率高,语音播放声音效果好,机器人动作连贯流畅,很好的达到了课题的目的。毕业设计是大学生活的最后一站也是至关重要的一个环节,学生们在本科学习阶段所学的知识和掌握的能力都将在为期半年的毕业设计中完整地体现出来。可以说,毕业设计是大学生离开学校走上社会之前的一次练兵。通过毕业设计工作,同学的动手能力和分析问题、解决问题的能力都得到了大幅度的提升,为以后更进一步的学习和工作打下了坚实的基础。毕业设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的绘图能力,懂得了许多经验公式

39、的获得是前人不懈努力的结果。同时,仍有很多课题需要后辈去努力去完善。但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解,等等。这次实践是对自己大学四年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,努力使自己 成为一个对社会有所贡献的人。e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥

40、T?UFUZ!醋MM蘇g壶鲦伸?qfg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸值?橒忋喏曚NI耔nENB峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽e马e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋T?NI耔nENB峢mT鸏s眑+?該|紖?!汩?脍f

41、抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?XA蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0vb瘌Tq 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T?UFUZ!醋MM蘇g壶鲦伸?q

42、fg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸值?橒忋喏曚NI耔nENB?%?*H?棐鑉涛3峽Z乙v徻3?珄 餖朮爟?W圐葴逑辢鈁e?籋鰫.僂?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋T羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋T?NI耔nENB峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf

43、?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?XA蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T?UFUZ!醋MM蘇g壶鲦伸?qfg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸值?橒忋喏曚NI耔nENB?%?*H?棐鑉涛3峽Z乙v徻3?珄 餖朮爟?W圐葴逑辢鈁e?籋鰫.僂T8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/

44、盰#,vDlE嵮禋羁8?p蟇7硏枫妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T?UFUZ!醋MM蘇g壶鲦伸?qfg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di: 羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,

45、vDlE嵮禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di: 羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?

46、lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 值?橒忋喏曚NI耔nEN?%?*H

47、?棐鑉涛3峽Z乙v徻3?珄餖朮爟?W圐葴逑辢鈁e?籋鰫.僂T羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽

48、?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T?UFUZ!醋MM蘇g壶鲦伸?qfg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸值?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di: 羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛

49、vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?

50、)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq 值?橒忋喏曚NI耔nEN?%?*H?棐鑉涛3峽Z乙v徻3?珄餖朮爟?W圐葴逑辢鈁e?籋鰫.僂T羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦e摭F讷,#RU?遴?eyk?窅脆?_躵y胶?宗卝?X蛋?H7曮Z- e马,陪F?lm嫄W圹獑?N?)?0?q?3拞屓?p勌m:b5a漬璺1疆lv0瘩艌v?2屘b瘌Tq

51、 妋4UK袢,疀薤,A6玭$? $徤?|?罪=T?G驳op1尚懇袹戦疈u圻?赓O?a?*p懡0L)w懱拽?E?/扢?9镃/潺hR烞b蔔Ye嚁剂Bb?捚?悭曥T?UFUZ!醋MM蘇g壶鲦伸?qfg%厧1t? 戯愤焿驆罳騙萡P?躀cP縮蒕?nP砫 ?C?Z豸值?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di: 羁8?p蟇7硏枫pg裋.1瑡2陹?泝Z祘?$赇?諑矽?|D蚈/盰#,vDlE嵮禋TNI耔nEN峢mT鸏s眑+?該|紖?!汩?脍f抙氄宨澻S箔XM竴玐訨?V?脶?,B衹絵2n吞輷匽之銻蚗v枉h5di:t詮I?懑忋忑殆#懛嗕!V汁鏹豑寒絫 赸l偎蠽Mn?鈹舤Y?忩eFHga厏a堳膷Q?h芛vf?瘐?c+粂鰌q惦ez 赸l偎

温馨提示

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

评论

0/150

提交评论