历史上的今天
今天是:2025年01月23日(星期四)
2020年01月23日 | 基于LD3320语音识别技术的小灯控制系统程序
2020-01-23 来源:51hei
资料描述:
1.本设计完成一个语音识别控制灯系统的设计,基于LD3320芯片的语音识别系统。最基本的要求做到语音说出一些简单的命令,系统会识别并且做出相应地动作或运作,以此来控制灯的亮和灭。
2.里面有LD3320的全部资料,里面有很多例程
资料包含:原理图+程序,相关资料等等

单片机源程序如下:
/************************************************************************************
** 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
}
/************************************************************************
功能描述: 单片机初始化
下一篇:单片机电梯控制器代码
史海拾趣
|
1、一般方法 a、利用Matlab的函数awgn 例如正弦波加入高斯白噪声,SNR=10dB。程序:t=[1:0.1:pi];s=sin(t);r=awgn(s,10,\'measured\'); b、利用Matlab的函 ...… 查看全部问答> |
|
老师周三带我们学习LM3S8962 评估套件的使用,看老师用套件演示的蒸汽机车图片,黑白相间的图片从小屏显示出来,想象不到效果会这么酷,看的我们十个人新潮澎湃。之后又演示了盘上带的东西,还做了一些简单的修改,第二天就去外地上课了。今天老板 ...… 查看全部问答> |
|
公司开发的一个舞台控制系统,原理很简单,用STM32控制32路摇杆,通过控制继电器来实现, 今天调试的时候,出现一个问题,当板子上按键按下,给控制器供电的的1117—3.3的输出电压会有变化,一直没找到原因。 说明一下:继电器和电路板是分开了的 ...… 查看全部问答> |




