1、LD3320介绍

LD3320 是一颗基于非特定人语音识别(SI-ASR:Speaker-Independent Automatic SpeechRecognition)技术的语音识别/声控芯片。提供了真正的单芯片语音识别解决方案。LD3320 芯片上集成了高精度的 A/D 和 D/A 接口,不再需要外接辅助的 Flash 和RAM,即可以实现语音识别/声控/人机对话功能。并且,识别的关键词语列表是可以动态编辑的。基于 LD3320,可以在任何的电子产品中,甚至包括最简单的 51 作为主控芯片的系统中,轻松实现语音识别/声控/人机对话功能。为所有的电子产品增加 VUI (Voice User Interface)语音用户操作界面。
主要特色功能:
1. 非特定人语音识别技术: 不需要用户进行录音训练可动态编辑的识别关键词语列表: 只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。比如,用户在 51 等 MCU 的编程中,简单地通过设置芯片的寄存器,把诸如“你好”这样的识别关键词的内容动态地传入芯片中,芯片就可以识别这样设定的关键词语了。
2. 真正单芯片解决方案: 不需要任何外接的辅助 Flash 和 RAM,真正降低系统成本。内置高精度 A/D 和 D/A 通道: 不需要外接 AD 芯片,只需要把麦克风接在芯片的 AD 引脚上;可以播放声音文件,并提供 550mW 的内置放大器。高准确度和实用的语音识别效果。
3. 支持用户自由编辑 50 条关键词语条: 在同一时刻,最多在 50 条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新这 50 条关键词语的内容。

以上纯粹废话,能看到这里的说明都是有耐心的人哈,下边直接上干货,有手就行,轻松拿捏LD3320这个模块,喜欢的话点赞收藏加关注哈

2、LD3320使用

硬件上没什么好说的,LD3320可以直接用USB转TTL模块,也就是所谓的CH340下载,接线也很简单,这是我用的LD3320哈,可能不同商家的不太一样,但是原理肯定是一样的,用的单片机肯定也是STC11L..X的,所以不用担心哈,下载的时候只需要将上边的5V接上CH340的5V或者VCC,GND接GND,TX接RX,RX接TX,这样就能进行下载了,下载我用的是宏晶的STC-ISP,这就是硬件的全部了。

当然,有的朋友喜欢用LD3320上的IO口来控制东西,这个也是可以的哈,但是我是不太喜欢的,因为LD3320毕竟功能比较局限,我还是喜欢和STM32通信后用32来控制,比如PWM这种功能。

下边就来讲讲代码部分。

我的LD3320是在某宝上买的,店家都会给资料的,这里发不出来,想要链接的朋友可以私信我哈,我看到都会回的,首先我讲讲我的代码框架

3、代码框架

由LD3320进行语音识别,然后进行串口通信,将数据发送给STM32,STM进行数据接收判断,然后再进行对应操作,如输出PWM或者高低电平或者OLED显示什么的。

4、LD3320代码

LD3320部分可操作的代码不多,很多都是不用看的,以我这份为例,可操作的地方只有几处。

第一处

位于LDChip.c里,用来做识别的代码,LD3320采用的是拼音识别,也就是你希望它识别什么,你就输入什么。

第一个就是数据的数量和宽度,上边的13是数量,30是宽度,宽度可以超出拼音的长度一些,但是不能超太多,不然会报错,下边就是对应的指令了,记住除了最后一个指令,其他指令后边都有,\,下边的那些CODE_...都是自己起的名字,有多少个指令就起多少个,除了第一个CODE_CMD不能改,其他的都随便改随便加。

第二处

第二处就是这个地方,在LDChip.c对应的LDChip.h里,这个和前边是对应的,只是对CODE_..进行一个声明,但是这个是必需的,值的话就随便,只要不重复就行,最后还是CODE_CMD不能改。下边是灵敏度调节,图上都讲有哈。

第三处

第三处就是在主函数main.c里,就是通信函数处理,有个用户处理函数,其他的都不用改,只需要在switch——case里多加几个判断条件哈,然后通信发送函数也是有的,改改发送数据就好了。

这些就是LD3320的所有部分哈,简单明了。

5、STM32代码

32部分也不难,学过32的都知道串口通信,也就是配置个串口,接收LD3320传过来的数据,再进行if判断,然后进行处理,串口配置我这也有,当然我这个是C8T6的,用其他的型号记得看看原理图对不对应得上哈,我记得ZET6和RTC6应该也是可以对应的。

void UART1_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    
    USART_InitTypeDef USART_InitStructure;
    USART_InitStructure.USART_BaudRate = 9600;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_Init(USART1, &USART_InitStructure);
    
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    
    NVIC_InitTypeDef NVIC_InitStructure;
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_Init(&NVIC_InitStructure);
    
    USART_Cmd(USART1, ENABLE);
}

这就是串口配置,我用的串口1哈

void USART1_IRQHandler(void)
{
    
    if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
    {
      uint8_t rx_data = USART_ReceiveData(USART1);
        if(rx_data == 'a') //LED1 0
        {
           a=1;                   
        }
        if(rx_data == 'b') //LED1 1
        {
          a=2;
        }
        if(rx_data == 'c') //LED1 2
        {
          a=3;
        }
        USART_ClearITPendingBit(USART1, USART_IT_RXNE);
        
    }
}
这是中断服务函数,当然这里只有一些判断,然后做完判断后会发现哈,接收到不同的数据,a的值就不一样,这样就可以用来做判断哈,在主函数里执行就好了,如图

分享就到这里哈,如果有兴趣,或者需要资料,想学习交流的话,可以直接私信我,记得点赞收藏加关注哈。

STM32F103C8T6+LD3320语音识别模块智能灯控相关推荐

  1. STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板

    STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板 STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板 测试单片 ...

  2. 蓝牙模块智能灯控应用方案

    当今是信息高速发展的时代,经济.文化的流行与传播都离不开信息.信息的传递直接影响着人们生活的方方面面,信息的传递方式又各有不同,如有线传输.无线传输等:而无线传输还可按协议不同分为:蓝牙.WIFI.z ...

  3. 单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app)

    单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app) 一.主要功能: 1.手机app播放内存卡的音乐.同时点阵屏随音乐进行跳 ...

  4. LD3320语音识别模块开发

    达者为先  师者之意 LD3320语音识别模块开发 1 LD3320语音识别模块基本参数 1.1 基本参数 1.2 识别原理 1.3 解决方案: 2 LD3320语音识别模块二次开发 2.1 源码修改 ...

  5. 第三章 LD3320语音识别模块的使用

    上一章给大家介绍了SYN6288语音识别模块的使用方法,它的作用是播报声音信息,所以这章教大家使用LD3320语音识别模块,让毕设能够"听懂"我们在说什么. 下图是我经常使用的一款 ...

  6. 基于单片机的智能灯控系统

    目录 实验四  简易路灯智能控制器 一.项目设计 1. 了解光敏电阻电气特性. 2. 学会在面包板上搭建光敏电阻电路测量环境光强度. 3. 学会使用PCF8591数模转换模块将光敏电阻两端电压转换为数 ...

  7. 优联智能灯控系统升级:NB-IoT将引领智慧照明新风潮

    随着5G布局的加快,各行各业积极布局物联网,万物互联时代加速来临,NB-IoT作为一种最新的低功耗窄带广域网通信技术能实现设备的海量连接,正成为物联网领域的一项革新性技术.NB-IoT加速了物联网的引 ...

  8. 【毕业设计】基于ZigBee的智能灯控系统 -物联网 单片机 stm32

    文章目录 1 简介 2 系统结构 系统功能 相关器件 Zigbee芯片 CC2530 LED发光二极管 人体红外感应模块 光敏电阻传感器 3 实现效果 5 相关部分代码 6 最后 1 简介 Hi,大家 ...

  9. 智能灯控(基于ZigBee)

    时间:2017年12月 阶段:大二上学期 背景:单片机原理与应用课设 名称:智能灯控 摘要 本系统实现了多方式控灯功能,有按键控灯.串口指令控灯.点对点无线射频控灯.AI模式控灯.其中AI模式控灯是通 ...

  10. 【安信可LoRa模组专题②】快速搭建远程控制灯LoRa智能灯控【51单片机篇】

    本LoRa模组系列博客学习由 安信可科技 - 官方博客 技术分享,如有疑问请留言或联系邮箱. [安信可LoRa模组专题①]安信可LoRa快速入门指南 [安信可LoRa模组专题②]快速搭建远程控制灯Lo ...

最新文章

  1. ABAP股票查看代码
  2. java邻接表无向图的创建_邻接表无向图(三) 之Java详解
  3. Ubunt中卸载protobuf与安装3.6.0版本步骤
  4. Linux加密框架 crypto 哈希算法举例 MD5
  5. 易货Beta版本发布说明
  6. 深入理解golang 的栈
  7. DataView数据视图的使用 winform
  8. python带我起飞_Python带我起飞:入门、进阶、商业实战
  9. 谷歌在线appspot平台教你学Hacker(由浅如深)-XSS篇
  10. 小米随身WIFI去掉云U盘的方法
  11. opensuse安装搜狗输入法
  12. MS2561低功耗RS-485接口芯片,可替换MAX487兼容MAX348
  13. rufus(u盘引导盘制作工具) v3.5.1497
  14. 几种直方图均衡方法汇总
  15. Unity技术手册 - 形状(Shape)子模块 - Cone椎体和Box盒及Mesh、MeshRenderer、SkinnedMeshRenderer
  16. 深度解析《软文广告经典案例300》
  17. [渝粤教育] 西南科技大学 英语(A)1 在线考试复习资料
  18. #新技能# ps 简单抠图【持续更新】
  19. linux中524端口,liunx下攻击分析及如何通过交换机封端口
  20. 移动通信技术的毫米波波束成形系统构成

热门文章

  1. 火狐浏览器百度网盘服务器响应,火狐浏览器打不开百度网盘怎么解决?解决不开百度网盘的方法说明...
  2. 08_基于IP的伪装
  3. 修复升级ndk到17.0.4754217编译so失败问题
  4. mac ruby 环境变量_Ruby环境设置| 在Mac和Windows操作系统上安装Ruby
  5. 【Codeforces 372A】Counting Kangaroos is Fun
  6. Cocos2d-iphone学习笔记
  7. 清除90天苹果充值记录_王者荣耀开启安卓、苹果系统数据互转
  8. 硅谷中那些潜在的颠覆世界的力量
  9. 饥荒服务器模组全部显示冲突,饥荒联机洞穴设置及常见问题的解决方法
  10. vnc4server安装路径_redhat6.9VNC安装目录和注意项