基于SPCE061A的语音识别系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SPCE061A的语音识别系统的设计
2012-01-07 14:11:43 来源:互联网
关键字:SPCE061A语音识别系统
1引言
语音识别技术就是让机器通过识别和理解把语音信号转变为相应的文本或命令的技术。语音识别是一门交叉学科,正逐步成为信息技术中人机接口的关键技术,语音识别技术与语音合成技术的结合,使人们能够甩掉键盘,通过语音命令进行操作。近年来语音学研究的深入和数字信号处理软硬件技术的发展,语音技术的应用己经逐步具备走出实验室,服务于社会的能力。尤其在中小字表孤立词语音识别技术已基本成熟,逐渐开始应用于家电产品、智能玩具等对识别率要求不是极其严格的领域。
2 硬件系统的总体方案介绍
本系统采用凌阳SPCE061A作为主控芯片,并根据功能需求设计嵌入式语音识别系统的硬件。由于这是一款包含DSP功能并集成了户A/D,D/A等一系列功能的语音处理专用SOC,模块电路、外扩存储FLASH、LED显示电路、通信模块、功放和喇叭输出模块等。
图1 语音识别系统的硬件组成
2.1电源电路
SPCE061A采用低电压供电方式,这可以大大降低芯片的功率损耗。其中,SPCE06lA的电源分两种,即内核电源(VDD)和I/O口电源(VDDH)。I/O口电源采用5V电压,而内核电源则为3.3V或者更低。降低芯片内核电压的目的主要还是降低芯片的功耗,同时也可以降低芯片的工作温度,延长芯片使用寿命。尽管这种语音芯片的工作电压范围很大,但是为了使芯片内核运行更加稳定,同时又保证I/O口及外部扩展部件的工作电压要求,系统采取:
AC220V电源通过AC10V进行整流,利用以7805稳压集成块为核心的电路,产生+5V电源,作为语音识别与播放模块共同使用的电源。5V电源经过TR1972-33得到DC3.3v为CPU核心供电。
图2 电源电路
2.2存储模块部分电路设计
因为SPCE061A的FLASH只有32Kwords,要存放大量的语音资源,就需要外扩存储器。
系统使用的是一种用SIO扩展串行存储器的方法。本方案采用凌阳公司的SPR4096芯片进
行设计。SPR4096是一个高性能的4M-bit(512K×8-bit)总线FLASH,分为256个扇区(sector)每个扇区为2K-byte。SPR4096还内置了一个4K×8-bit的SRAM。在进行FLASH的编程/
擦除的时候,可以并发执行SRAM的读/写。SPR4096内置了一个总线存储器接口和一个串行接口,它允许单片机通过8-bit并行模式或者1-bit的串行模式访问FLASH SRAM存储区。本例使用串行模式,其接口的工作频率为5MHz。SPR4096有两个电源输入端VDDI和VDDQ。VDDI为内部FLASH和控制逻辑供电;VDDQ专门为I/O供电。SPR4096最大读电流为2mA,最大编程/擦除电流为6mA。
2.3音频输出电路模块
放音利用的是SPCE06lA内部集成的DAC,它是电流输出,为了能够驱动扬声器SPEAKER 放音需要相应的驱动电路。图中的SPY0030单运放是凌阳公司的产品。与常用的单运放
L M386比,SPY0030的优势在如L M386的工作电压需要在4v以上,而SPY0030只需要2.4v 可工作,L M386的输出功率在100mw以下,而SPY0030约为700mw,可以提供足够的驱
动能力。音频输出电路如图3所示。
图3 音频输出电路
2.4 MIC输入模块
SPCE061A的A/D转换器有8个通道,其中有1个通道是MIC-NI输入,它专门用于对语音信号进行采样。语音信号经过M CI转换成电信号,然后输入至SPCE061A内部前置放大器。由于人们说话时,麦克风距离嘴边的距离不同,语音信号的能量将会有很大的差异,此时,如果芯片的的输入信号太大或是太小都将影响识别的精度。而SPCE06lA内部就带有自动增益控制电路AGC能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增大时AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放大器的增益,从而以补偿太小或是太大的信号,以便使进入户A/D的信号保持在最佳电平,又可使削波减至最小。
2.5通信接口电路
单片机中的数据通过串口经MAX232电平转换成RS-232电平向上位传输。由于SPCE06lA 的串行口都为TTL电平,它与RS-232C电平互不相容,所以在二者接口处,必须进行电平转换。利用MAX232芯片外接5V电源,外接电容,可产生正负10V的电源形成232C的收发器。本系统中设有通信电路是为将大量语音数据处理都需要上传给PC,由PC完成。比如,噪声能量和过零率的计算,数字滤波器设计,模型库的训练等。
3软件设计部分
总体来说,本系统包含语音识别模块的软件设计和语音回放模块的软件设计。
3.1语音识别部分设计
语音识别程序是软件编程的主体工作识别模块的程序流程图4所示。本系统采用了常用的能量过零率双门限法进行语音端点检测,采用了计算量较小的线性预测倒谱系数作为语音信号
特征矢量,另外,基于非特定人的嵌入式系统要求,为了达到减少计算量和存储量的目的,在特征参数提取完成之后,利用矢量量化方法进行数据压缩。语音识别模型采用(DHMM)离散隐马尔可夫模型,利用Baum-welth重估算法、前向后向算法、viterbi算法来完成语音模板的训练和语音识别的任务。
图4 语音识别模块流程图
初始化子程序的作用是将微处理器中与语音识别相关的资源进行参数设置,使其实现为相应的功能,例如自动A/D变换等;
端点检测用来避免不必要的计算量,同时设定语音识别解码的起点和终点,防止无效搜索;预处理用来提高语音识别性能,增强稳健性的重要环节。预处理包括对原始语音信号的滤波、预加重、加窗、分帧等环节。同时还可能包含语音增强、噪声抵消、端点检测等等。预加重主要是为了提升高频部分,以弥补声音在唇部辐射时产生的高频部分的损失,可以使信号的频谱平坦,减少信号的动态范围;
特征提取就是对语音信号进行分析处理,去除对语音识别无关紧要的冗余信息,提取出对语音识别有用的重要信息;
矢量量化(VQ)是一种重要的信号压缩方法,它可以减少语音信号处理中所需要的大量的存储空间,并可以减少识别匹配的计算量;
语音信号本身是一个可观察的序列:它是由大脑中的(不可观察的)、根据言语需要和语法知识(状态选择)所发出的音素(词、句)的参数流,所以用离散隐马尔可夫模型(DHMM)来模拟语音信号。