树莓派Pico开发板与Gravity语音识别模块接口及其语音控制MicroPython编程

本文主要是介绍树莓派Pico开发板与Gravity语音识别模块接口及其语音控制MicroPython编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**摘要:**介绍Gravity语音识别模块的主要功能及其特性,讲述树莓派Pico与Gravity语音识别模块接口连接的基本方法,介绍使用Gravity语音识别模块学习语音唤醒词/命令词并给出I2C通信接口语音识别MicroPython库,以及基于树莓派Pico开发板和Gravity语音识别模块的语音控制MicroPython测试程序。
一、Gravity语音识别模块介绍
1.模块简介

Gravity语音识别模块是DFRobo推出的一款新颖语音识别智能硬件传感器模块,Gravity语音识别模块如图1所示。
在这里插入图片描述
图1 Gravity语音识别模块
Gravity语音识别模块采用了最新的离线语音识别芯片,它内置了150条常用的固定命令词,新增命令词自学习功能,自学习命令词可以是一段语音,也可以是一段口哨、一声狗叫等,支持17条自学习命令词;模块采用双麦克风获取语音使其有更好的抗噪能力和更远的识别距离;模块自带一个喇叭SPK1和外接喇叭SPK2的接口,能实时语音反馈识别结果;模块使用Gravity接口(3.3~5V直流供电电压),采用I2C接口和UART接口两种通讯方式,通信接口支持Arduino Uno、树莓派、ESP32、树莓派、树莓派Pico等开发板;模块板载电源指示灯(红)和唤醒状态指示灯(蓝)。
Gravity语音识别模块(简称Gravity模块)接口与引脚如图2所示。
在这里插入图片描述
图2 Gravity语音识别模块接口信号
在图2的Gravity模块中,Gravity接口信号有D/T(I2C-SDA, UART-TxD)、C/R(I2C-SCL, UART-RxD)、GND、(VCC(3.3V~5V)。Gravity接口支持I2C和UART两种通信方式,当通讯模式开关拨到I2C一侧时模块工作于I2C通信方式,通讯模式开关拨到UART一侧时模块工作于UART通信方式。当喇叭开关拨到SPK1一侧时使用模块板载喇叭输出,当喇叭开关拨到SPK2一侧时使用外接喇叭输出。
2. Gravity模块主要参数
(1)工作电压:3.3~5V
(2)最大工作电流:≤370 mA(5V)
(3)通信方式:I2C/UART
(4)I2C地址:0x64
(5)固定命令词条数:135条
(6)学习命令词条数:17条
(7)学习唤醒词条数:1条
(8)板载麦克风灵敏度:-28db
(9)模块尺寸:49×32 mm
三、树莓派Pico开发板Gravity语音识别模块接口
Gravity模块与MCU的通信接口有两种,分别是I2C通信接口方式和UART通信接口方式。(1)I2C通信接口方式信号连接:MCU的I2C接口信号引脚SDA连到Gravity模块的接口信号引脚D/T,MCU的I2C接口信号引脚SCL连接到Gravity模块的接口信号引脚C/R,GND接到Gravity模块的GND,3.3v~5v直流电源 (一般为5V或3.3V,取决于所选用的MCU)接Gravity模块的VCC;(2)UART通信接口方式信号连接:MCU的UART接口信号引脚RxD连到Gravity模块的接口信号引脚D/T,MCU的UART接口信号引脚TxD连接到Gravity模块的接口信号引脚C/R,GND接到Gravity模块的GND,3.3~5v直流电源接Gravity模块的VCC。
这里以树莓派Pico开发板与Gravity语音识别模块I2C通信接口工作方式为例进行介绍。
1.所需实验设备和元器件清单
• PC机(或笔记本)×1
• 树莓派Pico开发板×1
• Micro-USB数据线×1
• Gravity语音识别模块×1
• 470Ω色环电阻×1
• LED灯×1
• 面包板×1
• 公对公跳线×5
2.树莓派Pico开发板与Gravity语音识别模块硬件接口
在Gravity语音识别模块I2C通信方式下,树莓派Pico开发板与Gravity语音识别模块硬件接口原理图如图3所示,Pico开发板与Gravity语音识别模块接口硬件面包板接线实物图如图4所示。
在这里插入图片描述
图3 树莓派Pico开发板与Gravity语音识别模块硬件接口原理图
在这里插入图片描述
图4 树莓派Pico开发板与Gravity语音识别模块接口硬件面包板接线实物图
从图3和图4可知,这里的树莓派Pico开发板与Gravity语音识别模块I2C通信接口信号引脚连接如下:
(1) I2C0 SDA(Pico开发板Pin1,GP0)- D/T(Gravity模块)
(2) I2C0 SCL (Pico开发板Pin2,GP1)-C/R(Gravity模块)
(3) GND(Pico开发板Pin38)-GND(Gravity模块)
(4) VBus(Pico开发板Pin40,即+5v)-VCC(Gravity模块, 3.3v~5v)
树莓派Pico开发板与Gravity语音识别模块接口硬件按照图4面包板接线实物图接好后,将Gravity模块的通讯模式开关拨到I2C一侧让设备工作于I2C通信方式,喇叭开关拨到SPK1一侧让模块的板载喇叭SPK1输出声音。打开电脑,将Micro-USB数据线插入Pico开发板和电脑USB接口接通电源后,Gravity语音识别模块内置喇叭SPK1将发出“欢迎使用语音识别助手”语音。接下来,可根据语音控制实际应用需要,先使用Gravity模块学习语音唤醒词与命令词,然后进行语音控制相关软件应用的开发。
四、基于树莓派Pico开发板与Gravity语音识别模块接口的MicroPython语音控制实践
**语音控制编程实践任务:**针对图4中已连接并设置好的树莓派Pico开发板与Gravity语音识别模块接口硬件(以下简称语音识别设备),编制满足以下要求的语音控制MiroPython测试程序。
(1)当对语音识别设备说出默认的唤醒词如[小爱同学]或者说出自定义唤醒词[小雨同学]时,Gravity模块的唤醒状态指示灯亮,语音助手被唤醒;
(2)在语音助手唤醒状态下,当对语音识别设备说出固定命令词[打开灯光]或自定义命令词[开灯]时LED灯点亮,当说出固定命令词[关闭灯光]或自定义命令词[关灯]时LED灯点熄灭。
1.学习唤醒词与命令词
唤醒词是指将语音识别设备从待机状态切换到工作状态的词语,是用户与语音识别设备互动的第一个接触点。命令词是指用户对语音识别设备发出一定的指令,以此与语音识别设备进行交互或者沟通的词语。当Gravity模块加电(3.3~5V)后,就可以学习自定义的唤醒词与命令词,学习的自定义唤醒词有1个,学习的自定义命令词最多有17个。
(1)学习唤醒词
首先用默认的语音唤醒词唤醒Gravity模块[语音识别助手],然后说出[学习唤醒词],根据语音提示来学习语音唤醒词(注意,每次学习命令词前需删除前一次学习的唤醒词,请参考后面介绍的删除唤醒词和删除命令词)
语音提示:学习状态中,保持安静,请说出需要学习的唤醒词!
待学习的唤醒词{以[小雨同学]为例说明}:[小雨同学]
语音提示:学习成功,请再说次!
待学习的唤醒词:[小雨同学]
语音提示:学习成功,请再说一次!
待学习的唤醒词:[小雨同学]
语音提示:学习完成
就可以使用学习过的唤醒词来唤醒语音助手!
(2)学习命令词
用默认或已学习的语音唤醒词{这里为[小雨同学] }唤醒Gravity模块[语音识别助手],然后说出[学习命令词],根据语音提示来学习命令词(每次学习命令词前需删除前一次学习的命令词,请参考下面(3)中的删除唤醒词和删除命令词)
语音提示:学习状态中,保持安静,请按提示学习命令词!请说出第一条要学习的指令!
待学习的命令词{以[开灯]为例说明}:[开灯]
语音提示:学习成功,请再说一次!
待学习的命令词:[开灯]
语音提示:学习成功,请再说一次!
待学习的命令词:[开灯]
语音提示:恭喜你第一条指令学习成功!请说出第二条要学习的指令!
待学习的命令词{以[关灯]为例说明}:[关灯]
语音提示:学习成功,请再说一次!
待学习的命令词:[关灯]
语音提示:学习成功,请再说一次!
待学习的命令词:[关灯]
语音提示:恭喜你第二条指令学习成功!请说出第三条要学习的指令!
…… (如果后面还有更多待学习的命令词,重复以上步骤继续学习即可)
这里仅学习两个命令词,两条命令词学习完成后接着说出[退出学习]即可退出当前的学习状态。
学习结束后会自动生成一个语音命令词ID,表1所示中是Gravity模块的部分唤醒词/命令词ID对照表,通过该命令ID编制语音控制程序即可对要控制对象进行语音控制。
表1 Gravity模块的部分唤醒词/命令词ID对照表
在这里插入图片描述
从表1可以看出,上面“学习的唤醒词”[小雨同学]ID号为1,“学习的第1个自定义命令词”[开灯]ID号为5,“学习的第2个自定义命令词”[关灯]ID号为6;默认的唤醒词[小爱同学]ID号为3,固定命令词[打开灯光]ID号为117,固定命令词[关闭灯光]ID号为118。
(3)删除唤醒词和命令词
用唤醒词(默认或已学习的)唤醒[Gravity模块语音识别助手],然后说出[我要删除],根据提示删除命令词。
提示:请问需要删除的是学习的唤醒词还是命令词!
[删除唤醒词]:删除学习过的唤醒词!
[删除命令词]:删除学习过的命令词!
[全部删除]:删除学习过的唤醒词和命令词!
[退出删除]:退出当前的删除状态。
2.使用MicroPython编写语音控制测试程序
(1) Gravity语音识别模块I2C通信方式MicroPython库
Gravity语音识别模块I2C通信方式MicroPython语音识别库程序清单如下:

# Filename: Gravity_DF2301Q_I2C.py
from micropython import const

这篇关于树莓派Pico开发板与Gravity语音识别模块接口及其语音控制MicroPython编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048804

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推