做桌面语音机器人,最常见的误区是"先选个炫的芯片"。
实际顺序应该反过来:先定语音链路要多快,再决定硬件。 因为语音交互的体验瓶颈不在算力,在延迟。
一、为什么选 ESP32-S3
| 方案 | 优点 | 问题 |
|---|---|---|
| 树莓派 / Linux 板 | 算力强、生态全 | 成本高、功耗大、开机慢(30 秒起) |
| ESP32 经典款 | 便宜、生态成熟 | 内存小,跑语音+屏幕吃力 |
| ESP32-S3 | 带 AI 指令、PSRAM 可扩、支持向量运算 | 需要自己处理内存分配 |
| 专用语音芯片 | 唤醒词延迟极低 | 不灵活,改需求要换芯片 |
选 S3 的三个理由:
- 能跑完整语音链路:录音、编码、联网、解码播放,单芯片搞定
- 开机快:从通电到能对话,通常几秒(Linux 方案要几十秒)
- 成本可控:整机物料能压到消费级价位,这是能不能量产的前提
二、硬件构成
| 模块 | 作用 | 选型注意 |
|---|---|---|
| 主控 | ESP32-S3,带 PSRAM | PSRAM 必须有,音频缓冲和屏幕显存都靠它 |
| 麦克风 | 拾音 | 单麦够用;要做远场(3 米外)得上麦克风阵列 |
| 功放 + 喇叭 | 放音 | 小腔体音质有限,别指望 HiFi |
| 屏幕 | 表情显示 | SPI 接口的圆屏/方屏都行,刷新率够用即可 |
| 供电 | 5V 输入 | 喇叭瞬态电流大,电源要留余量,否则会重启 |
| 外壳 | 结构 | 白壳黑屏是外观选择,关键是开孔位置(麦克风孔、喇叭孔) |
踩过的坑:喇叭一响就重启,查了半天是电源余量不够。功放峰值电流比标称大得多,电源至少要留 50% 余量。
三、软件栈
我们基于开源「小智」固件做二次开发,不是从零写。理由很实际:语音链路的坑太多,从零踩一遍要几个月。
| 层 | 做什么 | 我们的改动 |
|---|---|---|
| 固件框架 | 任务调度、Wi-Fi、音频驱动 | 基本沿用 |
| 唤醒 | 本地关键词检测 | 改唤醒词与灵敏度 |
| 语音识别 | 录音上传 → ASR | 接自己的服务端 |
| 对话 | LLM 生成回复 | 接飞创 AI 平台或本地模型 |
| 语音合成 | TTS 播报 | 选中文音色 |
| 表情 | 屏幕动画 | 自己写的表情状态机 |
四、语音闭环的五个阶段
完整流程是这样,每一段都有延迟:
- 唤醒(本地,几十到几百毫秒)——关键词检测,不上云
- 录音(用户说话时长)——要有静音检测,否则一直录
- 识别(上传 + ASR,通常 0.5—1.5 秒)——网络质量影响最明显
- 生成(LLM 首字延迟)——流式输出能显著改善体感
- 合成 + 播放(TTS 首包 + 播放)——边合成边播,别等整段
体验的关键不是总时长,是"开始响应"的时间。 用户说完话后 1 秒内要有反馈(哪怕是"嗯,我想想"),否则会觉得机器没反应。
做法:识别完立刻播一个短提示音或表情变化,把等待时间"填"掉。这比优化模型延迟更有效。
五、屏幕表情怎么驱动
不用视频,用状态机 + 逐帧绘制。
| 状态 | 视觉 | 触发 |
|---|---|---|
| 待机 | 缓慢眨眼 | 无交互 |
| 聆听 | 眼睛放大、轻微脉动 | 检测到人声 |
| 思考 | 眼睛看向一侧、转圈 | 等待模型回复 |
| 回应 | 跟随音量起伏 | 播放语音 |
| 出错 | 眼睛变暗、短暂闭合 | 网络失败等 |
实现上就是一个状态变量 + 定时器,每帧根据状态算眼睛的圆心、半径、开合度。不需要复杂引擎。
六、免焊接怎么做
"免焊接"不是为了省事,是为了可复制。
- 主控用开发板(自带 USB 与稳压),不用自己画板贴片
- 麦克风、功放用现成模块,杜邦线/排线连接
- 屏幕用排线座,不焊排针
- 外壳用 3D 打印或现成壳体,开孔对位
好处:样品迭代从"等两周打板"变成"当天改完当天试"。小团队做硬件,速度就是生命。
七、踩过的五个坑
1. 音频回环(啸叫)
喇叭声音被麦克风收到,形成循环。解决:硬件上做物理隔离(麦克风远离喇叭、加隔音棉),软件上做回声消除(AEC)。
2. 电源瞬态导致重启
前面说过,功放峰值电流大。解决:电源余量 + 大电容缓冲。
3. 唤醒误触发
灵敏度调高,电视声音也能唤醒;调低,正常说话又叫不醒。解决:先用默认值跑一段真实环境,再按实际误触率微调,别在办公室里调。
4. 断网就废
纯云端方案,断网等于砖头。解决:本地保留唤醒 + 基础应答("网络好像断了"),至少不装死。
5. 屏幕刷新拖慢语音
表情动画占 CPU,导致录音丢帧。解决:表情降帧(15fps 够用),音频任务优先级最高。
八、成本构成(不含具体金额)
影响成本的四项,按影响从大到小:
- 屏幕——尺寸和分辨率差异最明显,圆屏通常比同尺寸方屏贵
- 结构件——3D 打印小批量便宜,开模贵(几千到几万,看腔体复杂度)
- 麦克风方案——单麦 vs 阵列,差一个量级
- 组装工时——免焊接降低门槛,但人工装配仍是大头
原型机和小批量不是一个成本量级。有人问"多少钱一台",我们通常反问"你要几台、什么场景"——这两个答案决定成本结构。
九、这套方案能复用到哪
| 场景 | 要改什么 |
|---|---|
| 桌面陪伴 | 基本不用改,调人设与音色 |
| 展厅讲解 | 接知识库,加唤醒词定制,音量调大 |
| 教学套件 | 开放调试接口,做课程配套文档 |
| 养老陪伴 | 加大音量、简化交互、加紧急呼叫 |
| 二次开发平台 | 开放 API 与固件源码,做开发者文档 |
十、一句话总结
语音机器人的门槛不在"能不能说话",在延迟、误唤醒、断网这三件事。
把这三个磨平,剩下的都是外观和话术问题。
RELATED · 相关阅读
- 4B 模型到 90% — 本地模型接入
- 官网验收 12 项 — 交付与验收