标题:
LD3320嵌入式语音识别系统应用(1)
[打印本页]
作者:
我是MT
时间:
2015-9-25 09:22
标题:
LD3320嵌入式语音识别系统应用(1)
1 概述
语音交互系统是比较人性化的人机操作界面,它需要语音识别系统的支持。LD3320就是这样一款语音识别芯片。介绍了该芯片的工作原理及应用,给出了LD3320与微处理器的硬件接口电路及软件程序。随着高档MCU的不断出现,以MCU为核心的
嵌入式
语音交互系统会有非常好的应用前景。
2 特定人语音识别技术及原理
特定人语音识别(ASR,Auto Speech RecognitiON)技术是基于"关键词语列表"的识别技术,它是对大量的语音数据(相当于对数千人采集的数万小时的有效声音数据)经语言学家语音模型分析,建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,得到在统计概率最优化意义上的各个基元语音特征,最后才由资深工程师将算法以及语音模型转换成硬件芯片并应用在
嵌入式
系统中。
ASR技术每次识别的过程就是把用户说出的语音内容,通过频谱转换为语音特征,再将这个转换后的语音特征和"关键词语列表"中的条目一一进行匹配,最优匹配的一条即作为识别结果。比如ASR技术在语音控制的手机应用中,这个"关键词语列表"的内容就是电话本中的人名、手机的菜单命令或手机存储卡中的歌曲名字。不论这个列表的条目内容是什么,只需要用户设置相关的寄存器,就可以把相应的待识别条目内容以字符形式传递给识别引擎。
由此可见,语音识别芯片完成的工作就是:把MIC(麦克风)输入的声音进行频谱分析后提取语音特征,再和关键词语列表中的关键词语进行对比匹配,最后找出得分最高的关键词语作为识别结果输出。
通常基于ASR技术的语音识别芯片能在两种情况下给出识别结果:
①外部送入预定时间的语音数据(比如5 s的语音数据),芯片对这些语音数据运算分析后,给出识别结果。
②外部送入语音数据流,语音识别芯片通过端点检测(VAD,Voice Activity Detection)技术检测出用户停止说话,把用户开始说话到停止说话之间的语音数据进行运算分析后,给出识别结果。
对于第一种情况,可以理解为设定了一个定时录音(如5 s的语音数据),芯片在5 s后会停止把声音送入识别引擎,并且根据已送入引擎的语音数据计算出识别结果。
对于第二种情况,需要了解VAD的工作原理:VAD技术是在一段语音数据流中,判断出哪个时间点是人声音的开始,哪个时间点是人声音的结束。判断的依据是,在背景声音的基础上有了语音发音,则视为声音的开始。而后,检测到一段持续时间的背景音(比如600 ms),则视为人声说话结束。通过VAD判断出人声说话的区域后,语音识别芯片会把这期间的声音数据进行识别处理,计算出识别结果。
除了以上两种情况外,语音识别算法无法"主动"地判断出是否识别出了一个结果。这是因为,在计算过程中的任何时刻,语音识别器都会对已送人识别芯片的声音数据进行分析,并根据匹配程度为识别列表中的关键词语进行打分,最匹配的打分最高。但是,由于识别算法不知道用户后面是否还继续说话,所以无法主动地判断已经识别出的结果。
3 语音识别芯片LD3320的工作原理
3.1 语音识别系统原理结构
LD3320语音识别芯片采用的就是ASR技术,图1就是由LD3320和单片机(或
嵌入式
系统)组成的语音识别系统原理框图。图中给出了LD3320的内部原理结构,本文中选用的MCU是STC10L08XE单片机。
图1 语音识别系统原理框图
语音识别芯片LD3320是ICRoute公司的产品,它采用ASR技术,提供了一种脱离按键、键盘、鼠标、触摸屏等GUI操作方式且基于语音的用户界面VUI(Voice User Interface),使得用户对该系统的操作更简单、快速和自然。
用户只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。比如,用户在51等主控MCU的编程中,简单地通过设置芯片的寄存器,把诸如"你好"这样的识别关键词语的内容动态地传入芯片中,芯片就可以识别所设定的关键词语了。每个关键词语可以是单字、词组、短句或者任何的中文发音的组合。基于LD3320的语音识别系统可以随着使用流程,在运行时动态地更改关键词语列表的内容,这样可以用一个系统支持多种不同的场景,同时也不需要用户作任何的录音训练。
3.2 LD3320的用户使用模式
LD3320有两种用户使用模式,即"触发识别模式"和"循环识别模式".用户可以通过编程,设置两种不同的用户使用模式。
触发识别模式:系统的主控MCU在接收到外界一个触发后(比如用户按动某个按键),启动LD3320芯片的一个定时识别过程(比如5 s),要求用户在这个定时过程中说出要识别的语音关键词语。这个过程结束后,需要用户再次触发才能再次启动一个识别过程。
循环识别模式:系统的主控MCU反复启动识别过程。如果没有人说话就没有识别结果,则每次识别过程的定时到时后再启动一个识别过程;如果有识别结果,则根据识别作相应处理后(比如播放某个声音作为回答)再启动一个识别过程。
4 语音识别系统软硬件设计
4.1 硬件系统设计
由图l可知,由LD3320组成的语音识别系统硬件有单片机(或
嵌入式
系统)及LD33202.图2和图3分别是由单片机STC10L08XE构成的主控芯片和由LD3320A构成的语音识别主系统。
图2 STC10L08XE构成的主控芯片
图3 LD3320A构成的语音识别主系统
4.2 软件系统设计
语音识别的操作顺序是:先进行语音识别的初始化,然后写入识别列表,系统即开始进行语音识别,并准备好中断响应函数,打开中断允许位。这里如果不用中断方式,也可以通过查询方式工作。在"开始识别"后,读取寄存器B2H的值,如果为21H就表示有识别结果产生。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0