python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别

d7a265ecc484c41e6440e59b2ce0504b.png

大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介,相信有很多小伙伴都已经忍不住跃跃欲试了,别着急,从这一篇开始,笔者将会带领大家一步一步来完成这个DIY项目。

这款套件的主控板采用的是我们『芯知识学堂』自主设计的OWL Micro F1开发板,如果有一直关注我们的小伙伴,相信大家对这款开发板不会再感到陌生了:

49a288fc7c08de892828b3f3b202b803.png

当然咯,我们今天的主角不是这款『OWL Micro F1开发板』,今天笔者要给大家介绍的是这个项目中比较重要的一个模块—语音识别模块:ASR-08B。

3ae7fb947c30f87f89069fbf6c1ed760.png

这个模块的语音识别部分采用的是LD3320这个芯片,然后集成了一颗STC11L16XE的单片机做了一些指令、数据处理,相比于网上其他的LD3320的模块,操作更加简单,用户不用折腾代码,直接串口发送指令设置关键词即可识别,而且,厂家还提供了专门的设置工具,操作非常简单(enmm,妈妈再也不用担心我不会写代码了……):

fc3a6924c7c611b81ecf14634507a7b1.png

接下来,笔者将结合我们的这款智能垃圾桶的DIY项目,来给大家介绍一下这个ASR-08B语音模块的使用,首先,我们将ASR-08B模块与USB转TTL模块连接来,并将USB转TTL模块插到电脑上:

fbf463e1b0b00de4aef05ddb9d98c271.png

USB转串口模块与语音识别模块接线说明:

语音模块TXD --> USB模块RXD

语音模块RXD --> USB模块TXD

语音模块GND --> USB模块GND

语音模块VCC --> USB模块5V

这里需要注意的是,如果是使用厂家配套的USB转TTL模块的话,就不要使用USB转TTL模块的3V3电压给语音模块供电了,因为厂家提供的这个USB转TTL模块本身没有3.3V输出,语音模块的3.3V引脚直接悬空即可。

硬件连接好后,如果是之前有用过CH340设备的电脑,在设备管理器中直接会显示一个“USB-SERILA CH340”开头的COM端口,如果是未使用过CH340设备的电脑,则可能需要自己手动安装一下这个驱动,关于这个驱动的安装比较简单,笔者就不在这啰嗦了。

dbb764698fe6c5c6e9ae0b48e62681b8.png

ASR-08B模块是支持三种识别检测模式的,即:循环检测模块、口令检测模式和按钮检测模式,在我们这个智能垃圾桶项目中,笔者使用的是“口令检测模式”,所谓的“口令检测模式”,就意味着,我们先要对上口令,才能够进行下一步操作。说到这里,是不是有小伙伴马上就想起了电影《智取威虎山》里面的经典台词:

土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?)

杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。)

土匪:野鸡闷头钻,哪能上天王山!(你不是正牌的。)

杨子荣:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)

土匪:拜见过阿妈啦?(你从小拜谁为师?)

杨子荣:他房上没瓦,非否非,否非否!(不到正堂不能说。)

土匪:嘛哈嘛哈?(以前独干吗?)

杨子荣:正晌午说话,谁还没有家?(许大马棒山上。)

土匪:好叭哒!(内行,是把老手)

杨子荣:天下大耷拉!(不吹牛,闯过大队头。)

当然咯,笔者今天要给大家介绍的所谓的口令,没有这么复杂,我们只需要给语音识别模块设置一个名为“猫头鹰”的唤醒口令即可。

接下来,我们需要根据垃圾分类的标准,将常见的一些垃圾,分为:可回收垃圾、厨余垃圾、有害垃圾和其他垃圾这四大类:

(1)可回收垃圾:旧报纸、塑料瓶、废铁、图书、坏手机、玻璃瓶、旧水管、洗衣机、电视机、电饭煲

(2)厨余垃圾:剩菜、剩饭、菜叶、果皮、隔夜饭、骨头、鸡蛋壳、茶叶渣、菜根、苹果核

(3)有害垃圾:灯泡、电池、药品、灯管、油漆桶、化妆品、老鼠药、指甲油、杀虫剂、农药

(4)其他垃圾:果壳、泥土、瓜子壳、废水、陶瓷、一次性筷子、卫生纸、烟头、餐巾纸、牙签

为了防止语音识别模块出厂可能自带的一些指令跟我们需要增加的指令有冲突,我们先将语音识别模块里面的所有指令一次性全部擦除(即:擦除所有关键词),操作步骤如下:

97df02cb41d76b9a87a4c6580e2ae795.png

简单来说,我们只需要在串口正确打开后,点一下“擦除所有关键词”按钮,然后再点一下“发送”按钮即可完成操作。

接下里,我们来开始添加关键词,我们先点击一下“添加关键词”按钮,这个时候,在“数据发送区”就会出现一条示例指令“00,kai deng,001,$”,然后如果我们勾选了“是否显示命令解析”选项的话,在“数据接收区”会出现有关这条指令的详细解析,如下:

c93d3352f05ccffe4a24a3ba406cfacb.png

这里需要注意几个地方:

1、“关键词所在的行”如果只有一位数时(0-9),前面十位一定要0补齐;

2、“需要识别的词语或句子”两个拼音之间需要用空格隔开,并且,有且仅有一个空格,其他部分也不允许有多余的空格;

3、“逗号”分隔符一定要是英文状态下的“逗号”,不能使用中文状态下的“逗号”;

4、“254”被规定为口令模式中的口令,比如本例中的口令“猫头鹰”,不能用作普通关键词的返回值;

5、“255”被规定为屏蔽词,如本例中的“可回收垃圾”、“厨余垃圾”、“有害垃圾”、“其他垃圾”,这样就可以避免语音播报模块在播报这几条语音的时候,被语音识别模块识别到。

我们在添加关键词的时候,一定要严格按照上述要求进行操作,否则,可能会出现异常情况。

弄清楚了“添加关键词”的指令格式后,我们就可以来开始添加本例所需要的关键词了。我们以“猫头鹰”这个口令为例,我们只需要在“数据发送区”输入“00,mao tou ying,254,$”,然后点击“发送”按钮,当“数据接收区”出现“写入成功!”后,我们的关键词就设置成功了:

571f493ed08c74d51e1e28b53aa571ed.png

接下来,我们来测试一下这个“猫头鹰”的关键词,这里,我们需要选择“十六进制显示”,然后,我们直接对着语音识别模块说一声“猫头鹰”,就可以在ASR M08-B设置软件的“数据接收区”里看到有显示“FE”,即:254,说明我们的这个“猫头鹰”关键词设置成功了。

de60712996277cc8ab45fc5a9dc22e7b.png

至于其他的关键词,我们只需要按照同样的方式设置即可。当然咯,一个一个设置关键词,还是会比较麻烦的,语音识别模块的厂家也为大家考虑到了这一点,所以在“ASR M08-B设置软件”里面做了一个批处理的按钮,即:一键设置。这个时候我们只需要新建一个记事本,命名为“垃圾名字关键词”,然后直接在这个文件里面输入以下内容:

@01,jiu bao zhi,001,$

@02,su liao ping,001,$

@03,fei tie,001,$

@04,tu shu,001,$

@05,huai shou ji,001,$

@06,bo li ping,001,$

@07,jiu shui guan,001,$

@08,xi yi ji,001,$

@09,dian shi ji,001,$

@10,dian fan bao,001,$

@11,sheng cai,002,$

@12,sheng fan,002,$

@13,cai ye,002,$

@14,guo pi,002,$

@15,ge ye fan,002,$

@16,gu tou,002,$

@17,ji dan ke,002,$

@18,cha ye zha,002,$

@19,cai gen,002,$

@20,ping guo he,002,$

@21,deng pao,003,$

@22,dian chi,003,$

@23,yao ping,003,$

@24,deng guan,003,$

@25,you qi tong,003,$

@26,hua zhuang pin,003,$

@27,lao shu yao,003,$

@28,zhi jia you,003,$

@29,sha chong ji,003,$

@30,nong yao,003,$

@31,guo ke,004,$

@32,ni tu,004,$

@33,gua zi ke,004,$

@34,fei shui,004,$

@35,tao ci,004,$

@36,yi ci xing kuai zi,004,$

@37,wei sheng zhi,004,$

@38,yan tou,004,$

@39,can jing zhi,004,$

@40,ya qian,004,$

@41,ke hui shou la ji,255,$

@42,chu yu la ji,255,$

@43,you hai la ji,255,$

@44,qi ta la ji,255,$

@49,mao tou ying,254,$

其中:

返回值001(行号01-10)属于“可回收垃圾”;

返回值002(行号11-20)属于“厨余垃圾”;

返回值003(行号21-30)属于“有害垃圾”;

返回值004(行号31-40)属于“其他垃圾”;

行号41-44属于屏蔽词(可回收垃圾、厨余垃圾、有害垃圾、其他垃圾);

行号49属于唤醒口令。

接下来,我们就可以来一键设置关键词了,我们先将数据接收区的显示模式改成“文本格式显示”,然后点击“一键设置”,选择文件“垃圾名字关键词.txt”,然后点击“打开”按钮:

4b077b0b9f78fd72cadc5cc22e9ab753.png

因为我们设置的速度是1000ms,也就是说,每1000ms下发一条设置指令,所以,我们在“ASR M08-B设置软件”的“数据接收区”会每隔1000ms收到一条“写入成功!”的信息,直到出现“发送完成”的提示,意味着所有的关键词设置成功。

da6d0f442cc9c698ca39f8ddc8739ad2.png

接下来,我们就可以来测试一下这些关键词了,测试关键词是否写入成功有两个方法,一个是点击软件上的“查询关键词”按钮,然后再点击“发送按钮”即可查询我们刚才写入的所有的关键词;另外一个就是可以直接通过判断语音识别模块的返回值来最终检验我们写入的关键词是否成功,具体操作请看视频:

智能垃圾桶语音识别演示

视频中有提到如何将模块设置成“口令模式”,其实,这条指令也同样可以在“一键设置”的时候,跟随其他关键词一起写入到语音识别模块中,相信看到这里,大家都应该知道要怎么操作了,笔者就不再赘述了。

ASR-08B模块这款语音模块,相比与之前笔者使用过的庆科的VBS7100语音套件有优点也有缺点,ASR-08B模块有几个比较突出的优点:

  1. 离线识别:采用了LD3320离线式语音识别芯片,无需联网能够实现离线识别;
  2. 设置简单:厂家提供了专用的设置软件,使得用户无需编程基础,全程傻瓜式操作,就能快速设置所有指令;

当然咯,其缺点也是比较明显的:

  1. 识别率不高:由于LD3320芯片的局限性,导致了识别率只能在90%左右(虽然在离线式语音识别芯片中算高了,但是跟在线式语音识别芯片还是有一定差距);
  2. 关键词数量有限:ASR-08B模块能够设定的关键词数量有限(最多50条),导致了我们能够写入的关键词数量不能太多,有一定的局限性;

有关ASR-08B模块和VBS7100语音套件的更多差异以及详细的使用教程,请大家自行翻阅相关资料,在实际应用中,我们可以根据自己的应用场景,选择离线式语音识别方案还是在线式语音识别方案。

关于我们这个DIY智能垃圾桶项目的语音识别部分,就给大家介绍到这里了,如还有疑问可以咨询我们,下一篇,笔者将要跟大家继续分享我们这个DIY项目中语音播报部分的实现,敬请关注!

如果你喜欢我们的这个DIY项目,欢迎分享、转载,在项目内容全部介绍完成后,笔者将会给大家免费分享所有设计资料,感谢大家的支持!

86b54dc0708a34783077bc55388aa0c4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 945. 使数组唯一的最小增量(贪心)

1. 题目 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 示例 1: 输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 2, 3]。…

突然发现被点名(理想恋人游戏)

被debbie点名了.从debbie那里也看到了一个理想好男人应该具有的特点,努力!不过一下子想不出来八个条件,想想再写.(注: 理想恋人游戏规则:被点到名的人,回答八个你理想恋人的条件。必须点名八个人一起与你玩游戏。如果被点名者,已完成这游戏,…

手机电脑的芯片主要是由_全体起立!苹果自研电脑芯片登场,iOS迎大更新…WWDC20精彩远不止这些...

科技观潮techsina与浪同行打造一个自己能全局掌控的硬件一个自己完全掌控的系统找人来开发App创造生态繁荣。让它有用、好用,让更多人用——这一系列动作,我们曾在iPhone的历史上都亲眼见证过。出品 / 新浪科技 ID:techsina作者 / 晓光视频 /…

有人已经在用AI画色图了...

文 | 雷叔说事知乎一最近,一些画师是真的有点急了。倒不是因为参加美国科罗拉多州博览会美术比赛没得奖而无能狂怒。是因为第一名,根本就不是个人。原来,在这届比赛中获得“数字艺术/数字修饰照片”大奖的作品是AI生成的。Jason Allen是一家桌…

LeetCode 1389. 按既定顺序创建目标数组

1. 题目 给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组: 目标数组 target 最初为空。按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。重复上一步,直到在 nums 和 i…

AlphaFold 2被曝真实场景的预测能力太差??

文 | 李梅、黄楠源 | AI科技评论2018 年,Deepmind 首次发布基于深度神经网络的蛋白质结构预测数据库 AlphaFold,在蛋白质预测中实现了最先进的性能;去年,AlphaFold 2 获得了 98.5% 的蛋白质预测率;前段时间&#xff0c…

外贸SOHO经验

经验一: SOHO的挂靠外贸公司的数字分析 我已经有3年多代理出口工作经验,结合我自己的工作经验和实际情况,想写一个文章来阐述一下这个话题,希望能够抛砖引玉,给广大的SOHO们一些启发。 SOHO与客户沟通3绝招 &#xff0…

平行空间怎么设置32位_高低床怎么设置不占空间

工作忙要父母带孩子或是有了二胎,房子紧张住不下。最简单实用的方法就是添置双层床。双层床怎样布置空间利用率更高,对于老人带孩子或不同年龄阶段的孩子还是有所差别的。常规的双层床都长这样的。双层床对于儿童最大的挑战就是安全问题,如果…

LeetCode 1390. 四因数

1. 题目 给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和。 如果数组中不存在满足题意的整数,则返回 0 。 示例: 输入:nums [21,4,7] 输出:32 解释: 21 有 4 个因数&#x…

聊聊工业界“AI算法创新”乱象

文 | Sirius几天前,卖萌屋的一期推文《AI凉下来了?这可能是个好事》在短短几小时内获得近百次点赞在看和800多次转发,引起了不少小伙伴的共鸣。不过由于批判和叙事太过露骨,打马不彻底,导致删文。删文后,这…

个人编程思想理解的片段(主要是面向对象的,参考了许多人的观点,还不成熟,没形成系统,请大家多指点)...

编程思想的发展 面向过程 面向对象 新的发展对面向对象的补充有 面向方面面向对象的三种表现效果 封装 继承 多态面向对象的实质 用类对现实世界进行抽象,用对象对现实世界的存在和运行进行模拟,使程序世界更加接近于现实世界。 封…

LeetCode 1391. 检查网格中是否存在有效路径(BFS)

文章目录1. 题目2. 解题2.1 BFS2.2 爆栈的DFS2.3 不爆栈的DFS1. 题目 给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是: 1 表示连接左单元格和右单元格的街道。2 表示连接上单元格和下单元格的街道。3 表示连接左单元格和下…

软件oem要注意什么_化妆品OEM客户要着重注意这3个基本点,不然就吃大亏了

作为品牌方客户,确定化妆品OEM代工后,虽然生产的一切事务由化妆品OEM工厂完成,但是仍然需要注意这3个基本点!1. 合规性首先,产品只有备案流程全部完成,并且通过后才能进入市场销售,正常情况下是…

沉痛悼念!中国NLP 先行者、机器翻译鼻祖刘倬逝世

作者 | 李梅编辑 | 陈彩娴来源 | AI科技评论AI 科技评论获悉,中国机器翻译事业的开创者之一、原中国社科院语言研究所研究员刘倬老师与世长辞,享年 89 岁。沉痛悼念刘倬老师!刘倬,1933 年 4 月 4 日生于河北省大成县。1949 年从北…

今天很累……

今天,用了一整天时间去研究解决Tapestry3.0的StaleLinkException问题,可能太集中精神了,下午到了快下班的时候感到十分疲倦,眼睛有点痛。Todays Conclusion:天外有天,人上有人,任何时候都需要自…

如何 给给软件开发 添加 代理_如何与软件开发公司有效沟通

从最初的想法到可运行的软件,软件开发过程是十分繁杂的,既不想被细节淹没,又希望留有控制力,与软件开发公司沟通要如何做才能事半功倍呢?1,共享业务语义所谓业务语义,就是需求背后所思所想&…

LeetCode 1392. 最长快乐前缀(KMP)

1. 题目 「快乐前缀」是在原字符串中既是 非空 前缀也是后缀(不包括原字符串自身)的字符串。 给你一个字符串 s,请你返回它的 最长快乐前缀。 如果不存在满足题意的前缀,则返回一个空字符串。 示例 1: 输入&#x…

火到海外破圈!这个国产AI项目GitHub标星8.6k,价值千万

Q:最顶尖的AI技术到底离我们有多远? A:三行Python代码的距离。 导读 今天小编为大家推荐一个AI领域相当优秀的项目, 粗略估计,这个项目价值超过千万, 当前star 8.6k,大胆预判,这个项…

让互联网助小组合作一臂之力

利用互联网实现小组合作,目前显然还有诸多不便,原因何在?许多人都在网上实现了互联,小组合作似乎应该有诸多便利。但为什么维护一个可供小组其他成员共享和编辑的文件夹依然困难重重?为什么如果大家不使用相同的即时通…

程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)

1. 题目 稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。 示例1:输入: words ["at", "", "", "", "ball", "", "&…