YS-LDV7语音模块二次开发

1.YS-LDV7语音模块:

  • 工作电压:5V
  • 通信方式:串口通信
  • 单片机型号:STC11L08XE

2.源码修改:

(1)使用 Keil uVision4 进行修改,打开 code:

在这里插入图片描述
或者打开keil4 APP文件夹:
在这里插入图片描述
然后点击YS-V0.7.uvproj快速打开所有源码:
在这里插入图片描述

(2)main.c:(此处省略部分代码
#ifdef TEST
PrintCom("一级口令:小杰\r\n"); /*text.....*/
PrintCom("二级口令:1、代码测试\r\n"); /*text.....*/
PrintCom("	2、开发板验证\r\n"); /*text.....*/
PrintCom("	3、开灯\r\n"); /*text.....*/
PrintCom("	4、关灯\r\n"); /*text.....*/
PrintCom("  5、北京\r\n"); /*text.....*/
PrintCom("	6、上海\r\n"); /*text.....*/
PrintCom("	7、广州\r\n"); /*text.....*/
#endif

#define TEST		 //测试命令

TEST测试命令宏,添加TEST则运行其中代码,此处代码为向串口打印相应数据,不希望执行测试命令,可以把内容去掉

(3)LDChip.c:修改关键词和识别码(此处省略部分代码
uint8 LD_AsrAddFixed()
{

	#define DATE_A 50   /*数组二维数值*/				//关键词数量(可修改),建议不超过 50个
	#define DATE_B 70		/*数组一维数值*/			//关键词最长的长度(可修改),建议不长于 70
	uint8 code sRecog[DATE_A][DATE_B] = {
																				 "xiao jie",\		
																				 "kai fa ban yan zheng",\
																				 "dai ma ce shi",\
																				 "kai deng",\
																				 "guan deng",\
																				 "bei jing",\
																				 "shang hai",\
																				 "guang zhou"
																			};	/*添加关键词,用户修改*/
	uint8 code pCode[DATE_A] = {
															CODE_CMD,\
															CODE_KFBYZ,\
															CODE_DMCS,\
															CODE_KD,\
															CODE_GD,\
															CODE_BJ,\
															CODE_SH,\
															CODE_GZ
														 };	/*添加识别码,用户修改*/

添加内容为拼音输入方式,例如想添加“开灯”命令,则写入“kai deng”,每个汉字间的拼音用空格隔开;
所添加的识别码为预先定义好的宏定义常量值,同时必须和关键词一一对应,如上图所示,“da ma ce shi”命令对应的识别码为CODE_DMCS

(4)LDChip.h:根据关键词修改相应识别码(此处省略部分代码
//识别码客户修改处 
#define CODE_CMD  0x00   		//该命令码0x00用户不可进行修改。
#define CODE_DMCS	0x01		//代码测试
#define CODE_KFBYZ	0x02		//开发板验证
#define CODE_KD 0x04			//开灯
#define CODE_GD 0x05			//关灯
#define CODE_BJ 0x16			//关灯
#define CODE_SH 0x17			//上海
#define CODE_GZ	0x2f			//广州

此处即为识别码的添加和修改,可以根据自己的需要和喜好任意定义识别码和宏名,但必须和前面所使用的识别码配对,否则会提示未定义错误。识别码的参数范围为 01-FF 随意选择,没有具体意义,只要不存在重复的即可

(5)main.c:修改处理函数(此处省略部分代码
switch(dat)		   /*对结果执行相关操作,客户可删除Printcom 串口输出语句替换为其他需要控制的代码*/
			  {
				  case CODE_DMCS:			/*命令“测试”*/
						PrintCom("“代码测试”命令识别成功\r\n"); /*text.....*/
													 break;
					case CODE_KFBYZ:	 /*命令“全开”*/
						PrintCom("“开发板验证”命令识别成功\r\n"); /*text.....*/
													 break;
					case CODE_KD:		/*命令“复位”*/				
						PrintCom("“开灯”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_GD:		/*命令“复位”*/				
						PrintCom("“关灯”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_BJ:		/*命令“复位”*/				
						PrintCom("“北京”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_SH:		/*命令“复位”*/				
						PrintCom("“上海”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_GZ:		/*命令“复位”*/				
						PrintCom("“广州”命令识别成功\r\n"); /*text.....*/
													break;
							default:PrintCom("请重新识别发口令\r\n"); /*text.....*/break;
				}

用户可以根据自己的使用情况在相对应的识别码后添加识别成功后的操作。那么在设备到某句话后就会执行相应的动作,实际上此段程序是判断识别到那个识别码然后执行相应的动作,属单片机的程序应用处理部分

(6)修改完成后检查是否能够正常编译:

在这里插入图片描述

3.模块调试:

(1)模块程序下载:

本模块的程序下载实际为 STC 单片机的程序下载方法,首先我们需要安装 USB 转 TTL 驱动(如已安装无需再安装),然后接好 USB 转 TTL,打开 STC-ISP:
在这里插入图片描述
①选择单片机型号
②选择相应串口号
③打开程序文件 > 打开源程序 > 打开obj文件夹 > 选择后缀.hex文件
④注意勾选“复位脚用作I/O口”,
⑤设置完毕后点击“下载/编程”,并冷启动
⑥冷启动完后,底部进度条会显示进度

(2)调试:

在这里插入图片描述
①打开串口助手
②接收缓冲区选择“文本模式
③选择相应串口号
④波特率选择 9600
⑤打开串口

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~莘莘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值