微信扫码
添加专属顾问
我要投稿
用ESP32做了一个语言模型,就像一个基础版“siri”~
支持对话(语言识别与合成),响应速度几乎在3s以内。
支持触碰交互
通过修改代码,可以设置AI的对话方式和回答风格
支持用于拓展设计,例如:智能MP3、简易版siri/小爱同学、实时翻译工具…
想实现这些功能,软硬件如何设计?会不会很难?
其实,可能比你以为的更简单!
原理图
PCB图
实物图
选用:ESP32S3-WROOM-1-N16R8
INMP441 与 MAX98357A 使用的都是模块
电池插头是1.25间距正接头,仅支持单节3.7v锂电池,typec接口有充电功能,可以给锂电池充电
喇叭:MAX98357A可以推动3w喇叭
串口模块是CH340C,后面有C!
显示屏幕是3.2寸带触摸屏幕
搞定了电路设计,那又要如何实现主要的“对话”功能?
关键词:讯飞、火山引擎
想实现对话功能,起码得让它“听懂”
。这得通过STT(语言转文字)和TTS(语音合成)实现!STT和TTS使用的是讯飞API。PS:注册讯飞账号有试用礼包。
光“听懂”不行啊,得聊起来呀!这就需要大语言模型了。大语言模型不仅能够生成自然语言文本,还能够深入理解文本含义,处理各种自然语言任务,如文本摘要、问答、翻译等。
大语言模型使用的是火山引擎的豆包同款引擎。PS:一样,注册账号可以领取免费试用。
作者亲测,就算是试用,也够玩一阵子了~~
如何连接API?
上面三个API,是从各自官网控制台获取到KEY后,修改代码中相关的字段,才可以正常连接到API。
代码中还需要修改WiFi的连接信息。
一些说明
讯飞的服务使用webscoket连接API,TTS使用了流式处理,一边接收一边播放音频。有时数据处理不严谨会发生错误,这个暂时还没解决,请自行排查修改;STT没有用流式处理(懒),说短句子没有什么影响,发送长句子的话,有一部分时间也是浪费在这里了。
火山引擎使用HTTP连接API(因为火山的webscoket确实没有调通,才疏学浅见笑了),没有做到流式处理,反应时间部分浪费再了这里。
webscoket响应时间短,通信更流畅。
HTTP也够用,是比较传统的方式。
作者OS:我是软件方面的“新手”,目前算是用“用尽方法”实现了想要的功能,代码可供同道新人参考,高手一笑了之。如各位有意复刻此项目,请务必先下载源码进行编译测试,可编译通过再进行复刻尝试,如若不能还请三思。
编译软件:ArduinoIDE 2.3.2
开发板设置
文章的最后,总结一下工作原理:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-03-21
Hugging Face:AI 界的 GitHub 与开源协作的终极生态杠杆
2026-03-21
OpenMAIC课程生成很惊艳,但"像一堂课"不等于"是一堂有效的课"
2026-03-20
企业级 Agent 多智能体架构与选型指南 -- 来自1000+行业应用实践积累
2026-03-20
ollama v0.18.2 发布!OpenClaw 安装优化、Claude 加速、MLX 量化全面升级
2026-03-19
开源版Cowork——Eigent集成ERNIE 5.0,让AI Agent自动化高效工作
2026-03-17
打造 Claude Code 并行自主开发环境:Auto Claude + GLM 4.7
2026-03-17
又一款开源的LLM生成3D场景的3D编辑器,这次功能更强大了
2026-03-17
英伟达的NemoClaw,能帮AI代理这匹“野马”套上缰绳吗?
2026-01-27
2026-01-30
2026-01-12
2026-01-29
2026-01-27
2025-12-22
2026-01-28
2026-01-21
2025-12-23
2026-01-06
2026-03-17
2026-03-13
2026-03-02
2026-02-05
2026-01-28
2026-01-26
2026-01-21
2026-01-21