历史上的今天
返回首页

历史上的今天

今天是:2025年01月23日(星期四)

正在发生

2020年01月23日 | 基于LD3320语音识别技术的小灯控制系统程序

2020-01-23 来源:51hei

资料描述:

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

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

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

51hei.png?imageView2/2/w/550

单片机源程序如下:

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

**        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;

                        }

                        case LD_ASR_FOUNDZERO:

                        default:

                        {

                                nAsrStatus = LD_ASR_NONE;

                                break;

                        }

                }// switch         

        }// while


}

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

功能描述:         单片机初始化

推荐阅读

史海拾趣

HDP_Power公司的发展小趣事

关于电蚊拍的基本电路,网友可能提出的问题及回答如下:

问题一:电蚊拍的基本电路由哪些部分组成?

回答:电蚊拍的基本电路主要由三个核心部分组成:阻容降压电路(或称为高频振荡电路)、倍压整流电路以及高压电击网。

  1. 阻容降压电路(高频振荡电路):这部分电路主要负责将直流电源(如电池提供的3V直流电)转换为高频交流电,通常频率在18kHz左右。这一转换过程由三极管和变压器等元件共同完成,通过变压器的升压作用,将电压提升到数百伏。

  2. 倍压整流电路:高频交流电经过升压后,进入倍压整流电路。这个电路通过多个二极管和电容的组合,将电压进一步升高到足以电击蚊虫的水平,通常可达到1500V左右。常见的倍压整流电路有三倍压、四倍压等多种连接方式。

  3. 高压电击网:高压电击网是电蚊拍的输出部分,由细密的金属网格构成。当蚊虫接触到金属网格时,会形成电路通路,导致蚊虫被高压电击死。

问题二:为什么电蚊拍使用一段时间后,电击效果会变差?

回答:电蚊拍使用一段时间后电击效果变差的原因可能包括以下几点:

  1. 电容老化:电蚊拍中的倍压电容(如CBB电容)在频繁充放电过程中会逐渐老化,其容量会逐渐下降,导致储能能力降低,从而影响电击效果。

  2. 元件损坏:电蚊拍中的二极管、三极管等元件在长时间使用后可能出现损坏或性能下降,导致电路无法正常工作或电压无法升到足够高的水平。

  3. 电池电量不足:电池是电蚊拍的能量来源,如果电池电量不足,将直接影响电蚊拍的电击效果。

  4. 金属网格污染或变形:金属网格在使用过程中可能会受到污染或变形,导致接触不良或短路,从而影响电击效果。

问题三:如何判断电蚊拍是否需要维修?

回答:可以通过以下几种方法来判断电蚊拍是否需要维修:

  1. 观察指示灯:如果电蚊拍的指示灯不亮或亮度明显降低,可能是电池电量不足或电路存在故障。

  2. 检查电击效果:如果电蚊拍在使用时电击效果变差或无法电击蚊虫,可能是电路中的元件损坏或老化。

  3. 测量电压:使用万用表等工具测量电蚊拍输出端的电压,如果电压明显低于正常值(如1500V左右),则说明电路存在问题。

  4. 检查金属网格:观察金属网格是否干净、平整、无变形或短路现象。

问题四:如何维修电蚊拍?

回答:维修电蚊拍需要一定的电子知识和技能,以下是一些基本的维修步骤:

  1. 检查电池:首先检查电池是否电量充足且接触良好。如果电池电量不足,应及时更换新电池。

  2. 清洁金属网格:使用软布或棉签等工具清洁金属网格上的污垢和灰尘。

  3. 检查并更换元件:如果确定是电路中的元件损坏导致的问题,应使用万用表等工具检测并更换损坏的元件。常见的损坏元件包括二极管、三极管、电容等。

  4. 调整电路:在更换元件后,可能需要调整电路中的某些参数(如电阻值、电容容量等)以确保电路能够正常工作。

  5. 测试电击效果:在维修完成后,应使用万用表等工具测试电蚊拍的电击效果是否恢复正常。

请注意,由于电蚊拍内部涉及高压电路,因此在维修过程中应确保安全操作,避免触电等危险情况的发生。如果不具备相关知识和技能,建议将电蚊拍送至专业维修机构进行维修。

FETek Technology(东沅)公司的发展小趣事

在快速发展的过程中,东沅始终坚持以客户为中心的经营理念。他们深入了解客户的需求和反馈,不断优化产品和服务。同时,东沅还注重持续创新,不断推出具有领先技术水平和市场竞争力的新产品。这些努力使得东沅在激烈的市场竞争中保持领先地位,赢得了客户的信任和支持。

请注意,以上故事仅为虚构示例,旨在展示FETek Technology(东沅)公司可能的发展历程和里程碑。实际的发展情况可能有所不同,具体细节请以公司官方发布的信息为准。

联捷(Elinker)公司的发展小趣事

近年来,随着人工智能和物联网技术的快速发展,电子行业迎来了转型升级的机遇。联捷(Elinker)紧跟时代潮流,积极推进智能制造和数字化转型。公司引进了先进的自动化生产线和智能化设备,提高了生产效率和产品质量。同时,公司还加大了对人工智能和物联网技术的研发力度,推出了一系列具有创新性的智能电子产品。

创都(CAX)公司的发展小趣事

在电子行业的浪潮中,创都(CAX)公司凭借其卓越的技术创新能力,逐渐崭露头角。公司创始人李先生是一位热衷于新技术的电子工程师,他带领着一支由业内顶尖人才组成的研发团队,不断挑战技术极限。在一次偶然的机会中,他们成功研发出了一款具有革命性意义的高效能芯片,这款芯片不仅性能卓越,而且成本大幅降低,迅速在市场中获得了广泛认可。随着这款芯片的成功推出,创都公司的知名度迅速提升,订单量激增,公司也借此机会逐步扩大了生产规模和市场占有率。

Hosiden Corporation公司的发展小趣事

作为汽车电子领域的佼佼者,Hosiden在汽车市场的深耕与布局尤为引人注目。公司针对汽车行业的特殊需求,开发了一系列高性能、高可靠性的电子连接器和电缆产品。这些产品不仅满足了汽车制造商对产品质量和性能的高标准要求,还通过提升数据传输速度和降低电磁干扰等方式,为汽车行业的发展提供了有力支持。同时,Hosiden还积极参与汽车行业的标准制定和技术交流活动,为行业的发展贡献了自己的智慧和力量。

FCI [First Components International]公司的发展小趣事

作为汽车电子领域的佼佼者,Hosiden在汽车市场的深耕与布局尤为引人注目。公司针对汽车行业的特殊需求,开发了一系列高性能、高可靠性的电子连接器和电缆产品。这些产品不仅满足了汽车制造商对产品质量和性能的高标准要求,还通过提升数据传输速度和降低电磁干扰等方式,为汽车行业的发展提供了有力支持。同时,Hosiden还积极参与汽车行业的标准制定和技术交流活动,为行业的发展贡献了自己的智慧和力量。

问答坊 | AI 解惑

multisim2001教程

本帖最后由 dontium 于 2015-1-23 13:25 编辑 一款不错的仿真软件,大家可以试试,主要运用于模电的仿真。 …

查看全部问答>

Xilinx Design contest

Xilinx Design contest关于Xilinx首度创新设计大赛。    主要内容:基于FPGA的JPEG硬件解码器的设计。…

查看全部问答>

仿真中加入噪声的方法(转)

1、一般方法        a、利用Matlab的函数awgn       例如正弦波加入高斯白噪声,SNR=10dB。程序:t=[1:0.1:pi];s=sin(t);r=awgn(s,10,\'measured\');        b、利用Matlab的函 ...…

查看全部问答>

关于IS61lv25616

read时序 write时序 怎么看懂这个时序…

查看全部问答>

源程序编译问题

求教:本人刚刚接触Win CE,以前也没有什么开发经验。现在自己摸索着想把6410原来BSP包里的某个驱动源程序重新编译,生成一个名字不一样但功能一样的新驱动程序,然后通过万用表看接口的高低电平来对照着源程序学习。现在源程序(复制的)、def文件 ...…

查看全部问答>

LM3S8962 评估套件使用报告

老师周三带我们学习LM3S8962 评估套件的使用,看老师用套件演示的蒸汽机车图片,黑白相间的图片从小屏显示出来,想象不到效果会这么酷,看的我们十个人新潮澎湃。之后又演示了盘上带的东西,还做了一些简单的修改,第二天就去外地上课了。今天老板 ...…

查看全部问答>

程序下载问题

                                 今天使用J-LINK下不进去程序了,刚开始还以为板子坏了,后来换了一个仿真器就能成功下载,用我的下载时出现“conno ...…

查看全部问答>

今天上班留下的问题?依旧没解决 大家帮个忙看看

公司开发的一个舞台控制系统,原理很简单,用STM32控制32路摇杆,通过控制继电器来实现, 今天调试的时候,出现一个问题,当板子上按键按下,给控制器供电的的1117—3.3的输出电压会有变化,一直没找到原因。 说明一下:继电器和电路板是分开了的 ...…

查看全部问答>