昨天给大家分享的智能助手“贾维斯”设计方案,不知道大家看了觉得怎么样呢?该方案如果真的实现了又会是什么效果呢?
今天就为大家马不停蹄地送上项目展示,看看如果打造一个属于自己的智能语音助手吧!
阶段二项目报告已经上传至电子森林:
https://www.eetree.cn/project/detail/2026
本项目以PC作为主要算力平台(程序通用,可直接在树莓派等linux板卡上运行,实现可穿戴),利用ESP32-S2制作一个网络摄像头模块,做为整个系统视觉输入的硬件。目标是设计出一款自带摄像头和显示屏并兼具一定拓展能力的ESP32-S2视觉开发板。
工作流程:
首先使用speech_recognition进行语音输入,完成后将语音数据导入Whisper语音识别模型中进行语音识别。
与此同时,在语音输入完成后,PC会从ESP32-S2的视频流中截取最新的一帧,并利用YOLO或是RetinaNet,FPN等神经网络模型进行图像识别。
图像识别的信息与语音识别都得到后进行整合,通过GPT 提示词训练,将所有信息整合成文本并输入ChatGPT。
最后,将ChatGPT返回的回复利用Edge-TTS进行播放,实现与具备视觉能力的ChatGPT进行语音交互。
该项目的方案框图在阶段一的项目报告中已经做了详细的介绍了,感兴趣的同学可以去了解一下阶段一的项目:https://www.eetree.cn/project/detail/1969
项目原理图

整个硬件设计一共由6个部分构成,分别是ESP32-S2 主控部分、摄像头外设部分、起到补光作用的闪光灯驱动部分、屏幕显示部分、串口连接部分以及ESP32-S2的原生USB接口部分。
电路图设计部分的更多细节在此不做过多介绍,想要了解更多的可以查看完整项目报告哦。
作为一个便携式开发模块,为了尽可能小体积,将电路板设计的非常紧凑,这对布线带来了不少的困难,尤其是板载摄像头部分,线路非常多,而且为了信号质量,又不能让走线反复走过孔换层。最终成品如下,所有的走线都仅有单次换层,USB差分信号线做了等长处理。

在摄像头的位置设计上支持摄像头的双向使用,默认是把摄像头折过来,贴在板子上使用,那么摄像头与LCD就在同一个面上,相当于前置摄像头;如果想要用后置摄像头模式,只需要把摄像头如上图这样直接插上就可以。
打样电路板如图所示:

由于电路板双面都有元件,给焊接工作带来了一定的困难,采用的ESP32-S2-MINI模块,需要用热焊台进行焊接。所以将板子一分为二,ESP32-S2-MINI模块用热焊台焊接正面,烙铁焊接反面;另外的地方用热焊台焊接反面,烙铁焊接正面。
焊接完元器件的板卡实物图
电路板背面:

电路板正面:

ESP32-S2部分,使用circuitpython来进行一个简单的测试,快速检测各部分硬件是否可以正常工作。
代码使用的是arduino框架。按照官方教程在arduino中下载ESP32的开发板包,下单完成后打开官方的CameraWebServer示例,对示例代码进行修改。
PC端的代码。图像获取使用OpenCV完成,物体识别我们使用imageai完成。imageai可以使用resnet50,yolov3和tiny-yolov3这三个模型。这里把图像的获取和识别封装成了独立的类,可以作为一个外部库直接导入使用
语音输入的部分,语音输入使用speech_recognition库进行输入,识别使用whisper进行识别。同时一旦开始运行语音识别,说明我们提出了问题,那么同步开始进行图像识别。
主循环部分。上面得到的语音信息和物品识别信息均已被转化为文字,接下来就是处理这些文子,将他们和合适的AI提示词合并,并一起送进ChatGPT中。ChatGPT的API我使用的是poe_api_wrapper,需要自行从网页cookie里获取自己的token。AI使用的是acouchy。
ChatGPT给与反馈后,我们需要利用TTS讲文字内容转化成语音再输出出来,这里使用的是Edge-TTS。
项目已开源在电子森林项目网站,具体代码前往电子森林查看。
六、功能展示
闪光灯补光功能展示:


物品识别功能展示:


完整演示过程可参考项目视频。
七、心得体会
这个项目是我做过的较为复杂的项目之一。其中硬件部分相对于常规开发板的设计更为复杂,由于有摄像头的关系,若想实现紧凑设计则走线比较困难;而软件部分,将语音识别,ChatGPT,OpenCV,CNN,TTS整合在一起协同工作,具有一定的挑战性。完成这个项目后,我觉得自身能力有了很大的提升,也让我更加了解很多功能的实现过程。
想要了解更多项目细节还是要看项目报告才能体会其中奥妙哦。该项目已在电子森林上开源展示,你还在等什么?赶快点击文末“阅读原文”来一探究竟吧~
如果你也有好的设计思路,不要犹豫!
FastBond活动正在火热进行中,阶段1任务so easy,只需要一篇框图介绍视频,一个项目报告,即可获得百元京东卡奖励。一晚上就可以搞定!
点击下方链接即可参与:
https://www.eetree.cn/page/digikey-fastbond
完成任务还可以成为活动推广大使,赶快邀请志同道合的好友参加活动,获得推广奖励吧!
图片来源网络,如有侵权请联系删除
END
硬禾团队一直致力于给电子工程师和相关专业的同学,带来规范的核心技能课程,帮助大家在学习和工作的各个阶段,都能有效地提升自己的职业能力。
