最近给自己的桌面 DIY 工具库里又添了个新成员——一个基于 ESP32-S3 的独立语音输入模块。

说实话,市面上录音笔、语音键盘这类产品不少,但总觉得差点意思:要么是蓝牙配对麻烦,要么是每次还要去软件界面点那个麦克风图标。作为一名搞开发的,我想要的是一种“无感”的体验:伸手按住说话,松手文字就自动出现在光标位置,就像是用了一个实体的语音输入法快捷键。

于是,就有了这个小东西。它不只是一个会发声的板子,更是一个把音频采集、网络传输、PC 端识别融合在一起的桌面终端。

ESP32-S3 语音输入模块硬件实物图

本文制作的核心主角:基于 ESP32-S3 开发的独立语音输入模块,包含麦克风、屏幕和按键。

硬件方案:为什么选 ESP32-S3?

核心选型上,我直接用了嘉立创的 ESP32-S3 模块。选它主要看重两点:一是 WiFi 性能稳定,能保证和电脑端的通信延迟足够低;二是算力刚好够用,能跑 LVGL 屏幕驱动和音频采集,又不会太耗电。

整个硬件清单其实很简洁:

  • 主控:ESP32-S3
  • 交互:小屏幕 + 物理按键 + 麦克风
  • 电源:锂电池 + 电源管理模块(支持电量监测)
  • 外壳:3D 打印外壳,尺寸小巧,随手一抓就能用

这里有个设计重点:我把“重”活都甩给了电脑。ESP32 只负责干它最擅长的——采集音频、搞网络连接、驱动屏幕。至于耗算力的语音识别(ASR)和文本智能纠错,全部交给 PC 端处理。这样既保证了设备的低功耗,又避免了因为板子算力不足导致的识别卡顿。

灵魂搭档:PC Agent 的架构设计

桌面看板模式显示界面

设备闲置时的“看板模式”,可显示系统信息、天气或音乐频谱,充分利用小屏幕的价值。

单靠一个板子是完不成“无感输入”的,整个系统其实分两部分:

  1. ESP32 固件:负责录音、按键检测、电量管理、姿态感应(横竖屏)以及 WiFi 数据传输。
  2. PC Agent(电脑端软件):这才是大脑。它驻留在后台,接收 ESP32 传来的音频流,调用本地的语音识别接口,对识别出来的文本进行标点补全、纠错,最后模拟键盘输入粘贴到当前光标位置。

PC Agent 软件运行界面

PC 端软件(PC Agent)后台运行界面,负责接收音频流并进行最终的语音识别与文本输出。

数据链路是这样的: 按键触发录音 -> ESP32 采集 PCM 音频 -> TCP 协议边录边传 -> PC Agent 实时接收 -> 语音识别引擎处理 -> 文本整形 -> 模拟输入。

开发实战:那是相当的“坑”

项目做出来的效果很酷,但过程踩的坑也不少。这里重点说几个技术难点,给想复刻的大佬们避避雷。

1. 拒绝“录完再传”,必须实时流

我最开始的版本是“贪心算法”的受害者:先把整段录音存到 PSRAM 里,松手后再一口气上传给电脑。结果就是,只要句子稍微长一点,那个上传等待的时间让人抓狂。

后来我彻底重构了传输协议,改成了 TCP v2 边录边传模式。ESP32 录音的同时,电脑端已经开始收到数据包,并且可以分段丢给识别引擎。结果是显而易见的:长句子的识别延迟大幅降低,松手瞬间文字基本就已经处理得差不多了。

2. ESP32 的内存比想象中紧

PSRAM 虽然有几 MB,但真正“命门”是内部 RAM 和 DMA 内存。一旦开了 Wi-Fi、LVGL 图形界面、TCP 发送,再加上音频 DMA 采集,内存争抢非常激烈。

我的解决方案是**“任务分级”**:

  • 最高优先级:音频采集和传输。
  • 次优先级:按键检测。
  • 最低优先级:屏幕看板刷新。

一旦检测到语音输入开始,立马暂停看板的数据接收和复杂动画刷新,把所有带宽和算力都让给音频功能,确保录音绝不丢包。

3. 屏幕看板:让设备“闲时有用武之地”

既然带了屏幕,总不能只显示个电量吧?我给它加了“桌面看板”模式。

当检测到设备插着 Type-C 供电且处于静止状态时,它会自动进入看板模式:

  • 竖放:显示精简的系统状态、天气。
  • 横放:变身信息屏,显示时间、天气、音乐频谱,甚至能同步显示 Roon 正在播放的歌曲和歌词。

但为了实现横竖屏的无感切换,我在 LVGL 的界面重建上吃了不少苦头。经常会遇到切换姿态时屏幕残影或者界面卡死。最后加了一个“看板健康监测”:如果显示层检测到异常,会自动触发降级退出,并进入一个短暂的冷却时间,强行重置 UI 状态,避免设备死机。

4. 越用越准的“私人定制”纠错

通用的语音识别引擎经常听不懂技术黑话,比如把“API”识别成“A P I”或者乱码。我在 PC Agent 里加了个轻量级的“纠错中间件”:

  • 用户修正即学习:如果我把识别错的词手动改了,系统会记录这个错误。
  • 热词库:提前把项目名、技术术语丢进热词表。

用得越久,它对我的口癖和专业词汇识别就越准,这比单纯换个更贵的麦克风管用多了。

总结:这玩意儿到底值不值?

折腾这一圈下来,我的结论是:非常实用,特别是对于经常需要和电脑交互的人。

  • 写作者/自媒体:随时记录灵感,不需要切换窗口。
  • 程序员:写代码时和 AI 对话(比如问 Copilot 问题时),不用手停下键盘,直接按住说需求,效率提升感知极强。

它把“说话变文字”这件事,变成了一个纯粹的物理动作。没有蓝牙配对的心智负担,也没有软件界面的干扰,就是一个纯粹的、随时待命的“输入按钮”。

如果你也是个喜欢折腾桌面外设的极客,这个项目既涵盖了嵌入式开发,又涉及网络通信和 PC端交互,绝对是个练手的好题材。后续我还在继续优化它的功耗和多设备管理功能,争取把它做成桌面上永远不想拔掉的“常驻民”。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭