基于WTK6900P ESOP8离线语音的空气炸锅按键改造
空气炸锅这东西用起来是真香但站在灶台前手指沾着油、去按那排又小又硬的薄膜按键体验就有点一言难尽了。尤其是手上还端着烤篮的时候得放下盘子、擦手、再弯腰去戳面板一套动作走下来热乎劲儿都过了。这两年我断断续续改过好几台小家电从机械旋钮改到触控面板最省事的一次就是直接拿一颗离线语音芯片把原来的按键板整块顶替掉——不改主控固件、不动原机程序纯硬件层面的贴片替换。这篇记录的是上个月改的一台机械薄膜按键空气炸锅用的芯片是 WTK6900P封装 ESOP88 个脚。整个方案的核心思路很朴素空气炸锅主板认的是某个检测脚被拉低这个动作那我就让语音芯片在识别到口令之后输出一个电平去模拟这个拉低动作主板该干嘛干嘛它根本不知道是手指按的还是芯片按的。这种方式的好处是通用性极强只要你把原按键板的信号点测准了理论上任何按键式家电都能套用这个模板。适合看这篇的人有三类一是有一定焊接和万用表基础、想拿自家小家电练手的电子爱好者二是做小家电方案选型的硬件工程师想看看离线语音芯片在这种低算力、强噪声场景下的实际表现三是纯粹好奇语音控制到底是怎么塞进一个原本没这功能的东西里的动手派。全文会从信号结构拆解讲到焊接装配和噪声环境下的联调中间会穿插大量只有实际动手才会踩到的坑工具选型、参数计算、避坑点都会交代清楚。1. 先搞清楚要改的是什么空气炸锅按键板的信号结构改装这件事最怕的就是买回芯片就往里焊。我见过太多人一上来就问哪个脚接哪个脚结果连自己要替换的按键是上拉还是下拉都没搞明白最后要么误触发、要么干脆没反应。所以在动手之前花半小时把原机按键板的信号结构摸清楚是整件事性价比最高的投入。1.1 空气炸锅按键板的四种常见形态市面上几十块到几百块的空气炸锅拆开之后按键板基本跑不出下面这四种独立 IO 按键型主控单片机的一个引脚对应一个按键引脚内部或外部有上拉电阻按键另一端接地。按下去就是把这个脚拉低松开弹回高电平。这是中低端机型最常见的做法也是最容易改的一种。矩阵扫描型按键排成行列主控逐行输出扫描信号、逐列读回通过行列交叉定位按了哪个键。多见于按键数量多的机型比如带十几种预设菜单的。电阻分压型所有按键共用一根 ADC 采样线每个按键串一个不同阻值的电阻按下时产生不同的分压值主控靠读电压判断按了哪个键。这种机器只有一个信号脚接线最省事但模拟难度也最高。电容触摸型面板下面是感应铜箔靠电容变化检测。这种改起来最麻烦因为要模拟的是电容而不是电平得额外做处理。我这台机器拆开一看是典型的独立 IO 按键型主控旁边一排 10kΩ 的上拉排阻底下五个薄膜按键一端全部共地。看到这个结构我心里就有底了——这是最好改的一类。1.2 语音方案真正要对接到的是电平动作不是按键很多人对这件事有个误解以为语音芯片要去模拟手指按下去。其实不是。物理按键按下时电学上发生的事情只有一个两个原本断开的节点被短接。在这个电路里就是检测脚被短接到了地。所以你真正需要复现的动作是在某个时刻把一个节点拉到 0V保持几十到几百毫秒然后松开。至于这个动作是手指完成的还是三极管完成的主板根本分辨不出来。理解了这一点后面所有的电路设计就顺了。WTK6900P 的 IO 输出是数字电平直接接到主控检测脚上是不行的——它输出高电平的时候反而会给主控脚灌电流两个输出脚对着干轻则误动作重则烧引脚。正确的做法是用一个 NPN 三极管或者 N 沟道 MOS 管做下拉开关语音芯片输出高电平时三极管导通把检测脚拉到地等价于按键按下输出低电平时三极管截止检测脚被原来的上拉电阻拉回高电平等价于按键松开。注意如果你手上这台机器是比较新的型号主控的 IO 检测脚工作在 3.3V而语音芯片供电是 5V那三极管基极的限流电阻要重新算避免长期过驱。这个在后面的电平匹配小节会详细讲。2. 为什么是 WTK6900P ESOP8选型逻辑拆开讲选芯片这件事我一般按约束条件倒推的方式来。空气炸锅这个场景约束其实挺明确的空间小、噪声大、没有网络、供电只能从原板取、成本要压得住、最好免开发。2.1 离线语音识别的几个硬指标是否依赖网络。家用小家电里塞 WiFi 模块除了要配网、要联网、要处理断网降级还得考虑用户隐私和路由器兼容性。离线方案识别在本地完成没有这些麻烦响应也更快。这是我在小家电改装里优先选离线方案的主要原因。命令词数量。空气炸锅的功能其实不多开关、温度加减、时间加减、开始/暂停、几个预设模式。能稳定支持十几条命令词的芯片完全够用。响应延迟。从说完到动作行业里做得好的离线芯片能压到 1 秒以内体验上就是话音落、机器动不会有明显的等待感。如果延迟超过 1.5 秒用起来会很别扭。抗噪能力。空气炸锅工作时风扇噪声不小实测中距离麦克风 30cm 处大概在 55 到 65 分贝这个区间。芯片的降噪算法和麦克风选型决定了在这种背景下还能不能准确识别。2.2 ESOP8 封装带来的实际便利ESOP8 是一种 8 引脚的贴片封装本体尺寸大概在 5mm × 6mm 量级引脚间距 1.27mm。这个尺寸对改装项目来说简直是量身定做——它足够小能塞进按键板背面的缝隙里同时引脚间距又没小到 0.5mm 那种需要专业返修台的程度用普通尖头烙铁加一点助焊剂就能手工焊对学生党和业余爱好者很友好。更重要的是ESOP8 可以直接贴在一块邮票大小的小转接板上做成一个语音小板然后用飞线接到原按键板的焊点上。这样有个好处万一调试失败或者芯片坏了整块小板换掉就行不会伤到原机 PCB。2.3 几种改造路线的对比方案开发难度成本区间响应速度依赖网络适合人群成品智能插座/模块极低中依赖云端1-2秒是完全不想动手的通用语音模块 继电器低中低0.5-1秒否想快速出效果WTK6900P ESOP8 三极管中低0.5秒左右否有焊接基础的爱好者自己写 MCU 语音识别库高中取决于算法否嵌入式开发者我选第三行的原因很简单成品模块体积通常偏大塞不进空气炸锅的窄缝里自己撸 MCU 方案周期太长而且空气炸锅噪声环境下调识别率是个无底洞。WTK6900P 这类专用芯片把识别算法固化在内部你只管选词、烧录、接线中间的信号处理它全包了。3. 改装前的测绘把原按键板彻底摸清楚我吃过一次亏那次是给别人改一台杂牌机图省事没测信号就直接焊结果通电之后机器一直处于时间被按住的状态温度一路往上跑。后来才发现那台机器是低电平有效的矩阵键盘我接错行列了。从那以后测绘这一步我再也不跳。3.1 拆机与安全准备拆之前先把电源拔掉等至少 5 分钟。空气炸锅主板上有大容量电解电容断电瞬间还带着电直接上手容易麻一下。等一会儿再拆是最省事的做法。拆的过程里我会做三件事全程拍照。每一步拆之前拍一张螺丝放哪个孔、排线怎么走的、卡扣朝哪边全都拍下来。装回去的时候这就是说明书。排线标记。按键板到主板之间通常是一根 FPC 排线或者几根杜邦线拔之前用记号笔在插头上画一道线标出方向。螺丝分类。空气炸锅的螺丝长度不统一长短装反了会顶穿塑料壳。找几个小盒子按位置分开装。到这一步结束你手上应该有一块独立的按键板能平放在桌面上。3.2 判断按键类型的具体操作判断方法其实很简单用万用表就能搞定把万用表打到二极管档或者通断档红黑表笔分别接按键的两个焊盘。按下按键时如果表响说明是机械短接型。然后数一数按键板上有几个独立的网络如果每个按键都有一个独立的引脚通到排线那就是独立 IO 型如果你发现按键是排成几行几列的网格状走线每个按键两端分别接在行线和列线上就是矩阵型如果所有按键一端共地、另一端全部汇到同一根线上还配着几个贴片电阻大概率是电阻分压型。我这台机器的情况是五个按键每个按键两个脚其中一个脚全部连在一起通到排线的同一根地线另一根脚各自独立通向主控。典型的独立 IO 上拉型完美。3.3 需要记录的关键数据测绘阶段我建议把下面这些数据记在纸上或者手机备忘录里每个功能键对应的排线引脚编号从排线插头的第一个脚开始数第几脚对应开关、第几脚对应温度。每个检测脚的静态电压。通电后不按键用万用表量各检测脚对地的电压正常应该接近供电电压3.3V 或 5V。如果某个脚静态就是 0V说明它可能是低电平有效或者被别的电路拉住了要单独处理。按下时的电压。按下按键检测脚应该掉到接近 0V。如果只掉到 1V 左右说明上拉电阻偏大或者线路有压降。供电电压。量一下排线上有没有 5V 或者 3.3V 的供电脚这决定语音芯片的取电方案。经验提示排线上不一定有现成的电源脚。有些机器按键板只走信号线电源得从主板其他地方取。如果实在找不到可以考虑从空气炸锅的 USB 口如果有或者主板上的稳压输出取电但一定要先量清楚电压再决定别默认都是 5V。4. WTK6900P 的外围电路怎么搭芯片本体只是核心真正决定能不能用起来的是外围。ESOP8 这 8 个脚怎么分配直接决定了你的板子能做多小、接线能做多简洁。4.1 引脚功能与典型连接8 个引脚的典型分配大致是这样的不同批次固件可能有差异务必以手上芯片对应的规格书为准电源脚两个一个接 VDD一个接 GND。这两个脚旁边必须就近放一颗 0.1μF 的陶瓷退耦电容位置越靠近芯片越好超过 5mm 效果就打折了。麦克风输入两个分别接驻极体麦克风的正负端。麦克风那一端还需要一个偏置电阻从 VDD 拉过来供电阻值一般在 2.2kΩ 到 4.7kΩ 之间具体看麦克风规格。喇叭输出两个可以直接推一个小功率喇叭做语音提示比如已开机温度已调到180度这种反馈。这功能看起来锦上添花实际用起来体验提升很大后面会讲为什么。IO 输出两路用来驱动三极管去模拟按键。如果你只需要控制两个功能那两路 IO 刚好够用。我这台机器功能多所以用了两路 IO 配合模式切换的思路——一路负责切模式一路负责触发当前模式下的动作具体在命令词设计那节展开。4.2 麦克风电路的实际处理麦克风这块有个很容易被忽视的点驻极体麦克风是有极性的正负极接反了不会烧但灵敏度会掉一大截甚至在安静环境下都识别不了。判断方法是看麦克风背面有一圈金属外壳连着的那个焊盘通常是负极另一个通过绝缘垫片与外壳隔离的是正极。拿万用表量一下就能确认。偏置电阻的选择也有讲究。阻值太大麦克风工作电流不够输出信号弱阻值太小功耗上去了而且输出信号幅度可能过载。2.2kΩ 配 3.3V 供电或者 4.7kΩ 配 5V 供电是比较常见的组合。4.3 从哪取电怎么取空气炸锅主板上一般能找到 5V 的稳压输出给显示板或者继电器驱动供电。用万用表找一下主板上大电容旁边那颗三端稳压器输出脚大概率就是 5V。从那里飞一根线到你的语音小板是最稳妥的做法。如果实在找不到 5V退而求其次可以找 12V然后自己加一颗小型的降压芯片比如常见的 78L05 或者更高效的开关降压模块。但要注意空气炸锅内部空间紧凑加太多东西容易装不回去所以优先还是从主板上找现成的低压电源。取电的时候记得在电源线上串一个自恢复保险丝或者至少串一个几十欧姆的电阻限流。万一语音小板短路主板不会被拖下水。这是我吃过亏之后养成的习惯。4.4 电平匹配的关键计算前面提到过如果主板是 3.3V 逻辑而语音芯片是 5V 供电那 IO 输出高电平就是 5V。直接接三极管基极的话基极电流会偏大。算一笔账假设三极管基极-发射极导通压降是 0.7V你串一个 1kΩ 电阻那么基极电流 (5 - 0.7) / 1000 4.3mA。这个电流对一般的小信号三极管来说没问题但如果你用的是高放大倍数的管子可能就有点过驱了。更稳妥的做法是分两步先在 IO 输出和基极之间串 4.7kΩ 到 10kΩ 的电阻再在基极和地之间并一颗 10kΩ 的下拉电阻组成一个分压网络。这样即使 IO 输出 5V基极电压也只有 2.5V 左右既保证了可靠导通又不会过驱。这个细节看似繁琐但对于要长期通电工作的小家电来说稳定性差别是实打实的。5. 命令词设计与固件烧录硬件搭好只是骨架命令词设计得好不好直接决定用户用起来顺不顺手。我见过一些改装方案命令词设计得又长又绕说三遍才能识别一次用两天就吃灰了。5.1 上位机工具的基本流程WTK6900P 这类芯片一般配套一个 PC 端的上位机配置工具流程大同小异新建工程选择芯片型号和封装。这一步千万别选错不同型号的固件不通用。录入命令词。可以选择工具自带的发音人也可以自己录音。自带的发音人通常支持多音色识别率比较稳定自己录音的好处是可以做成家人熟悉的声音但要保证录音环境安静、发音清晰。配置每一条命令词对应的 IO 输出行为。这里可以设置成脉冲输出或者电平输出还能设定脉冲宽度。连接烧录器把固件写进芯片。烧录器一般是 USB 转串口的小板配合芯片厂商提供的专用线序连接。烧录完之后接上麦克风和喇叭在安静环境下先做基本测试确认每条命令都能正确触发。注意命令词录入时尽量选音节差异大的词。像加大和加点这种发音接近的在小喇叭、有噪声的环境下很容易混淆。选温度升高温度降低这种音节差异明显的识别率会稳很多。5.2 命令词设计的三条实操原则别用单字。有人图省事直接把命令词设成开关加减。单字识别在安静环境下还行一旦背景有风扇噪声准确率会断崖式下降。两个音节起步最好三到四个音节。保持词与词之间的距离。语音识别芯片内部是把声音转成特征序列再去匹配的词和词之间如果前两个音节一样后面的特征差异又小就容易混。像温度加和温度减前面完全一样只有最后一个音节不同这种在噪声下就很危险。改成调高温度调低温度把区分点提前效果会好很多。给反馈别让用户猜。语音控制最容易让人焦虑的地方是我说完了机器到底听没听懂所以一定要配上喇叭做语音反馈。识别到了就播一句好的已调到180度没识别到就播没听清请再说一遍。用户体验的差别是巨大的。5.3 IO 输出模式的选择工具里一般有脉冲和电平两种输出模式脉冲模式识别到命令后IO 输出一个固定宽度的脉冲比如 200ms然后自动恢复。这种模式适合模拟按键的短按。电平模式识别到之后 IO 翻转一次状态并保持直到下一次命令。这种适合做开关型的控制比如开机关机。空气炸锅的按键大多是瞬时触发型的所以主要用脉冲模式。唯一要注意的是脉冲宽度。太短了主板可能来不及采样太长了可能会被识别成长按。我实测下来150ms 到 300ms 这个区间对绝大多数主板都合适。如果遇到识别不稳定可以把脉冲拉长到 500ms 试试。6. 焊接装配的具体操作前面全是纸上功夫到了这一步才是真正见手上活的地方。ESOP8 手工焊接不算难但细节决定成败。6.1 转接板的制作我的做法是先做一块小转接板把 ESOP8 芯片焊在一块 15mm × 20mm 的万能板上周边留出焊盘把需要引出的信号电源、地、麦克风、IO都引到边上的焊盘。这样做的最大好处是麦克风和芯片之间的连线可以做得非常短。麦克风信号是模拟小信号走线过长容易引入噪声。经验上麦克风到芯片的距离尽量控制在 3cm 以内实在不行就换成带屏蔽的细线屏蔽层单端接地能明显改善底噪。6.2 焊接的先后顺序我一般按这个顺序来先焊芯片本体的 8 个脚用尖头烙铁每个脚少用一点锡焊完用放大镜检查有没有连锡。再焊退耦电容和偏置电阻位置尽量靠近芯片。然后焊麦克风引线。最后焊电源和信号线到主板的飞线。飞线用的是 30AWG 的细漆包线线径细、好走不容易把原本就紧凑的空间挤爆。焊完之后可以在焊点附近滴一点热熔胶固定防止机器工作时振动导致线头松动。6.3 装配与绝缘把语音小板塞进空气炸锅的时候要避开两个区域一是加热管附近那里温度高二是风扇正对的位置那里风噪大、振动强。我把它固定在了按键板背面的凹槽里用双面胶加一点热熔胶点固定。麦克风单独引出来粘在了机身侧面的一个小孔后面。这个位置的讲究是离人说话的位置近同时又远离风扇出风口。实际测下来这个位置识别率比把麦克风塞在机器内部高了将近三成。提醒如果麦克风开孔是直接在塑料壳上钻的孔不要太大3mm 左右即可。孔太大容易积灰也会让机器噪声更多地进入麦克风。可以在孔后面贴一小块防尘网布兼顾防尘和透声。7. 联调与问题排查实录装回去之后不要急着盖外壳先裸机通电测试。这一步测试的重点不是能不能识别而是识别之后机器有没有正确动作。7.1 常见问题速查表现象可能原因排查和处理说完命令完全没反应麦克风极性接反 / 未上电 / 固件未烧录成功先量芯片 VDD 是否有电再量麦克风偏置电压最后重烧固件机器一直处于某个功能触发状态IO 输出极性搞反 / 三极管接错检查三极管是 NPN 还是 PNPNPN 应该把负载拉到地识别率忽高忽低麦克风位置太靠近风扇 / 命令词太相似调整麦克风位置重新设计命令词说一句话触发两个动作脉冲宽度太长 / 命令词尾音相近缩短脉冲到 150ms换掉发音接近的词通电后主板不工作取电点选错 / 语音板短路拖垮电源断开语音板单独测主板确认后重新选取电点长时间工作后识别变差芯片发热 / 电源纹波增大检查退耦电容是否够近必要时增加 10μF 电解电容7.2 几个只有动手才知道的细节空气炸锅工作时测试才算数。我在安静环境调好的参数第一次开机器测的时候识别率直接腰斩。后来发现是风扇启动后底噪抬高了。解决办法是一开始就把风扇打开在实际噪声背景下调整麦克风的增益和命令词。环境不一样调出来的参数完全不一样。三极管的选型不要随便捡。我一开始用了一颗从旧板子上拆下来的贴片三极管导通电阻偏大导致拉低检测脚的时候电压只到 0.4V主板偶尔识别不到。换成常见的 S8050 之后问题消失。经验是要保证拉低电压低于主板判定阈值的 20% 以下一般要求低于 0.5V 才稳妥。电源线的走向会影响音质。有一次我把电源线和麦克风线捆在一起走结果喇叭里一直有滋滋的电流声识别率也下降。后来把两根线分开走电源线走一边、麦克风线走另一边问题就没了。小信号的走线原则在改装里同样适用。7.3 一个提升体验的小技巧如果芯片支持语音播报强烈建议加上。我自己用下来带播报的版本用户满意度完全不一样。原理很简单语音控制是盲操作用户看不到反馈心里没底。加上播报之后已开机温度180度定时10分钟这些信息实时反馈用户就知道自己的话被听懂了用起来踏实。播报的语速可以调快一点别拖沓1秒内说完最好。太长会打断下一次命令的接收。8. 后续可以继续扩展的方向这台机器改完之后用了一个多月稳定性还不错。后面我打算再试几个变体一是接入更多命令词把几个常用的预设模式比如烤鸡翅烤薯条都做成独立口令直接一句话进预设。这个的前提是命令词库够用不然容易和基础命令混。二是加一颗小的状态指示灯麦克风接收期间亮一下让用户知道它在听这个反馈在嘈杂环境里尤其实用。三是把整套东西做成标准模块把转接板直接画成 PCB尺寸做到能塞进大多数空气炸锅的按键板位置以后给别人改的时候直接替换不用每次现搭。说到底这类改装的价值不在技术本身有多高深而在于它能让你真切地感受到原厂没这功能和动手加上这功能之间的距离可能只是一颗 8 脚芯片和几个小时的时间。