自己动手做智能音箱:从选板子到接入语音助手
自己动手做智能音箱:从选板子到接入语音助手|z35资讯网
去年我买了三个成品智能音箱,结果两个吃灰——一个只认自家平台的音乐,另一个答非所问。后来干脆自己攒了一台,前后花了大概三周,总成本280块。现在它每天帮我关灯、放播客、报天气,响应速度比买的成品还快一点。这篇就把整个流程说清楚,包括我踩过的坑。
先说个实在话:做智能音箱最难的不是硬件拼接,而是"唤醒词识别"和"语音转文字"这两步。硬件基本就是插排线拧螺丝的事,软件才是真正耗时间的地方。第一次做的人,八成会卡在软件上。

硬件怎么选,别一上来就买贵的
我第一版用的树莓派 4B,后来换成了 Zero 2 W。4B 功耗高、发热大,当音箱属于浪费。麦克风阵列才是关键,单麦克风放客厅根本听不清,我用的是 ReSpeaker 2-Mic Pi HAT,自带硬件回声消除,能一边放音乐一边听唤醒词。如果你只想做简单点的,ESP32-S3 加个 INMP441 麦克风也能跑,成本压到 60 块以内,但算力有限,语音识别基本得放云端。

- 主控:树莓派 Zero 2 W(约120元)或 ESP32-S3(约25元)
- 麦克风:ReSpeaker 2-Mic HAT,预算紧就上 INMP441
- 功放加喇叭:PAM8403 配 4Ω 3W 小喇叭,卧室够用
- 供电:5V 2A 电源,别用杂牌充电头,会干扰麦克风

软件部分:唤醒词和语音识别怎么落地
唤醒词我推荐 openWakeWord,开源、能在树莓派上跑,自己录几十句样本就能训一个自定义唤醒词。Snowboy 早就停止维护了,别再用。语音识别分两条路:本地用 Whisper.cpp,Zero 2 W 上跑 tiny 模型大概 1.5 秒出结果,慢是慢点但隐私好;云端接讯飞或百度,延迟 300 毫秒左右,免费额度个人用绰绰有余。我自己用了混合方案——简单指令走本地,复杂的走云端。
语音合成我用的 edge-tts,免费,音色比不少成品音箱自带的机械音自然。整条链路是这样的:麦克风听到唤醒词 → 录音 → 转文字 → 匹配意图 → 执行 → 播报,用 Python 串起来不到 200 行代码。要是懒得写,直接装 Home Assistant 也行,它现在自带语音助手管线,图形界面里点几下就配好了。
几个我实际踩过的坑
第一个坑是电流声。喇叭一放音,麦克风就嗡嗡响,折腾半天发现是供电共地的问题,给麦克风单独加了 LC 滤波才压下去。第二个坑是误唤醒,刚做好那阵子一天触发十几次,后来把阈值从 0.5 调到 0.7,又把电视声音录进去做负样本重训,才降到一天一两次。第三个坑是延迟,一开始整条链路要走 3 秒以上,说话完半天没反应,后来加了静音检测的录音截断,说完立刻停录,压到了 1 秒出头。
如果你不追求折腾,只想低成本用上语音控制,我建议先拿 ESP32 加云端方案试水,几十块钱,一晚上能跑通。等确认自己真会天天用,再升级麦克风阵列和本地识别。DIY 智能音箱最大的价值其实不是省钱,是数据握在自己手里,也不用被哪个平台的会员绑住。