基于LD3320语音识别技术的小灯控制系统程序

2020-01-23来源: 51hei关键字:LD3320  语音识别技术  小灯控制系统

资料描述:

1.本设计完成一个语音识别控制灯系统的设计,基于LD3320芯片的语音识别系统。最基本的要求做到语音说出一些简单的命令,系统会识别并且做出相应地动作或运作,以此来控制灯的亮和灭。

2.里面有LD3320的全部资料,里面有很多例程

资料包含:原理图+程序,相关资料等等

51hei.png

单片机源程序如下:

/************************************************************************************

**        CPU: AT89S52

**        晶振:22.1184MHZ

**        波特率:9600 bit/S

**        语音识别模块:LD3320         

**  版本:C106_yysb_V1.0

/************************************************************************************/

#include "config.h"


/************************************************************************************/

//        nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器

//        LD_ASR_NONE:                表示没有在作ASR识别

//        LD_ASR_RUNING:                表示LD3320正在作ASR识别中

//        LD_ASR_FOUNDOK:                表示一次识别流程结束后,有一个识别结果

//        LD_ASR_FOUNDZERO:        表示一次识别流程结束后,没有识别结果

//        LD_ASR_ERROR:                表示一次识别流程中LD3320芯片内部出现不正确的状态

/***********************************************************************************/

uint8 idata nAsrStatus=0;        

extern void   _nop_     (void); 

void MCU_init(); 

uint8 RunASR();

void ProcessInt0(); //识别处理函数

void  delay(unsigned long uldata);

/************************************************************************

功能描述: 主函数程序入口

入口参数:        none

返 回 值:         none

其他说明:        none

**************************************************************************/

void  main()

{

        uint8 idata nAsrRes;

        uint8 i=0;


        MCU_init();

        LD_Reset();

        UartIni(); /*串口初始化*/

        nAsrStatus = LD_ASR_NONE;                //        初始状态:没有在作ASR

        PrintCom("串口运行中....n"); /*text.....*/

        PrintCom("口令:1、开机n"); /*text.....*/

        PrintCom("        2、开灯n"); /*text.....*/

        PrintCom("        3、关灯n"); /*text.....*/


        while(1)

        {

                switch(nAsrStatus)

                {

                        case LD_ASR_RUNING:

                        case LD_ASR_ERROR:                

                                break;

                        case LD_ASR_NONE:

                        {

                                nAsrStatus=LD_ASR_RUNING;

                                if (RunASR()==0)        /*        启动一次ASR识别流程:ASR初始化,ASR添加关键词语,启动ASR运算*/

                                {

                                        nAsrStatus = LD_ASR_ERROR;

                                }

                                break;

                        }


                        case LD_ASR_FOUNDOK: /*        一次ASR识别流程结束,去取ASR识别结果*/

                        {

                                

                                nAsrRes = LD_GetResult();                /*获取结果*/

                                PrintCom("n识别码:"); /*text.....*/

        UARTSendByte(nAsrRes+0x30); /*text.....*/                                

                                 switch(nAsrRes)                   /*对结果执行相关操作,客户修改*/

                                  {

                                          case CODE_DMCS:                        /*命令“测试”*/

                                                        PrintCom("“开机”命令识别成功n"); /*text.....*/

                                                                                                                 break;

                                                case CODE_KFBYZ:         /*命令“全开”*/

                                                        PrintCom("“开灯”命令识别成功n"); /*text.....*/

                                                                                                                 break;

                                                case CODE_JCWB:                /*命令“复位”*/

                                

                                                        PrintCom("“开灯”命令识别成功n"); /*text.....*/

                                                                                                                break;

                                                default:break;

                                        }                                


                                nAsrStatus = LD_ASR_NONE;

                                break;

                        }

[1] [2]
关键字:LD3320  语音识别技术  小灯控制系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic486541.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机驱动带编码器直流电机 源程序
下一篇:单片机电梯控制器代码

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于51单片机的LD3320的例程(口令模式+IO口控制程序)
;/************************************************************************************///        nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器//        LD_ASR_NONE:                表示没有在作ASR识别//        LD_ASR_RUNING:         
发表于 2020-01-29
基于51单片机的LD3320的例程(口令模式+IO口控制程序)
【嵌入式】arm-linux-gcc/ld/objcopy/objdump参数概述
arm-linux-gcc  -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件   -Wall 指定产生全部的警告信息   -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高   -c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc 变成 .o 的目标文件   -S 只激活预处理和编译,就是指把文件编译成为汇编代码 arm-linux-ld  直接指定代码段,数据段,BSS段的起始地址-Ttest startaddr-Tdata startaddr-Tbss
发表于 2020-01-21
arm-linux-ld 命令详解
本文转自《S3C2410完全开发手册》在开始后续实验之前,我们得了解一下arm-linux-ld连接命令的使用。在上述实验中,我们一直使用类似如下的命令进行连接:arm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_tmp.o我们看看它是什么意思:-o选项设置输出文件的名字为led_on_c_tmp.o;“--Ttext 0x00000000”设置代码段的起始地址为0x00000000;这条指令的作用就是将crt0.o和led_on_c.o连接成led_on_c_mp.o可执行文件,此可执行文件的代码段起始地址为0x00000000(即从这里开始执行)。我们感兴趣
发表于 2020-01-12
LD3320嵌入式语音识别系统应用电路设计
  语音交互系统是比较人性化的人机操作界面,它需要语音识别系统的支持。LD3320是一款语音识别芯片。本文介绍了LD3320芯片的工作原理及应用,给出了LD3320与微处理器的硬件接口电路及软件程序。随着高档MCU 的不断出现,以MCU 为核心的嵌入式语音交互系统会有非常好的应用前景。  特定人语音识别(ASR,Auto Speech RecognitiON)技术是基于“关键词语列表”的识别技术,它是对大量的语音数据(相当于对数千人采集的数万小时的有效声音数据)经语言学家语音模型分析,建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,得到在统计概率最优化意义上的各个基元语音特征,最后
发表于 2014-12-27
LD3320嵌入式语音识别系统应用电路设计
LD3320的嵌入式语音识别系统的应用
是人声音的开始,哪个时间点是人声音的结束。判断的依据是,在背景声音的基础上有了语音发音,则视为声音的开始。而后,检测到一段持续时间的背景音(比如600 ms),则视为人声说话结束。通过VAD判断出人声说话的区域后,语音识别芯片会把这期间的声音数据进行识别处理,计算出识别结果。除了以上两种情况外,语音识别算法无法“主动”地判断出是否识别出了一个结果。这是因为,在计算过程中的任何时刻,语音识别器都会对已送人识别芯片的声音数据进行分析,并根据匹配程度为识别列表中的关键词语进行打分,最匹配的打分最高。但是,由于识别算法不知道用户后面是否还继续说话,所以无法主动地判断已经识别出的结果。3 语音识别芯片LD3320的工作原理3.1 语音识别系统
发表于 2014-11-13
LD3320的嵌入式语音识别系统的应用
车内语音识别技术,让汽车活起来
随着CarPlay、Android Auto以及Echo Auto等平台渗透乘用车市场,车内语音识别技术预期将成为主流;但仍有一个答案未知的问题是:市场上有任何语音启动技术已经准备好随机应对车内的关键任务了吗? 在今年1月举行的国际消费性电子展(CES)上,当媒体看到高通(Qualcomm)展示了在其车内Smart Audio平台上的Amazon Alexa语音识别功能,就对未来发展有了一些想象。高通的展示预示,车内虚拟助理将会使得语音成为驾驶人与车辆之间的自然沟通接口。 高通的展示中最令人印象深刻的一幕,是Alexa在高通的某个高层说话时打断他,说:“不对!这不是真的。”欧喔…在展示中发生这种小“突槌”事件
发表于 2019-11-21
车内语音识别技术,让汽车活起来
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved