智能语音识别遥控系统.docx
- 文档编号:9263940
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:21
- 大小:318.54KB
智能语音识别遥控系统.docx
《智能语音识别遥控系统.docx》由会员分享,可在线阅读,更多相关《智能语音识别遥控系统.docx(21页珍藏版)》请在冰点文库上搜索。
智能语音识别遥控系统
摘要
语言是人类进行信息交流的最主要、最常用、最直接的方式。
语音智能识别遥控技术既计算机自动语音识别遥控技术是实现遥控智能化的一项重大突破,在国外近年来发展十分迅速,其应用也逐步得到推广。
但这些技术和应用都是针对英文使用者。
语音智能识别遥控系统结合了计算机网络技术、数字线性逻辑技术、数字程控交换技术、数字语音信号识别技术,推出了适应多种语言智能识别系统,并能精确处理来自不同用户的发音,连续字句。
使用者语音智能识别遥控来进行操纵的语音智能识别系统,由于智能型遥控是使用双模块和两级端点检测方法以及能有效地提高识别和稳健性;从而能更好的利用智能语音识别遥控系统来代替手工或半自动化器件在家电和其他领域中的使用,展现了智能语音识别技术电遥控器应用,展现了智能语音识别技术在新时代广阔前景。
关键字:
语音识别;传感器;学习型遥控器
目录
摘要i
目录ii
第1章前言1
1.2智能语音识别技术1
1.3智能语音识别在家电遥控器中的应用2
第2章智能语音识别在遥控器中的应用原理3
2.1语音识别概述3
2.2语音控制遥控器设计7
第3章语音识别及其定点DSP实现11
3.1语音识别及其定点DSP实现11
3.2系统的硬件12
3.3语音识别的DSP实现技术13
3.3.1变量的维护13
3.3.2采用模块化的程序设计方法15
第4章智能语音识别遥控系统技术16
4.1语音识别技术16
4.2 DSP芯片的选择17
4.2.1语音输入输出模拟前端的选择18
4.2.2接口设计19
4.3语音信号的端点检测20
4.3.1语音特征参数的提取和计算20
4.3.2模式识别动态时间归整21
第5章结论23
致谢24
参考文献25
第1章前言
本文主要是论述了智能语音识别遥控系统,随着科学技术的发展,电子产品的更新换代进一步加快,现代电子设计已进入一个全新的阶段.从手工开关到现在遥控开关.从中小规模的通用集成芯片到单片机数字系统到智能语音识别遥控系统,在这一个过程克服了中小规模集成电路在系统设计中的一些缺点,同时也提供了新的开发空间。
1.1智能语音识别及其定点DSP实现。
语音识别研究的根本目的是研究出一种具有听觉功能的机器,能直接接受人的口呼命令,理解人的意图并做出相应的反映。
语音识别系统的研究涉及微机技术、人工智能、数字信号处理、模式识别、声学、语言学和认知科学等许多学科领域,是一个多学科综合性研究领域。
近年来,高性能数字信号处理芯片DSP(DigitalSignalProcess)技术的迅速发展,为语音识别的实时实现提供了可能,其中,AD公司的数字信号处理芯片以其良好的性价比和代码的可移植性被广泛地应用于各个领域。
因此,我们采用AD公司的定点DSP处理芯ADSP2181实现了语音信号的识别
1.2智能语音识别技术
智能识别技术的研究与应用已有相当长的时间了,语音识别技术关系到多学科的研究领域,不同领域上的研究成果都对语音识别的发展做出了贡献。
由于不同的说话人、不同的说话速度、不同的说话内容以及不同的环境条件等都使机器识别语音产生某种程度不同的困难。
这是由语音信号本身的特点所造成的。
这些特点包括多变性、,动态性、瞬时性和连续性等。
一个完整的语音识别系统可大致分为4个部分:
①变化的语音特征序列。
②建立声学模型 通常将获取的语音特征通过学习算法产生。
③模板匹配(识别算法) 在识别时将输入的语音特征同声学模型进行比较,得到最佳的识别结果。
④语言模型与语言处理 由识别语音命令构成的语法网络,可以进行语法、语义分析。
对小词表语音识别系统,往往不需要语言处理部分。
1.3智能语音识别在家电遥控器中的应用
介绍一种适合家电遥控器应用的语音识别算法,该算法使用双模块和两级端点检测方法,能有效地提高识别和稳健性;介绍利用该技术实现的一种新型学习型遥控器,展现了语音识别技术在家电领域的广阔前景。
第2章智能语音识别在遥控器中的应用原理
2.1语音识别概述
本章主要介绍一种适合家电遥控器应用的语音识别算法,该算法使用双模块和两级端点检测方法,能有效地提高识别和稳健性;介绍利用该技术实现的一种新型学习型遥控器,展现了语音识别技术在家电领域的广阔前景。
家用电器发展的一个重要方面是让用户界面更加人性化,更加方便自然,做到老年人和残疾人可以无障碍地使用。
利用语音识别技术实现语音控制是提高家电产品用户界面质量的一条重要途径。
本文以语音控制遥控器为例,说明语音识别技术如何应用在家电器领域。
适合家用电器应用的语音识别嵌入式系统结构如图2-1所示,它由四个部分组成。
第一部分为模/数转换部分,其输入端接收输入的语音信号,并将其转化成数字芯片可处理的数字采集信号;在输出端将解码后的语音数字信号转换为音频模拟信号,通过扬声器放声。
第二部分为语音识别部分,它的作用是对输入的数字语音词条信号进行分析,识别出词条信号所代表的命令,一般由DSP完成。
第三部分语音提示和语音回放部分,它一般也是在DSP中完成的,其核心是对语音信号进行数字压缩编码和解码,目的是提示用户操作并对识别语音的响应,完成人机的语音交互。
第四部分是系统控制部分,它将语音识别结果转换成相应的控制信号,并将其输出转换成物理层操作,完成具体功能。
语音识别与系统控制的有机结合是完成声控交互的关键,下面将对语音识别算法及遥控系统控制部分作详细的讨论。
图2-1语音控制系统结构图
其一、语音识别算法
目前,常以单片机(MCU)或DSP作炎硬件平台的实现消费类电子产品中的语音识别。
这类语音识别主要为孤立词识别,它有两种实现方案:
一种是基于隐含马尔科夫统计模型(HMM)框架的非特定人识别;另一种是基于动态规划(DP)原理的特定人识别。
它们在应用上各有优缺点。
HMM非特定人员的优点是用户无需经过训练,可以直接使用;并且具良好的稳定性(即对使用者而言,语音识别性能不会随着时间的延长而降低)。
但非特定人语音识别也有其很难克服的缺陷。
首先,使用该方法需要预先采集大量的语料库,以便训练出相应的识别模型,这就大大提高了应用此技术的前期成本;其次,非特定人语音识别很难解决汉语中不同方言的问题,限制了它的使用区域;另外还有一个因素也应予以考虑,家电中用于控制的具体命令词语最好不要完全固定,应当根据的用户的习惯而改变,这一点在非特定人识别中几乎不可能实现。
因此大多数家电遥控器不适合采用此方案。
DP特定人识别的优点是方法简单,对硬件资源要求较低;此外,这一方法中的训练过程也很简单,不需预先采集过多的样本,不仅降低了前期成本,而且可以根据用户习惯,由用户任意定义控制项目的具体命令语句,因而适合大多数家电遥控器的应用。
DP特定识别的严重缺点是它的稳健性不理想,对有些人的语音识别率高,有的人识别率却不高;刚训练完时识别率较高,但随着时间的推迟而识别率降低。
些缺点往往给用户带来不便。
为克服这些缺陷,对传统方法作为改进,使识别性能和稳健性都有显著的提高,取得令人满意的结果。
其二、端点检测方法
影响孤立词识别性能的一个重要因素是端点检测准确性[4]。
在10个英语数字的识别测试中,60毫秒的端点误差就使识别率下降3%。
对于面向消费类应用的语音识别芯片系统,各种干扰因素更加复杂,使精确检测端点问题更加困难。
为此,提出了称为FRED(Frame-basedReadl_timeEndpointDetection)算法[3]的两级端点检测方案,提高端点检测的精度。
第一级对输入语音信号,根据其能量和过零率的变化,进行一次简单的实时端点检测,以便去掉静音得到输入语音的时域范围,并且在此基础上进行频谱特征提取工作。
第二级根据输入语音频谱的FFT分析结果,分别计算出高频、中频和低频段的能量分布特性,用来判别轻辅音、浊辅音和元音;在确定了元音、浊音段后,再向前后两端扩展搜索包含语音端点的帧。
FRED端点检测算法根据语音的本质特征进行端点检测,可以更好地适应环境的干扰和变化,提高端点检测的精度。
在特定人识别中,比较了常用的FED(FastEndpointDetection)[5]和FREDwww.biyezuopin.cc两种端点检测算法的性能。
两种算法测试使用相同的数据库,包括7个人的录音,每个人说100个人名,每个人名读3遍。
测试中的DP模板训练和识别算法为传统的固定端点动态时间伸缩(DTW)模板匹配算法[4]。
两种端点检测算法的识别率测试结果列在表2-1中。
端点检测算法
第1人
第2人
第3人
第4人
第5人
第6人
第7人
平均
FED
92.5%
87%
92.6%
95.6%
96.2%
96.8%
100%
94.4%
FRED
94.3%
89.9%
93.2%
99.4%
99.4%
98.8%
100%
96.4%
表2-1比较FED和FRED端点检测算法对DTW模板匹配识别率的影响
测试结果说明:
使用FRED端点检测算法,所有说话人的识别率都有了不同程度的提高。
因此,本系统采用这种两级端点检测方案。
其三、模拟匹配算法DTW是典型的DP特定人算法,为了克服自然语速的差异,用动态时间规整方法将模板特征序列和语音特征序列进行匹配,比较两者之间的失真,得出识别判决的依据。
假设存储的一个词条模板包括M帧倒谱特征R={r(m);m=1,2,∧,M};识别特征序列包括N帧倒谱特征T={t(n);n=1,2,∧,N}。
在r(i)和t(i)之间定义帧局部失真D(i,j),D(i,j)=|r(i)-t(i)|2,通过动态规划过程,在搜索路径中找到累积失真最小的路径,即最优的匹配结果。
采用对称形式DTW:
S(i-1,j-2)+2D(I,j-1)+d(I,j)
(1)
S(I,j)=min{s(i-1,j-1)+2D(i,j)
S(i-2,j-1)+2D(i-1,j)+d(i,j)
其中S(i,j)是累积失真,D(i,j)是局部失真。
当动态规划过程计算到固定结点(N,M)时,可以计算出该模板动态匹配的归一化距离,识别结果即该归一化距离最小的模板词条:
x=argmin{S(N,Mx)}。
为了提高DTW识别算法的识别性能和模板的稳健性,提出了双模板策略,即x=argmin{S(N,M2x)}。
第一次输入的训练词条存储为第一个模板,第二次输入的相同训练词条存储为第二个模板,希望每个词条通过两个较稳健的模板来保持较高的识别性能。
与上面测试相同,也利用7个人说的100个人名,每个人名含3遍的数据库,比较DTW单模板和双模板的性能差别,结果更在表2-2中。
DTW
第1人
第2人
第3人
第4人
第5人
第6人
第7人
平均
单模板
94.3%
89.9%
93.2%
99.4%
99.4%
98.8%
100%
96.4%
双模板
99.4%
96.6%
98.5%
100%
100%
98.8%
100%
99.0%
表2-2DTW不同模板数的识别率比较
测试结果说明:
通过存储两个模板,相当大地提高了DTW识别的性能,其稳健性也有很大的提高。
因此,对特定人识别系统,采用DTW双模板是简单有效的策略。
综上所述,该嵌入式语音识别芯片系统采用了改进端点检测性能的FRED算法,12阶Mel频标倒谱参数(MFCC)作为特征参数,使用双模板训练识别策略。
通过一系列测试,证明该系统对特定人的识别达到了很好的识别性能,完全可以满足家用电器中声控应用的要求。
2.2语音控制遥控器设计
目前家用遥控器主要为按键式,并有两种类型:
一种是固定码型,每个键对应一种或几种码型,都是生产厂家预先设定好的,用户不能更改;另一种是学习型,具有自我学习遥控码的功能,可由用户定义遥控器的每个键对应的码型,它能够将多种遥控器集于一身,用一个遥控器就可控制多个家电,又可以作为原配遥控器的备份。
由于现代家电功能不断增加,上述两种遥控器都有按键过多,用户不易记住每个键的含义等问题。
将语音识别技术应用于学习型遥控器,利用语音命令代替按者对命令的记忆和使用,同时省去了大量按键,缩小了遥控器的体积。
图2-2语音控制器硬件系统图
语音控制遥控器的硬件框图如图2-2所示,它由两个独立的模块组成:
语音信号处理模块和系统控制模块。
语音信号算是模块由DSP、快闪存储器(FLASH)、编解码器(CODEC)组成。
其中DSP是整个语音识别模块的核心,负责语音识别、语音编解码,以及FLASH的读写控制。
DSP的优点是运算速度快、内存空间大、数据交换速度快,可用来实现复杂的算法,提高识别率,减小反应延时,得到较高的识别性能。
DSP芯片选用AnalogDevices公司的AD2186L,它具有如下特点:
①运算速度达40MIPS,且均为高效的单调周期指令;②提供了40K字节的片内RAM,其中8K字(16Bit/字)为数据RAM,8K字(24Bit/字)为程序RAM,最大可达4兆字节的存储区,用于存储数据或程序;③3.3V工作电压,具有多种省电模式。
AD2186L既能完成与语音信号算是相关的算法,又适合使用电池作能源的遥控器。
FLASH和CODEC也都选用3.3V工作电压的芯片。
FLASH为美国ATMEL公司的AT29LV040A(4MBit),它作为系统的存储器,主要用于存放以下内容:
提示语音合成所需的参数,特定人训练后的码本数据,DSP系统的应用程序和学习和遥控码数据。
CODEC选用美国TI公司的TLV320AC37,用来进行A/D、D/A变换、编码和解码。
系统控制模块由单片机、红外接收发送器、电源管理电路组成。
单片机负责整个遥控器的系统控制。
单片机作为主控芯片,进行键盘扫描,根据用户通过键盘输入的指令,分别完成学习遥控码;控制DSP进行语音训练、回放、识别;将识别结果转换成相应的遥控码,通过红外发光管发射出去。
单片机与DSP之间通过标准的RS232串行协议通讯。
图2-3系统控制软件流程图
系统的控制软件流程图如图2-3所示。
在使用前,按“学习键”进入学习状态,用户先对学习型遥控器训练语音命令,并使其学习与各语音命令相对应的原理控码型。
使用时按“识别键”,进入语音识别状态,等待语音处理模块返回结果,若返回正确的识别结果,则把相应的遥控码发射出去。
例如,原电视遥控器数字键“1”对应中央1台,用户的训练命令为“中央1台”,学习了原遥控器的数字键“1”的遥控码,并使其与训练命令“中央1台”对应起来。
于是使用时只需对着学习型遥控器的麦克风说出“中央1台”,电视就会切换到中央1台。
这样用户不需要记住每个电视台与台号的对应关系,相对于枯燥的频道数字,用户自定义的命令更容易记住。
若连续的30秒无正确的命令则遥控器进入休眠状态,单片机控制电源管理电路切换DSP和FLASH电源,单片机本身也进入休眠状态,直至用户按键,唤醒单片机,再由单片机控制恢复DSP和FLASH供电,重新开始工作。
这是因为整个系统中,DSP的功耗最大,长时间不用时,关闭语音信号处理模块,可以显著地降低整个系统的功耗。
第3章语音识别及其定点DSP实现
3.1语音识别及其定点DSP实现
本章主要论述语音识别研究的根本目的是研究出一种具有听觉功能的机器,能直接接受人的口呼命令,理解人的意图并做出相应的反映。
语音识别系统的研究涉及微机技术、人工智能、数字信号处理、模式识别、声学、语言学和认知科学等许多学科领域,是一个多学科综合性研究领域。
近年来,高性能数字信号处理芯片DSP(DigitalSignalProcess)技术的迅速发展,为语音识别的实时实现提供了可能,其中,AD公司的数字信号处理芯片以其良好的性价比和代码的可移植性被广泛地应用于各个领域。
因此,我们采用AD公司的定点DSP处理芯片ADSP2181实现了语音信号的识别。
1语音识别的基本过程根据实际中的应用不同,语音识别系统可以分为:
特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。
但无论那种语音识别系统,其基本原理和处理方法都大体类似。
一个典型的语音识别系统的原理图如图3-1所示。
图3-1智能语音识别原理图
语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。
预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。
语音信号识别最重要的一环就是特征参数提取。
提取的特征参数必须满足以下的要求:
(1)提取的特征参数能有效地代表语音特征,具有很好的区分性;
(2)各阶参数之间有良好的独立性;
(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。
在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。
在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。
同时,还可以在很多先验知识的帮助下,提高识别的准确率。
3.2系统的硬件
其一、ADSP2181的特点
AD公司的DSP处理芯片ADSP2181是一种16b的定点DSP芯片,他内部存储空间大、运算功能强、接口能力强。
有以下的主要特点:
(1)采用哈佛结构,外接16.67MHz晶振,指令周期为30ns,指令速度为33MI/s,所有指令单周期执行;
(2)片内集成了80kB的存储器:
16kB字的(24b)的程序存储器和16kB字(16b)的数据存储器;(3)内部有3个独立的计算单元:
算术逻辑单元(ALU)、乘累加器(MAC)和桶形移位器(SHIFT),其中乘累加器支持多精度和自动无偏差舍人;(4)一个16b的内部DMA端口(1DMA),供片内存储器的高速存取;一个8b自举DMA(BDMA)口,用于从自举程序存储器中装载数据和程序;(5)6个外部中断,并且可以设置优先级或屏蔽等。
由于ADSP2181以上的特点,使得该芯片构成的系统体积小、性能高、成本和功耗低,能较好地实现语音识别算法。
其二、系统的硬件结构在构成语音识别电路时,我们采用了ADSP2181的主从结构设计方式,通过IDMA口由CPU装载程序。
语音识别系统的硬件结构如图3-2所示。
图3-2智能语音识别系统的结构
在这种结构中,PC机为主CPU,ADSP2181为从CPU,由PC机通过IDMA口将程序装载到ADSP2181的内部存储器中。
PC机总线通过CPLD译码,形成IRD,IWR,IAL,IS等控制信号,与ADSP2181的IDMA口相连。
这样,在ADSP2181全速运行时,主机可以查询从机的运行状态,可以访问到ADSP2181内部所有的程序存储器和数据存储器。
这对程序的编译和调试,以及语音信号的实时处理带来了极大的方便
3.3语音识别的DSP实现技术
3.3.1变量的维护
其一、浮点运算的定点实现
在语音识别的算法中,有许多的浮点运算。
用定点DSP来实现浮点运算是在编写语音识别程序中需要首先解决的问题。
这个问题可以通过数的定标方法来实现。
数的定标就是决定小数点在定点数中的位置。
Q表示法是一种常用的定标方法。
其表示机制是:
设定点数是J,浮点数是)/,则Q法表示的定点数与浮点数的转换关系为:
浮点数)/转换为定点数x:
x=(int)y×2Q;
定点数z转换为浮点数y:
y=(float)x×2-Q。
其二、数据精度的处理
用16b的定点DSP实现语音识别算法时,虽然程序的运行速度提高了,但是数据精度比较低。
这可能由于中间过程的累计误差而引起运算结果的不正确。
为了提高数据的运算精度,在程序中采用了以下的处理方法:
其三、扩展精度
在精度要求比较高的地方,将计算的中间变量采用32b,甚至48b来表示。
这样,在指令条数增加不多的情况下却使运算精度大大提高了。
其四、采用伪浮点法来表示浮点数
伪浮点法即用尾数+指数的方法来表示浮点数。
这时,数据块的尾数可以采用Q1.15数据格式,数据块的指数相同。
这种表示数据的方法有足够大的数据范围,可以完全满足数据精度的要求,但是需要自己编写一套指数和尾数运算库,会额外增加程序的指令数和运算量,不利于实时实现。
以上两种方法,都可以提高运算精度,但在实际操作时,要根据系统的要求和算法的复杂度,来权衡考虑。
在高级语言中,有全局变量与局部变量存储的区别,但在DSP程序中,所有声明的变量在链接时都会分给数据空间。
所以如果按照高级语言那样定义局部变量,就会浪费大量的DSP存储空间,这对数据空间较为紧张的定点DSP来说,显然是不合理的。
为了节省存储空间,在编写DSP程序时,最好维护好一张变量表。
每进入一个DSP子模块时,不要急于分配新的局部变量,应优先使用已分配但不用的变量。
只有在不够时才分配新的局部变量。
循环嵌套的处理:
语音识别算法的实现,有许多是在循环中实现的。
对于循环的处理,需要注意以下几个问题:
①ADSP2100系列DSP芯片中,循环嵌套最多不能超过4重,否则就会发生堆栈溢出,导致程序不能正确执行。
但在语音识别的DSP程序中,包括中断在内的嵌套程序往往超过4重。
这时不能使用DSP提供的do…until…指令,只能自己设计出一些循环变量,自己维护这些变量。
由于这时没有使用DSP的循环堆栈,所以也不会导致堆栈溢出。
另外,如果采用jump指令从循环指令中跳出,则必须维护好PC,LOOP和CNTR三个堆栈的指针。
②尽量减少循环体内的指令数。
在多重循环的内部,减少指令数有利于降低程序的执行次数。
这样有利于减少程序的执行时间、提高操作的实时性。
3.3.2采用模块化的程序设计方法
在语音识别算法的实现中,为了便于程序的设计和调试,采用了模块化的程序设计方法。
以语音识别的基本过程为依据进行模块划分,每个模块再划分为若干个子模块,然后以模块为单元进行编程和调试。
在编写程序之前,首先用高级语言对每个模块进行算法仿真,在此基础上再进行汇编程序的编写。
在调试时,可以采用高级语言与汇编语言对比的调试方式,这样可以通过跟踪高级语言与汇编语言的中间状态,来验证汇编语言的正确性,并及时的发现和修改错误,缩短编程周期。
另外,在程序的编写过程中,应在关键的部分加上必要的注释与说明,以增强程序的可读性。
在总调时,需要在各模块中设置好相应的人口参数与出口参数,维护好堆栈指针与中间变量等。
利用C语言与汇编语言的混合编程,现在,大多数的DSP芯片都支持汇编语言与C或C++语言的混合编程,ADSP2181也不例外。
用C语言开发DSP程序具有缩短开发周期、降低程序复杂度的优点,但是,程序的执行效率却不高,会增加额外的机器周期,不利于程序的实时实现。
为此,在用C语言编写语音识别算法时,我们采用了定点化处理技术。
ADSP2181是16位定点处理器,定点化处理应注意以下几个问题:
①ADSP2181支持小数和整数两种运算方式,在计算时应选择小数方式,使计算结果的绝对值都小于1;
②用双字定点运算库代替C语言的浮点库,提高运算精度;
③注意在每次乘加运算之后进行饱和操作,防止结果的上溢和下溢;
④循环处理后的一组数据可能有不同的指数,要进行归一化处理,以便后续定点操作对指数和尾数部分分别处理。
第4章智能语音识别遥控系统技术
4.1语音识别技术
本主要论述与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。
语音识别是一门交叉学科。
近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。
人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 语音 识别 遥控 系统