儿童陪护机
作者:贺婷婷
一、作品简介
因家有俩宝,经常想听故事而且是那种一段故事循环播放许久的,比如我们家小的就只听西游记里面的白毛老鼠精这个故事,她还不会操作,想着能有一个语音控制播放故事的设备,于是就用ESP32-S3-BOX做一个可用语音控制播放故事的小盒子,取名儿童陪护机。名字有点大了,但有可实现的可能。目前这个项目我只做到了将宝宝爱听的一些故事放到TF卡中,用语音控制播放。目前在ESP32-S3-BOX代码基础上进行修改增加TF卡部分代码,购买TF卡读卡模块接入外接接口上,将需要的故事拷贝到TF卡,目前只做到了这里。后续可以连接云进行网络故事播放,对于儿童来说还是固定给她下载好所需要的故事进行播放较好。
图1
图2
图3
二、系统框图(图文结合)
硬件使用ESP32-S3-BOX,包含商城提供的BOX,如图4所示,以及自行购置的TF卡读写模组,连接如图5所示。
图4
图5
如图5所示,根据表格接线方式将TF卡模组与Pmod2接口连接好,TF卡内存入需要播放的mp3文件。
三、各部分功能说明(图文结合)
语音控制功能是ESP32-S3-BOX自有的功能,它由hi,乐鑫或者hi,esp唤醒,接收语音控制命令,根据不同命令执行不同功能,如图6所示,唤醒后会播放echo_cn_wake.wav(我在),说完命令比如播放音乐,会播放echo_cn_ok.wav(好的),如果超时10秒,会播放echo_cn_end.wav(我休息了,有需要再叫我)。
图6
播放log如图7所示。
图7
使用语音命令“播放音乐”,则会播放TF卡下mp3文件夹下的故事音频,目前我下载了4个音频,西游记的白毛老鼠精的故事,分为了4集进行播放,如图8所示。
图8
系统启动后首先检索TF卡的mp3文件夹的文件名,根据.mp3将文件名提取到一个列表中,进行顺序播放,使用命令进行下一首,上一首进行播放。
使用ESP32-S3-BOX的SDK,针对factory_example进行修改,逐步测试每个功能块,然后加入TF卡的支持,并将播放过程逻辑进行梳理,能够播放自己放在TF卡内的最喜欢的故事,将修改的部分代码进行说明。
首先主函数修改如下:
设置TF卡的驱动方式,如下图所示。
初始化TF卡的函数由box提供,如图所示。
TF卡初始化完成后,设置LCD显示,然后开始检索TF卡上的mp3文件,因我的文件识别出为MP3,修改函数audio_task,对MP3识别,如图所示。
进行编译后,下载运行就能够用语音控制播放故事了。
五、作品功能演示视频
闺女3周岁语音能够唤醒乐鑫,但她不按套路出牌,每次还没等采集线程工作,她就说完了,也有可能命令需要一字一字的说,儿子就能轻松语音控制,他的语速就相对慢一些,闺女叫了几次乐鑫,它都没有播放故事,直接说它懒蛋,我笑了。这个小盒子适合大班以上的小朋友,闺女有点小了,语速不可控。
【儿童陪护机】+ ESP32-S3-BOX+ESP32-S3-DevKitC-1物料开箱及BOX基本演示
【儿童陪护机】+ ESP32-S3 VScode环境搭建及hello_world project刷机
【儿童陪护机】+ESP32S3-BOX最新固件下载学习
【儿童陪护机】+ ESP32S3-BOX网络连接过程记录
【儿童陪护机】+ ESP32S3-BOX factory_demo源码下载、编译及刷机过程记录
【儿童陪护机】+ 俩宝演示视频(本贴视频)
六、项目总结
开始就只想做一个语音可控制的播放故事的小盒子,但后来发现esp32可以连接百度的dueros,尝试去做了很久,能够播放电台,但发现不是所有服务都是免费的,也有可能本人能力有限并没能够更深入的研究。
后面会接着开发这个联网语音控制小盒子,这个可实现的功能还是非常多的,从esp32官网看,可实现的产品也非常多,很适合我起的这个名字儿童陪护机。
七、其他
闺女语音控制
儿子语音控制
|