基于LD3320的语音识别系统在家庭电路中的模拟应用

时间:2020-09-11 13:56:49 机电毕业论文 我要投稿

基于LD3320的语音识别系统在家庭电路中的模拟应用

  摘 要:本研究旨在为行动不便的残障人士或者老年人的家居生活提供便利和帮助,使他们能够通过语音识别系统对家用电器、照明系统、门窗开关等实现智能控制。通过查找资料,对比参数、价格、识别率等方面的信息,最终采用了基于LD3320的语音识别系统进行家庭电路控制模拟应用。系统由四部分构成,即:YS-LD语音识别模块、STM32单片机控制单元、LED显示单元、继电器输出单元。LD3320语音识别芯片感应语音――通过STM32单片机运算分析――发出信号――控制继电器――电器工作。经过测试,本套系统的语音辨识率高达90%,造价仅155元,并且无需用户自行建立语音模型及开发语音识别算法,降低了应用开发的技术门槛,有利于推广应用。

基于LD3320的语音识别系统在家庭电路中的模拟应用

  关键词:语音控制;单片机;语音识别芯片;

  一、课题背景

  学校常会组织我们到贵阳市盲聋哑学校送爱心,与残障孩子亲密互动,今年也不例外。那些残章的孩子来到这个世界,只能用他们仅存的方式去感知世界万物,在他们的世界里只有一种颜色,那就是黑色。我不禁想,在学校还有老师的照拂,可他们总有一日要长大,要开启自己的人生旅程。要是我能为他们做哪怕一点点事,就算只是为他们的家庭生活提供一些帮助也是好的。我想,如果能利用我在机器人社中学到的传感器、电子电路、单片机等专业知识,对家庭电路进行智能化改造,让家庭的电路“聪明”起来,使他们能够听得懂主人的指令而进行相应的操作,那就可以对有残障的人和对一些不良于行的病人或老人的家庭生活都能提供很大的便利。于是,有了我的这个设计――基于LD3320的语音识别系统在家庭电路中的模拟应用。

  二、模型设计

  (一)模块功能

  (二)模型组成

  (三)主要电子元件工作原理与功能说明

  1、LD3320语音识别芯片

  LD3320语音识别芯片采用的是ASR(Auto Speech Recognitio)技术,是YS-LD语音识别模块的核心。它是对大量的语音数据经语言学家语音模型分析,建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,得到在统计概率最优化意义上的各个基元语音特征,最后才由资深工程师将算法以及语音模型转换成硬件芯片并应用在嵌入式系统中。

  LD3320有两种使用模式,即“触发识别模式”和“循环识别模式”。可以通过编程,设置两种不同的使用模式。

  触发识别模式:系统的主控MCU在接收到外界一个触发后,启动LD3320芯片的一个定时识别过程,在这个定时过程中说出要识别的语音关键词语。这个过程结束后,需要再次触发才能再次启动一个识别过程。

  循环识别模式:系统的主控MCU反复启动识别过程。如果没有人说话就没有识别结果,则每次识别过程的定时到时后再启动一个识别过程;如果有识别结果,则根据识别作相应处理后再启动一个识别过程。

  根据本案模型的设计特点,采用语音触发识别模式。LD3320芯片最多支持50个识别条目,每个识别条目是标准普通话的汉语拼音(小写),每2个字(汉语拼音)之间用1个空格间隔。例如表1,只需要把识别的关键词语以汉语拼音字符串的形式传送进芯片,该芯片已封装了基于标准普通话的语音模型数据和语音识别算法,无需进行任何语音训练即可投入开发应用。

  2、STM32单片机控制单元

  本案模拟系统主控单元采用意法半导体ARM-Cortex架构的STM32F1系列超低功耗单片机作为控制核心。

  该单元完成几大功能:

  向LD3320模块提供时钟振荡信号,以驱动片上DSP(数字信号处理器 )工作;

  通过SPI(串行外设接口)串行通信方式向LD3320模块写入预定义的控制命令拼音串,并读取语音模块返回的识别结果编码;

  根据识别结果驱动负载电路(LED单元(发光二极管)、继电器单元)的动作。

  当LD3320模块完成一次识别过程后,通过中断请求方式通知主控单元处理,主控单元获知中断请求后会暂时中止当前的任务执行,转而跳转到中断服务例程(ISR Route),在该例程中通过SPI总线从LD3320模块读取识别编码,根据识别编码的.不同执行对应控制功能。通过点亮、熄灭指令对应发光二极管或驱动继电器接通主回路得到运行结果。

  3、LED显示单元

  本案模拟系统用六个共阳极发光二极管(LED)来模拟家庭中厨房、工作间、卧室、走廊、卫生间、阳台的灯泡开关状况,工作时主控单片机则根据语音命令,采用输出低电平方式进行驱动点亮。

  4、继电器输出单元

  继电器输出单元可接收主控单片机的高低电平控制信号以接通或断开主回路。主回路根据实际需求可以用于大电压,交、直流供电的负载驱动。本案模拟系统用继电器单元实现家庭电扇的通断控制。

  (四)系统软件开发环境

  本案模拟系统的软件开发只针对STM32F103主控单元进行,软件代码完成以下功能:

  LD3320底层驱动(对其内部寄存器的读写、时序的控制);

  STM32F103硬件单元和用户变量的初始化;

  用户语音命令拼音串的写入;

  中断服务ISR(完成负载电路的驱动控制)。

  软件开发基于ARM公司的Keil开发环境,完成从代码编辑到编译、调试、烧写一系列过程。

  (五)设备成本

  三、设备实测

  (一)控制命令

  LD3320语音识别芯片中最多可以写入50条语音控制指令,可以根据用户需要定制个性化的语音控制功能。本案设备的设计初衷是为了探索LD3320语音识别芯片在家庭电路中的模拟应用,故只写入了比较基本的18条指令。

  (二)设备测试

  在写入程序,完成硬件连线并加电复位后,系统即进入运行状态。向系统说出控制命令(尽可能用普通话, 不过实测时对贵阳本地方言还是有较高识别率),比如说“厨房打开”、“走廊关闭”、“电扇启动”、“运行流水灯”等命令后,系统会根据识别结果执行对应动作,点亮/熄灭LED或者通/断电扇运行。

  为了更好的检测语音识别效果,实验中选择多个不同音色的人在家庭(比较安静)环境下分别进行测试,每个词语测试50遍。部分非特定人的语音命令测试的正确识别数据比例见表4:由上表可知,在家庭(比较安静)环境下,对于语音命令的平均识别率可达到90%以上。