声控小车设计毕业论文_第1页
声控小车设计毕业论文_第2页
声控小车设计毕业论文_第3页
声控小车设计毕业论文_第4页
声控小车设计毕业论文_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、i毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明使用授权说明本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕

2、业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: ii摘要摘要.iiiabstract.iv引引 言言 .1第一章第一章 绪论绪论.21.1 论文背景 .21.2 总体设计要求.2第二章第二章 凌阳单片机(凌阳单片机(spce061aspce061a)简介)简介.42.1 芯片总述 .42.2 芯片最小系统.52.3 i/o 端口 .52.4 定时及中断.82.4.1 中断系统.82.4.2 定时器.82.

3、4.3 中断控制.102.5 看门狗 .11第三章第三章 系统软件设计系统软件设计.123.1 软件描述 .123.1.1 音频.123.1.2 应用程序接口.133.1.3 语音识别原理.143.2 软件设计 .143.2.1 语音压缩编码.143.2.2 凌阳音频压缩算法.163.2.3 凌阳语音的播放、录制、合成和辨识功能的分析.173.2.4 语音播放应用程序接口函数.183.2.5 语音播放应用程序接口函数.18iii3.3 程序流程图 .21第四章第四章 硬件电路设计硬件电路设计.224.1 spec016a 电源模块.224.1.1 spy0029 芯片简介.224.1.2 电路

4、原理分析.224.2 语音输入模块设计.234.3 语音输出模块设计.244.3.1 spy0030 芯片简介.254.3.2 电路设计.264.4 车体控制模块.264.4.1 l298芯片功能分析.264.4.2 ams1117 芯片功能分析.284.4.3 硬件电路设计.28结论结论.30致谢致谢.31参考文献参考文献.32附录附录.33iv声控小车的设计摘要摘要:声控是利用语音识别技术来控制相关物体。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来 10 年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。无人驾驶的智能

5、汽车也必将进入实用阶段。本课题的设计更深入的理解单片机及其相关外围器件的原理、应用和编程,对单片机芯片 i/o 端口构造等有个清晰的认识,对语音压缩算法、语音识别等进行全面的了解以及对硬件电路的设计模块进行实际操作,同时巩固数电、模电和信号等相关知识,并通过设计更清晰更透彻的理解巩固大学几年的电子信息工程专业的相关知识。本系统的主要目的是针对智能无人驾驶汽车系统出音控小车,在智能化车上实现语音控制,避免出现许多大大小小的事故。旨在研究汽车的智能声控系统,让声控进入汽车,提高汽车的智能化和安全系数。关键词:关键词:声控;语音识别;凌阳单片机;小车vvoice-control model cara

6、bstract:voice control, it is that using speech recognition technology to control related objects. in the past twenty years, the speech recognition technology improve significantly, start from lab to market. people expected, the next 10 years, speech recognition technology will enter the industry, ho

7、usehold electrical appliances, communications, automotive electronics, medical, and family services, consumer electronic products, and other fields. unmanned intelligent vehicle will also give into the practical stage. this topic design more understanding of the single chip microcomputer and related

8、 peripheral devices the principle, application and programming to the single chip chip i/o port structures have a clear understanding, speech compression algorithm, speech recognition and a thorough understanding of the design of the hardware circuit and the actual operation modules, and consolidate

9、 several electricity, mould electricity and signal related knowledge, and through the design more clearly more thorough understanding of consolidating the electronic and information engineering university years professional knowledge. the systems main purpose is for intelligent robots system out yin

10、kong car, in the intelligent car realize voice control, avoid many greatly small accident. the car to research intelligent sonic system, let sonic into cars, improve the cars intelligent and safety coefficient.key words: voice-control;speech recognition;sunplus scm;model car1引 言随着我国经济的高速发展,汽车的保有量不断增

11、加。汽车行驶安全性越来越受到重视,而且早在上个世纪发达国家便提出了智能交通系统its(intelligent transportation systems, its )的概念,其中汽车的智能尤为重要。汽车的智能化程度越高,为驾驶员提供的服务越周密,安全系数越高。语音识别技术是 21 世纪间信息技术领域十大重要的科技发展技术之一,正逐步成为信息技术中人机接口的关键技术。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来 10 年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务

12、、消费电子产品等各个领域。随着经济的增长,个人拥有私家汽车已不再是梦想,伴随着汽车业的发展,无人驾驶的智能汽车也必将进入实用阶段。本系统提出智能声控小车模型,旨在研究汽车的智能声控系统,让声控进入汽车,提高汽车的智能化和安全系数。2第一章 绪论1.1 论文背景随着我国经济的高速发展,汽车的保有量不断增加。汽车行驶安全性越来越受到重视,而且早在上个世纪发达国家便提出了智能交通系统its(intelligent trans-portation systems, its )的概念,其中汽车的智能尤为重要。汽车的智能化程度越高,为驾驶员提供的服务越周密,安全系数越高。语音识别技术是 21 世纪间信息技

13、术领域十大重要的科技发展技术之一,正逐步成为信息技术中人机接口的关键技术。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来 10 年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。随着经济的增长,个人拥有私家汽车已不再是梦想,伴随着汽车业的发展,无人驾驶的智能汽车也必将进入实用阶段。本系统提出智能声控小车模型,旨在研究汽车的智能声控系统,让声控进入汽车,提高汽车的智能化和安全系数。1.2 总体设计要求该系统的声控系统是基于凌阳 spec016a

14、包括语音的输入、语音的识别、语音的输出及车体控制部分 ,主要实现人机语音交流及控制:(1) 当小车准备好的时候,车说“ok,lets go!” 。(2) 当小车要求人发出命令而人没有发命令的时候,车说“没有听到任何声音” 。(3) 当外界声音比较嘈杂,小车没有识别出人发出的命令的时候,车说“请再说一遍” ;3(4) 给小车任意取名,当叫到小车的名字的时候,车回答“ok” ,小车暂停;(5) 人说“前进” ,车回答“ok” ,小车向前行驶,前进指示灯亮;(6) 人说“后退” ,车回答“ok” ,小车向后退,后退指示灯亮;(7) 人说“左前” ,车回答“ok” ,小车向左拐,左前指示灯亮;(8)

15、人说“右前” ,车回答“ok” ,小车向右拐,右前指示灯亮;(9) 人说“停” ,车回答“ok” ,小车刹停;(10) 人说“左后” ,车回答“ok” ,小车向左后,左后指示灯亮;(11) 人说“左后” ,车回答“ok” ,小车向左后,左后指示灯亮;总体设计原理如图 1.1 所示:图 1.1 总体设计原理图 语音输入,即通过麦克风将语音信号转换成电信号输入 spce016a 内。spce016a将其放大,调用 spce016a 相关语音处理函数,spce016a 会将电信号转换成数字信号;语音识别,通过调用 spce016a 相关语音识别函数,处理语音信号,进行识别;语音输出,将处理后的语音进

16、行功率放大,然后播放出来;车体控制,依据spce016a 的控车指令,驱动小车的行驶状态。spce016a语音输入处理控车指令语音识别语音输出处理语音输入语音输出车体控制4第二章 凌阳单片机(spce061a)简介2.1 芯片总述spce061a 是台湾凌阳科技公司推出的一款 16 位 soc(system on chip,片上系统)的单片机,它采用高性能的 uns内核,具有丰富的硬件资源,只内嵌 32k 字的闪存(flash) 。2 个 10 位 dac(数-模转换)输出通道;能容纳 210 秒的语音数据; 7 通道 10 位电压模-数转换器(adc)和单通道声音模-数转换器;内置在线仿真电

17、路 ice(in- circuit emulator)接口;具有保密能力;具有 watchdog 功能。较高的处理速度使 nsp能够非常容易地、快速地处理复杂的数字信号。 spce061a 的结构如图 2.1 所示图 2.1 spce061a 结构16 位微控制器flashram锁相环振荡器cup 时钟ice_enice_sckise_sdaxi/rxo双 16 位定时器/计数器/时机中断控制7 通道 10 为 adc单通道 adc+agc低电压监测/低电压复位/看门狗双通道10 位 adc串行输入输出接口32 引脚通用输入输出端口uart 通信接口mic_inaud1aud2iob0(sck

18、)iob1(sda)iob7(rxd)iob10(txd)ioa15-0iob15-052.2 芯片最小系统最小系统接线如图 2.2 所示,在 osc0、osc1 端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入 vcp 端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上 0.1f 的去藕电容提高抗干扰能力。图 2.2 spec061a 最小系统2.3 i/o 端口spce061a 提供了位控制结构的 i/o 端口,每一位都可以单独用于数据输入或输出。每个独立的位可通过以下 3 种控制向量来作设定: (1) 数据向量 data (2) 属性向量 attribution (3) 方向控

19、制向量 direction 6每 3 个对应的控制向量组合在一起,形成一个控制字,用来定义相对应 i/o 端口位的输入输出状态和方式。 例如, 假设需要 ioa0 是下拉输入引脚, 则相对应的 data、 attribution 和 direction 的值均被设为 “0” 。 如果需要 ioa1 是带唤醒功能的悬浮式输入引脚, 则 data、attribution 和 direction 的值被设为“010” 。与其它的单片机相比,spce061a 除了每个 i/o 口可以单独定义其状态外,每个对应状态下的 i/o 端口性质电路都是内置的,在实际的电路中不需要再外接。例:设 a 口为带下拉电

20、阻的输入端口,在连接硬件时不用再外接下拉电路。 a 口和 b 口的 data、attribution 和 direction 的设定值均在不同的寄存器里,用户在进行 i/o 端口设置时要特别注意这一点。i/o 端口的组合控制设置如表 2.1 所示: 表 2.1 i/o 端口的控制向量组合directionattributiondata功能是否带唤唤醒功能功能描述000下拉*是*带下拉电阻的输入引脚001上拉是*带上拉电阻的输入引脚010悬浮是*悬浮式输入引脚011悬浮否悬浮式输入引脚*100高电平输出(带数据反相器)否带数据反相器的高电平输出(当向数据位写入“0”时输出“1”)101低电平输出

21、 (带数据反相器)否带数据反相器的低电平输出 (当向数据位写入“1”时输出“0”)110低电平输出否带数据寄存器的低电平输出 (无数据反相功能)111高电平输出否带数据寄存器的高电平输出 (无数据反相功能)注: *:端口位预设为带下拉电阻的输入引脚; 7* *:只有当 ioa 70内位的控制字为 000,001 和 010 时, 相对应位才具有唤醒的功能; *:悬浮输入作为 adc ioa60 的输入。p_ioa_data(读/写)(7000h) a 端口的数据单元,用于向 a 口写入或从 a 端口读出数据。当 a 口处于输入状态时,读出是读 a 口引脚电平状态; 写入是将数据写入 a 端口的

22、数据寄存器。当 a 口处于输出状态时,写入输出数据到 a 端口的数据寄存器。p_ioa_buffer (读/写) (7001h) a 端口的数据向量单元,用于向数据向量寄存器写入或从该寄存器读出数据。当 a 口处于输入状态时,写入是将 a 端口的数据向量写入 a 端口的数据寄存器;读出则是从 a 端口数据寄存器内读其数值。当 a 口处于输出状态时,写入输出数据到 a 端口的数据寄存器。 对输出而言,p_ioa_data 与 p_ioa_buffer 是一样的.但对输入而言,p_ioa_data 读的是 io 的值, p_ioa_buffer 读的是 buffer 内的值。 假设 ioa0作为输

23、出, 并去接 led 阳极 (led 阴极接地)。 若 p_ioa_data 的 ioa0为1。 在某些需要较大驱动能力的 led 而言,led 会亮,但 ioa0会被拉到一个很低的值。此时从 p_ioa_data 读回为 0,但 p_ioa_buffer 则为 1。读回的意义是是方便做其它的 io 运算。 p_ioa_dir(读/写)(7002h) a 端口的方向向量单元,用于用来设置 a 口是输入还是输出,该方向控制向量寄存器可以写入或从该寄存器内读出方向控制向量。dir 位决定了端口位的输入/输出方向:即0为输入, 1为输出。 p_ioa_attrib(读/写)(7003h) a 端口的

24、属性向量单元,用于 a 端口属性向量的设置。 p_ioa_latch(读)(7004h) 读该单元以锁存 a 端口上的输入数据,用于进入睡眠状态前的触键唤醒功能的启动。p_iob_data(读/写)(7005h) 由于本系统未涉及到 b 口的特殊功能,在此就不作介绍。82.4 定时及中断2.4.1 中断系统spce061a 单片机中断系统,可以提供 14 个中断源,具有两个中断优先级,可实现两级中断嵌套功能。用户可以用关中断指令(或复位)屏蔽所有的中断请求,也可以用开中断指令使 cpu 接受中断申请。每一个中断源可以用软件独立控制为开或关中断状态,但中断级别不可用软件设置。2.4.2 定时器s

25、pce061a 提供了两个 16 位的计时/计数器:timera 和 timerb。timera 为通用计数器;timerb 为多功能计数器。timera 的时钟源由时钟源 a 和时钟源 b 进行“与”操作而形成;timerb 的时钟源仅为时钟源 c。定时器发生溢出后,会产生一个溢出信号(taout/tbout),它会传送到 cpu 中断系统以产生定时器中断信号;此外,定时器溢出信号还可以用于触发 adc 输入的自动转换过程,和 dac 输出的数据锁存。 (一) 定时器 a要启用定时器,要写入一个计数值 n 到 p_timera_data(读/写)(700ah)单元, 或是 p_timerb_

26、data(读/写)(700ch)单元,然后选择一个合适的时钟源,这时,定时器将在所选的时钟频率下,开始以递增方式计数n,n+1,n+2,0 xfffe,0 xffff。当计数达到 0 xffff 后,计时/计数器溢出,产生中断请求信号,被 cpu 响应后送入中断控制器进行处理。同时,计数值 n 值将被重新加载计时/计数器并重新开始计数。p_timera_data(读/写)(700ah) timera 的数据单元,用于向 16 位预设寄存器写入数据(预设计数初值)或从其中读取数据。在写入数值以后,计数器便会在所选择的频率下进行加一计数,直至计数到 0 xffff 产生溢出。.溢出后 p_time

27、ra_data 中的值将会被复位,再以设置的值继续加一计数。一般说来分为以下几步: 1. 选择需要的计数频率。 2. 计算相对应的计数初值。 9p_timera_ctrl(写)(700bh) timera 的控制单元如表 2.2 所示。用户可以通过设置该单元的第 05 位来选择 timera 的时钟源(时钟源 a、b)。设置该单元的第 69 位,timera 将输出不同频率的脉宽调制信号,即对脉宽占空比输出 apwmo 进行控制。表 2.2 p_timera_ctrl 单元b15 b10b9b8b7b6b5b4b3b2b1b0-占空比的设置1时钟源 b 选择位(表 2.4)时钟源 a 选择位(

28、表 2.3)注:1:本系统未涉及到占空比,在此就不作阐述。 表 2.3 时钟源 a 选择位 b0b2b2b1b0时钟源 a 的频率000fosc/2001fosc/25601032768hz0118192hz1004096hz10111100*111ext1表 2.4 时钟源 a 选择位 b0b2b5b4b3时钟源 b 的频率0002048hz0011024hz010256hz011tmb11004hz1012hz1101*10111ext2注: *代表默认值为 1。若以 clka 作为门控信号, 1表示允许时钟源 b 信号通过,而0则表示禁止时钟源 b 信号通过,而停止 timera 的计数

29、。如果时钟来源 a 为1,timera 时钟频率将取决于时钟来源 b;如果时钟来源 a 为0,将停止 timera 的计数。 (二)定时器 b。由于本系统未用到定时器 b,在此就不作阐述。2.4.3 中断控制spce061a 单片机有多个中断源,为了使每个中断源都能独立地被开放和屏蔽,以便用户能灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器,只有该触发器无效,它所对应的中断请求信号才能进入 cpu,即此类型中断开放。否则即使其对应的中断请求标志位置“1”,cpu 也不会响应中断,即此类型的中断被屏蔽。同时 cpu 内还设置了一个中断允许触发器,它控制 cpu 能否响应中断。spce

30、061a 对中断源的开放和屏蔽,以及每个中断源是否被允许中断,都受中断允许寄存器 p_int_ctrl 和 p_int_clear 及 p_int_ctrl_new 控制和一些中断控制指令。中断控制单元 p_int_ctrl(读/写) (7010h) p_int_ctrl 控制单元(如表 2.5 所示)具有可读和可写的属性,其读写时的意义是不同的。表 2.5 p_int_ctrl 控制单元b7b6b5b4b3b2b1b0irq3keyirq44khzirq42khzirq41khzirq54hzirq52hzirq6tmb1irq6tmb2b15b14b13b12b11b10b9b8fiq_f

31、osc/ 1024irq0_fosc1024fiqtmairq1tmafiqtmbirq2tmbirq3ext2irq3ext1当写中断控制单元中的某位为“1”时,即允许该位所代表的中断被开放,并关闭屏蔽中断触发器,此时当有该中断申请时,cpu 会响应。否则如果该位被置 0 则11禁止该位所代表的中断。即使有中断申请,cpu 也不会响应。 当读取中断控制单元时,其主要作为中断标志,因为其每一位均代表一个中断,当 cpu 响应某中断时,便将该中断标志置“1”,即将 p_int_ctrl 中的某位置“1”可以通过读取该寄存器来确定 cpu 响应的中断。清除中断标志控制单元 p_int_clear(

32、写) (7011h) 清除中断标志控制单元(如表 2.6 所示)主要用于清除中断控制标志位,当 cpu 响应中断后,会将中断标志置位为“1”,当进入中断服务程序后,要将其控制标志清零,否则 cpu 总是执行该中断。表 2.6 清除中断标志控制单元 p_int_clearb7b6b5b4b3b2b1b0irq3keyirq44khzirq42khzirq41khzirq54hzirq52hzirq6tmb1irq6tmb2b15b14b13b12b11b10b9b8fiq_fosc/ 1024irq0_fosc1024fiqtmairq1tmafiqtmbirq2tmbirq3ext2irq3e

33、xt1因为 p_int_clear 寄存器的每一位均对应一个中断,所以如果想清除某个中断状态标志,只要将该寄存器中对应的中断位置 1 即可清除该中断状态标志位。该寄存器只有写的属性,读该寄存器是无任何意义的。激活和屏蔽中断控制单元 p_int_ctrl_new(读/写)($702dh) 激活和屏蔽中断控制单元(如表 2.7 所示)用于激活和屏蔽中断。表 2.7 激活和屏蔽中断控制单元 p_int_ctrl_newb7b6b5b4b3b2b1b0irq3irq4irq4irq4irq5irq5irq6irq6b15b14b13b12b11b10b9b8fiqirq0fiqirqfiqirq2ir

34、q3irq32.5 看门狗watchdog 是用来监视系统的正常运作。当系统正常运行时,每隔一定的周期12就必须清除 watchdog 计数器。如果在限定的时间内,watchdog 计数器没有被清除,cpu 就会认为系统已经无法正常工作,将会进行系统复位(reset)。spce061a 的 watchdog 的清除时间周期为 0.75 秒。因为 watchdog 的溢出复位信号 watchdog_reset 是由 4hz 时基信号经 4 分频之后产生的,即每 4 个 4hz 时基信号(1 秒)将会产生一个 watchdog_reset 信号。 watchdog 功能是上电时自动启动,不能被关闭

35、。因此用户使用时,注意要在 0.75 秒内,进行清除 watchdog 的操作。p_watchdog_clear(写) 7012h 要清除 watchdog, 只需要将“xxxx xxxx xxxx xx01b“写入 p_watchdog_clear 单元即可,xx 代表任意数值。如果没有在 0.75 秒内清除 watchdog,或者将不是“xxxx xxxx xxxx xx01b“的数值写入 p_watchdog_clear 单元,cpu 将会进行系统复位。当系统处于睡眠模式(sleep mode)时,watchdog 功能将会被关闭。13第三章 系统软件设计3.1 程序流程图程序流程详图3

36、.2 软件描述3.2.1 音频 我们所说的音频是指频率在 20 hz20 khz 的声音信号,分为:波形声音、语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言、语音学的内涵。将模拟的(连续的)声音波形数字元化(离散化) ,以便利数字计算机进行处理14的过程,主要包括采样和量化两个方面。 数字音频的质量取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因。wave 文件使用三个参数来表示声音,它们是:采样位数、采样频率和声道数。在计算机中采样位数一般有 8 位和 16 位两种,而采

37、样频率一般有 11025hz(11khz) ,22050hz(22khz) 、44100hz(44khz)三种。 wave 格式支持 msadpcm、ccitt a law、ccitt law 和其它压缩算法,支持多种音频位数、采样频率和声道,是 pc 机上最为流行的声音文件格式,但其文件尺寸较大,多用于存储简短的声音片段。3.2.2 应用程序接口单片机对语音的控制如录放音、合成音及辨识广泛应用到生活中。语音处理大致可以分为 a/d 转换、编码处理、存储、解码处理及 d/a 转换等(见图 3.1) 。然而,有扬声器(mic)输入所生成的 wave 文件占用的存储空间很大,单片机存储容量有限,凌

38、阳 spec061a 的解决方法就是提供 sacm-lib 库。该库将 a/d 转换、编码、存储、解码及 d/a 转换作为相应的模块,每个模块都有其应用程序接口(api) ,只需要了解每个模块所要实现的功能及参数,然后调用该 api 函数即可以实现该模块的功能。sacm-lib 库中模块及算法类型如表 3.1 所示。表 3.1 sacm-lib 库中模块及算法类型模块名称(model-index)语音压缩编码率类型资料采样率sacm_a200016kbit/s,20 kbit/s,24 kbit/s16khzsacm_s480/s7204.8 kbit/s,7.2 kbit/s16khzsac

39、m_s2402.4 kbit/s24khzsacm_ms01音乐合成(16kbits/s,20 kbits/s,24 kbits/s)16khzsacm_dvr(a2000)16 kbit/s 的资料率,8 k 的采样率,用于 adc 通道录音功能6khz15图 3.1 单片机对语音处理过程3.2.3 语音识别原理在前面我们已经介绍过语音识别的一些相关的内容, spce061 的特定语者辨识 sd(speaker dependent) 即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。 图 3.2 是语音识别的一个整体框图:图 3.2 语音识别原理框图

40、3.3 软件设计3.3.1 语音压缩编码语音压缩编码中的数据量是指:数据量=(采样频率量化位数)/8(字节数) 声道数目。 压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,存储麦克风a/d 转换编码处理d/a 转换喇叭识别部分初始化bsr_deletesdgroup(0)初始化识别器bsr_initrecognizer(bsr_mic)辨识处理bsr_getresult()调用训练模块trainword(intwordid, intrespondid)启动实时监控bsr_enablecpuindicator()16即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信

41、息。压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的。所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息。 按照实现的功能来分,语音合成可分两个档次: (1) 有限词汇的计算机语音输出 (2) 基于语音合成技术的文字语音转换(tts:text-to-speech) 按照人类语言功能的不同层次,语音合成可分为三个层次: 文本到语音的转换过程如图 3.3 所示。图 3.3 文本到语音的转换过程语音辨识: 早期只能辨认特定的使用者即特定语者(speaker dependent,sd)模式,使用者可针对特定语者辨认词

42、汇(可由使用者自行定义,如人名声控拨号),作简单快速的训练纪录使用者的声音特性来加以辨认。 随着技术的成熟, 进入语音适应阶段 sa(speaker adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。 只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及正确率,虽然效果还不错但仍需再提高。然而,中文字有太多的同音字,因此目前所有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字。可辨认词汇数量:内建的词汇数据库的多寡,也直接影响其辨识能力。文本输入文本处理韵律处

43、理语音合成合成语音输出词典及语言规范语音数据库17图 3.4 是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块。图 3.4 语音识别原理简图3.3.2 凌阳音频压缩算法不同音频质量等级的编码技术标准(频响)如表 3.2 所示:表 3.2 不同音频质量等级的编码技术标准信号类型频率范围(hz)采样率(khz)量化精度(位)电话音200-340088宽带音频(am 质量)50-70001616调频广播(fm 质量)20-15k37.816高质量音频(cd 质量)20-20k44.116凌阳音频压缩算法处理的语音信号的范围是 200hz3.4khz 的电话话音。凌阳音频压缩算法根

44、据不同的压缩比分为以下几种: sacm-a2000:压缩比为 8:,8:1.25,8:1.5 声学模式训练语音模型复杂声学、言语条件下的语音输入语音匹配语音模式训练语音处理语言模型识别结果理解结果18sacm-s480: 压缩比为 80:3,80:4.5 sacm-s240: 压缩比为 80:1.5 按音质排序:a2000s480s240凌阳音频形式和压缩算法:(1) 波形编码:sub-band 即 sacm-a2000 特点:高质量、高码率,适于高保真语音音乐。 (2) 参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码。如:sacm-s240。 特点:压缩比大,计算量大

45、,音质不高,廉价! (3) 混合编码:celp 即 sacm-s480 特点:综合参数和波形编码之优点。 除此之外,还具有 fm 音乐合成方式即 sacm-ms01。3.3.3 凌阳语音的播放、录制、合成和辨识功能的分析凌阳的 spce061a 是 16 位单片机,具有 dsp 功能,有很强的信息处理能力,最高时钟频率可达到 49mhz,具备运算速度高的优势等等,这些都无疑为语音的播放、录放、合成及辨识提供了条件。 凌阳压缩算法中 sacm_a2000、sacm_s480、sacm_s240 主要是用来放音,可用于语音提示,而 dvr 则用来录放音。对于音乐合成 ms01,该算法较繁琐,而且需

46、要具备音乐理论、配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了解相关内容,这里只给出它的 api 函数介绍及程序代码的范例,仅供参考。 对于语音辨识主要有以下两种: (1) 特定发音人识别 sd(speaker dependent):是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别。 (2) 非特定发音人识别 si(speaker independent):是指语音样板由不同年龄、不同性别、不同口音的人进行训练,可以识别一群人的命令。 语音识别电路基本结构如图 3.5 所示: 19图 3.5 语音识别电路基本结构3.3.4 语音播放应用程序

47、接口函数凌阳语音压缩算法有 sacm_a2000、sacm_s480 和 sacm_s240 三种格式。其中 sacm_a2000a 音频压缩算法的压缩比较小(8:1) ,编码速率可选择16kbit/s、20 kbit/s、24 kbit/s 三种之一,具有高质量、高编码速率的特点,适用于高保真音乐和语音;sacm_s480 音频压缩算法的压缩比较大(80:3) ,编码速率可选择 4.8 kbit/s、7.2 kbit/s 两种之一,较为节省存储容量,音质介于 sacm_a2000 和sacm_s240 之间,适用于语音播放(如“文曲星”词库等) ;sacm_s240 压缩算法的压缩比较大(8

48、0:1.5) ,价格也最低,编码速率只能选择 2.4kbit/s,适用于对保真度要求不高的场合(如电子玩具产品等) 。采用以上三种语音压缩算法产生的语音压缩文件都可在初始化时选择自动或手动方式播放,与 sacm_a2000、sacm_s480和 sacm_s240 三种语音压缩算法相关的 api 各有 13 个(本系统用到 10 个) 。这些函数的功能和格式等基本相同。本小节就 sacm_a2000 进行阐述。若用到sacm_s240 或 sacm_s480,只需将函数中的 sacm_a2000 更换掉,其它的不变。对于常用的 sacm_a2000 和 sacm_s480 两种放音算法要涉及到

49、语音资源的添加问题,即将 wav 文件按照我们需要的压缩比进行压缩,变成资源表形式在程语音分析滤波器组parcor 系数线性预测系数过零次数能量相关函数等滤除噪音预加重模式匹配词典语音识别结果输出20序中调用。这里介绍 windows 下的压缩方式。语音压缩可以使用凌阳语音压缩工具(compress tool)完成。该压缩工具支持.wav 格式的语音压缩,但要求压缩语音资源属性为 8khz,16 位,单声道。compress tool 软件可在凌阳大学计划网站上下载。如果语音属性不是 8khz,16 位,单声道,可用 windows 自带的录音及软件处理,将其压缩成 8khz,16 位,单声道

50、。3.3.5 语音播放应用程序接口函数同样语音辨识也将其一些功能作成模块,并通过 api 调用来实现这些功能,在这里分析一些常用的 api 函数。初始化: 【api 格式】c: int bsr_deletesdgroup(0); asm:f_bsr_deletesdgroup(0) 【功能说明】sram 初始化。 【参 数】该参数是辨识的一个标识符,0 代表选择 sram,并初始化。 【返 回 值】当 sram 擦除成功返回 0,否则,返回1。 训练部分: 1) 【api 格式】c:int bsr_train (int commandid, int traindmode); asm:f_bsr

51、_train【功能说明】训练函数。 【参 数】 commandid:命令序号,范围从 0 x100 到 0 x105,并且对于每组训练语句都是唯一的。 traindmode:训练次数,要求使用者在应用之前训练一或两遍: bsr_train_once:要求训练一次。 bsr_train_twice 要求训练两次。 【返 回 值】训练成功,返回 0;没有声音返回1;训练需要更多的语音数据来训练,返回2;当环境太吵时,返回3;当数据库满,返回4;当两次输入命令不通,返回5;当序号超出范围,返回6。 【备 注】 在调用训练程序之前,确保识别器正确的初始化。 21 训练次数是 2 时,则两次一定会有差异

52、,所以一定要保证两次训练结果接近 为了增强可靠性,最好训练两次,否则辨识的命令就会倾向于噪音 调用函数后,等待 2 秒开始训练,每条命令只有 1 .3 秒,也就是说,当训练命令超出 1.3 秒时,只有前 1.3 秒命令有效。辨识部分: 1) 【api 格式】c: void bsr_initrecognizer(int audiosource) asm:f_bsr_initrecognizer 【功能说明】辨识器初始化。 【参 数】 定义语音输入来源。通过 mic 语音输入还是 line_in 电压模拟 量输入。2) 【api 格式】c:int bsr_getresult(); asm:f_ b

53、sr_getresult 【返回值】=r1 【功能说明】辨识中获取数据。 【返 回 值】当无命令识别出来时,返回 0; 识别器停止未初始化或识别未 活返回1; 当识别不合格时返回2; 当识别出来时返回命令的序号。【备 注】 该函数用于启动辨识,bsr_getresult();3) 【api 格式】c: void bsr_stoprecognizer(void); asm:f_ bsr_stoprecognizer 【功能说明】停止辨识。 【备 注】该函数是用于停止识别,当调用此函数时,fiq_tma 中断将关闭。 中断部分【api 格式】 asm:_bsr_initrecognizer 【功能

54、说明】 在中断中调用,并通过中断将语音信号送 dac 通道播放。 【参 数】无。 【返 回 值】无。 22【备 注】 函数在中断 fiq_tma 中调用 当主程序调用 bsr_initrecognizer 时,辨识器便打开 8k 采样率的 fiq_tma中断并开始将采样的语音数据填入辨识器的数据队列中。 应用程序需要设置一下程序段在 fiq_tma 中。其中实时监控是用来观察辨识是否正常工作,如果辨识正常则会产生一 16ms 连续稳定方波如图 4.2 如果 cpu 超载则会产生不稳定波形如图 4.3 需要删除命令,或是优化程序否则会丢失语音数据产生辨识出现错误的信息 。图 3.6 辨识正常产生的方波图 3.7 cpu 超载产生的波形16ms16ms16ms23第四章 硬件电路设计 本系统涉及到的硬件包括 spec016a 电源模块、语音输入模块、语音输出模块和小驱动模块,有关对应的 spec016a 的接口见图 2.1 (spec061a 最小系统)所示。4.1 spec016a 电源模块4.1.1 spy0029 芯片简介 spy0029 为 sot-223 封装,只有三个引脚,其中 1 号脚接地(gnd) 、2 号脚为电压输入端(vin) 、3 号脚为电压输出端(vout) 。spy0029a 是凌阳科技公司设计的电压调整 ic,采用 cmos 工艺,具有静态电流低

温馨提示

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

最新文档

评论

0/150

提交评论