前阵子一个做智能门铃的客户把需求拍在桌上一节CR2032纽扣电池语音提示加按键对讲整机续航不能低于两年。拿到手一看他原来的方案芯片手册上写着休眠电流只有几个微安照理说完全够用结果实测整机待机电流比手册高了一个数量级电池半年就见底。问题出在哪我后面专门花了大半个月做了一轮低功耗语音芯片长续航场景适配的横评把市面上几条主流技术路线的方案全部拉出来统一跑了一遍。这篇就是整个横评的过程记录包含测试方法、实测数据、场景适配结论以及那些不亲自测试根本发现不了的坑。先说清楚一个概念这篇横评比的是“长续航场景适配能力”不是单纯比谁家的待机电流数值漂亮。低功耗是芯片的瞬时属性长续航则是芯片加外围加软件策略组合后的系统结果。一颗芯片待机能做到1uA但如果唤醒策略不合理、外设没关干净、VAD误唤率高整机续航照样崩。所以我没有按传统的“跑分式横评”来做而是把参测方案放进四个典型长续航场景里用统一的功耗预算公式去检验适配度。为了避免给个别芯片型号烙上“绝对优劣”的标签下面对具体方案用代号描述想选型的朋友可以按技术路线对号入座。毕竟同一颗芯片在不同的外围电路和固件策略下表现能差出两三倍。1. 长续航不等于低功耗语音产品的功耗账从哪几笔开始算1.1 语音链路各环节的功耗构成拿到一颗语音芯片先别急着看那个最醒目的“待机电流”参数。完整语音产品的工作状态大概分成五段待机、唤醒、识别/处理、播放、通信。每一段的功耗量级完全不同对续航的影响权重也不同。待机状态是时间占比最长的通常一天里99%以上的时间都在这里。待机又分几个深度纯掉电模式只有IO唤醒和RTC在工作通常能做到0.5uA到2uA保留SRAM和部分外设的浅睡眠大概2uA到8uA如果开启麦克风VAD语音活动检测做常听那电流直接跳到几十到几百微安。很多人只看“待机xx uA”就下单却没问清楚这个待机到底是哪一档。唤醒链路是第二笔账。按键或GPIO唤醒本身不耗电但唤醒后系统启动、电源稳定、固件初始化这个过程会产生一次电流脉冲。VAD或关键词唤醒则是持续性的音频前端和DSP核心一直工作功耗从几十uA到几mA不等。识别阶段功耗更高双核MCU加DSP跑起来典型在10mA到50mA这个区间。播放是瞬时大户一颗普通喇叭功放0.5W输出功率下从3.7V电池取电电流能到100mA以上。如果加了BLE或者Wi-Fi模块通信平均电流又是另一笔账。1.2 一个反直觉的结论播放功耗往往不是续航杀手很多人直觉认为语音产品费电是因为经常播放语音。算一笔账就明白了。假设一个设备每天播放10次每次播报3秒播放电流150mA。一天下来播放消耗的电量是150mA乘以30秒等于4500毫安秒换算成毫安时只有1.25mAh。一年365天累计也就456mAh对一颗1000mAh以上的锂电池来说只占到不到一半。真正吃掉续航的是那种“看起来很小但是从不关断”的电流。比如说VAD常听模式如果电流是100uA一天就是2.4mAh一年876mAh直接就能把纽扣电池掏空。再比如说外设漏电三五个微安的漏电流藏在系统里一年就是几十毫安时。所以横评的核心我放在了待机策略与唤醒策略的适配性上而不是谁家喇叭声音大。1.3 这次横评想回答的三个问题抛开厂商的营销话术我做这轮横评之前给自己列了三个必须回答的问题第一各个方案手册上的低功耗参数在真实产品形态下能保留几成第二不同长续航场景纽扣电池、锂电池、能量采集、BLE常连各自应该匹配什么样的功耗策略第三有哪些坑是手册上不会写、但装进产品就现原形的。这三个问题贯穿了后面所有测试项目和场景计算。2. 横评怎么测参测路线、测试工装与功耗采集方法2.1 参测方案怎么定三条技术路线的代表组合我选参测方案时没有把市面上几十颗芯片全拉进来而是按技术路线选了有代表性的组合。当前低功耗语音产品基本就三条路。第一条是单芯片离线语音识别SoC路线典型架构是MCU加DSP有的还带轻量NPU核把语音唤醒、识别、播放全部集成在一颗芯片里。这种方案的优点是外围简单、开发快缺点是集成度高睡眠时想要把所有模拟前端和DSP电源域全关掉寄存器配置比较考验工程师。第二条是低功耗MCU加离线语音模组组合比如HC32L196这类Cortex-M0超低功耗MCU外挂一颗语音识别模组。MCU负责主控和低功耗待机语音模组平时可以完全断电需要时才通过MOS管或负载开关供电。这条路线最大的好处是系统待机电流能做到极低因为待机时语音模组一点电都不吃。第三条是BLE SoC加语音编解码方案比如沁恒CH579这类集成2.4G无线和MCU的芯片负责BLE通信和播放控制语音部分靠外挂解码或直接在MCU里做简单PCM播放。这条路线适合需要手机联动、APP配置的长续航产品。另外我还放了一个用STC15W408AS这类8位机做控制的方案进对照组。不是说它不好而是它的低功耗能力确实不是强项在极简系统里能用但长续航场景我不推荐放进来是为了看看传统方案和专用低功耗方案的真实差距。2.2 测量工装与接线测uA电流比测mA难度高一个量级测试功耗最怕的是测量设备本身影响被测电路。我搭了一套比较基础的工装待机小电流用6.5位台式万用表的uA档串联供电回路配合数据记录功能连续记录24小时瞬态大电流用示波器加电流探头抓波形另外准备了一台Joulescope做长时间平均功耗跟踪它的电流分辨率能到纳安级别而且带电压钳位不容易把芯片打死。接线方式也很有讲究。测量小电流时要避免把万用表直接串在电源入口测“整机电流”因为板子上如果有LED指示灯、分压电阻或者LDO的静态功耗这些都会混进来。我的做法是用DC Power Supply设置成3.7V给整板供电在供电入口串一个精密采样电阻用示波器差分探头测电阻两端压差换算电流。这样既能看平均电流又能抓到唤醒瞬间的尖峰。同时把万用表并联在电池座位置用来校准长时段的平均电流。待机电流测量还有个容易忽视的问题如果你的万用表本身内阻比较大在uA档串进回路时会产生压降导致芯片实际供电电压偏低进入低功耗模式反而测出不正常的电流。所以我在测试前会先用台式万用表的电压挡确认芯片电源脚电压仍然在规格范围内。2.3 测试用例设计让每颗芯片跑完同一套“标准动作”横评最怕测试条件不一致。我给所有参测方案统一刷了同一套逻辑的测试固件模拟一条典型的语音提示产品工作流平时待机按一下按键唤醒播报一条2秒提示音然后重新进入待机。在此基础上额外加了两组场景用例一组是开启VAD常听让芯片自己检测环境声音另一组是BLE常连固定连接间隔和从机延迟。播放条件也做了统一全部使用8欧姆0.5W喇叭通过声压计把播报音量校准到70dB30cmDAC增益和功放配置按各自方案的推荐值设置。温度控制在25摄氏度恒温环境避免温度对漏电流造成干扰。这套用例跑下来每个方案至少连续记录72小时取中间稳定段做分析。我特意不建议只测几分钟因为很多芯片进入深度睡眠需要时间热机状态和冷却状态的漏电也不一样短时间测量得到的“待机电流”往往是虚低的。2.4 数据处理中位数比平均值更有参考价值功耗数据最怕的是被“平均值”骗了。比方说VAD常听模式下大部分时间电流是80uA但偶尔识别到疑似语音会跳到2mA持续几百毫秒平均值一下就被拉高了。这种瞬态大电流对纽扣电池的伤害远大于对锂电的影响单看平均值根本发现不了。我的习惯是先看三段数据峰值电流、P50中位电流、P95电流。中位数代表稳态功耗P95代表日常最差情况峰值则用来评估电池电压跌落和选型余量。后面要列的数据表格里也都是按这个口径整理的。3. 数据拆解掉电待机、VAD常听、播放大电流的真实表现3.1 三档待机的实测区间先说结论不同方案在掉电模式下普遍能跑到0.5uA到2uA这个层面各家差距不大因为保留的电路模块都差不多也就是RTC加几个唤醒IO。到了保留SRAM和快速唤醒的浅睡眠模式差距就开始拉开好一点的能压到3uA以内差的会跑到8uA以上主要差在内部LDO的静态功耗和Flash是否进入深度掉电。VAD常听这一档才是真正拉开差距的地方。离线语音识别SoC里做得好的能控制在60uA到150uA做得一般的直接到300uA而外挂语音模组的组合方案如果MCU不参与VAD只靠模组常听整机待机反而会超过500uA。这个数据很关键因为很多产品经理想当然地认为“加了语音唤醒功能还能保持长续航”实际上VAD常听和长续航是天然的矛盾选型时必须二选一或者加运动传感器兜底。3.2 唤醒链路与响应速度VAD和GPIO不是一回事GPIO按键唤醒是所有方案都能轻松做到的基础功能唤醒时间通常在0.1ms到1ms量级从睡眠到开始播报大概在50ms到200ms之间主要耗在系统时钟稳定和DSP初始化上。这个速度对门铃、玩具、家电提示场景完全够用体验上没有卡顿感。VAD唤醒就完全不一样了。芯片要持续采集音频用算法判断环境音量变化或者特定唤醒词这个判断需要积累音频帧响应时间普遍在0.5秒到2秒。别小看这1秒多在遥控器、对讲机这类需要“按下就说”的产品里体验会很差。更麻烦的是VAD的误唤醒率我在测试里试图用录制的电视声、敲门声、厨房噪声去触发好的方案能做到一晚上误触发几次差的方案每小时误触发十几次。误唤醒的代价不只是打扰用户每一次误唤都在消耗播放功耗这个后面会算账。3.3 播放与识别的瞬时大电流峰值背后的平均功耗播放状态下电流波形能看出不少门道。测试的0.5W输出场景下大部分方案的瞬时电流在100mA到180mA持续时间等于语音播报长度。有意思的是波形上升沿部分方案在功放启动瞬间有明显的过冲尖峰比稳态电流高出一倍还多这个尖峰在旧电池方案里能直接触发欠压复位。识别阶段的功耗和芯片架构关系很大。纯MCU加DSP的方案识别电流在20mA到40mA区间带了NPU加速的芯片可以把同样识别任务压到15mA左右但NPU本身在待机时不能完全掉电又会吃掉一点睡眠电流。这两者的取舍没有绝对优劣看产品每天识别多少次。3.4 三档状态的典型数据区间状态典型电流区间主要影响因素掉电待机仅IORTC0.5uA - 2uA芯片工艺、内部LDO泄漏浅睡眠保留SRAM2uA - 8uA内存保持电压、外部FlashVAD常听60uA - 300uA模拟前端、DSP工作频率关键词识别15mA - 40mA是否带NPU、算法复杂度0.5W播放100mA - 180mA功放效率、喇叭阻抗BLE连接平均5uA - 15mA连接间隔、从机延迟、收发功耗需要特别说明的是这组数据是温度25度下的结果。温度降到0度VAD常听电流会略微上升电池容量却可能跌到标称的70%左右低温场景的实际续航衰减远超过芯片自身的数据变化。4. 四类长续航场景的功耗预算从纽扣电池到能量采集4.1 纽扣电池场景容量小到不允许“常听”拿CR2032来做整机供电的产品比如门磁传感器、小型门铃、智能标签可用容量大约在180mAh到225mAh考虑到低温降额和电池自放电实际能用的按150mAh到180mAh估算比较稳妥。这样的容量预算下整机平均电流的上限大约就是每天0.15mAh到0.25mAh。算一笔最基础的账整机待机3uA一天消耗0.072mAh一年26.3mAh。如果待机电流是10uA一年87.6mAh两年就把电池吃光了。如果把VAD常听加进去哪怕只有60uA一年消耗525mAh一颗CR2032几个月就废了。所以纽扣电池语音产品只有两条路要么纯GPIO唤醒待机控制在3uA以内要么用运动传感器做兜底平时深度睡眠移动后再启动语音功能。指望VAD常听还保持两年续航数学上就不成立。这类产品在选型时还要特别注意“上电瞬间”的电流表现。纽扣电池内阻大小电流唤醒瞬态可能拉低电压如果芯片唤醒时需要同时对Flash供电、启动DCDC容易造成电压跌落到复位阈值。我测过阈值设计合理的方案和设计激进的方案同款电池下寿命差距能到30%。4.2 锂电语音遥控器与小音箱播放占空比才是大头锂电池产品看着容量大但用户使用频次也高真正的功耗大头往往是播放。以1500mAh的锂电遥控器为例假设每天播报20次每次3秒播放电流150mA一天播放能耗是9000毫安秒等于2.5mAh一年约912mAh。加上待机每天0.5mAh一年182mAh总能耗大概1100mAh正好把1500mAh电池吃干。所以锂电产品优化续航重点不是把待机从5uA压到3uA而是减少播报时长、减小音量、提高功放效率。锂电场景我比较推荐单芯片离线语音SoC因为它的集成度高播放链路更紧凑功放电源可以直接由芯片管理整个播放过程不需要额外MCU介入。相比之下MCU加语音模组方案在播放时需要MCU和模组同时工作反而多一份主控功耗。4.3 能量采集节点静态电流要低到能“放下”MCU这个场景是这几年开始变多的太阳能加超级电容或者微型振动发电给传感器节点供电偶尔播报一次。能量采集的功率极不稳定晴天可能几十毫瓦阴天可能只有几毫瓦系统需要靠大电容储能工作方式是“充满才开机用完再充”。这类系统对静态电流的要求比纽扣电池还苛刻。因为超容会自放电MCU的静态电流从1uA升到5uA可能就决定了节点是“一天工作几次”还是“三天都充不满”。语音芯片在这种场景里基本没法承担常开任务更合理的做法是MCU用HC32L196这类宣称“静态功耗极低”的芯片做值班语音模组用MOS管彻底断电只在需要播放时给语音芯片上电。能量采集节点还有一个被忽略的参数上电速率。有些语音SoC上电需要几十毫秒初始化有些需要一百多毫秒听起来差别不大但在电容供电场景里每多十毫秒就多耗一截储能也更容易在初始化中途被欠压打断。选型时我会优先看上电快、对电源纹波容忍度高的方案。4.4 BLE常连语音提示设备连接事件的隐形消耗BLE语音产品是这次横评里最出乎我意料的场景比如带手机配置的智能提示器、语音找物标签。BLE芯片本身的连接电流控制已经很成熟关键是连接参数。连接间隔100ms时芯片基本一直处于半工作状态平均电流轻松到10mA以上间隔拉到1秒并开启从机延迟平均电流能掉到2mA以下如果允许进入广播模式再按需连接空闲电流能到uA级别。但语音播放碰到BLE就有个联动问题播放时Flash要读音频文件芯片要解码BLE要保持连接事件三者叠在一起瞬时电流是播放电流加上射频收发电流峰值可以到200mA以上。这对供电走线宽度和电容余量都有要求。方案选型时我会把“BLE空闲电流”和“播放时总电流”分开评估而不是只看BLE芯片手册上的连接平均电流。5. 横评踩坑记录标称待机电流和实际产品相差数倍的五个根因5.1 坑一外设没进低功耗模式芯片睡了外设没睡这是最经典的“伪待机”。很多语音模组在芯片进入睡眠时外部SPI Flash还处于普通读模式或者仍被拉高片选。一颗Flash普通模式电流就有3mA到8mA就算进了深度掉电模式大部分也能压到1uA到5uA但前提是固件里明确发送了掉电指令。我测试时发现很多方案商的Demo固件根本没做这一步睡眠电流虚高几十倍。排查思路很简单但容易忽略先把芯片和外设的供电回路分开用万用表逐路测每个模块的电流。我在工装里加了一排跳线就是为了能快速断开Flash、麦克风、功放的供电逐个定位漏电源头。5.2 坑二IO悬空漏电万用表都指不出具体位置IO口悬空导致漏电是最难查的问题之一。芯片进入睡眠后未使用的GPIO如果被配置成高阻输入外部又没有上下拉引脚电位会漂移到中间区域输入端缓冲器形成从电源到地的直流通路一个脚就能漏几微安到十几微安。一颗几十脚的芯片光IO悬空漏电就能吃掉待机预算。经验做法是固件初始化时把所有未用IO统一设置为输出低电平或者外部加上下拉电阻。但下拉电阻本身也耗电阻值选100k以上才不至于反向影响待机。这个细节方案商很少提醒产品量产时才暴露。5.3 坑三电压跌落导致复位旧电池和功放burst的组合拳测试里有一组方案让我印象很深新电池状态下一切正常换上内阻大的旧电池每次播报开头都会出现一个几十毫秒的电压跌落窗口芯片直接复位。原理很简单功放启动瞬间拉走100mA以上的电流电池内阻又大端电压被拉到复位阈值以下。解决思路有好几层硬件上把功放的供电脚和芯片供电脚分开输出端加软启动固件上在播报前先给电源管理寄存器做一次“强制升压”更省事的办法是选在低电压复位阈值上留足余量的芯片。横评数据里同一颗功放在不同芯片配套方案上的复位概率差别很大问题不在功放在于芯片自己的欠压检测电路设计。5.4 坑四误唤醒比待机电流更耗电一小时误唤一次就多了几十uA误唤醒的功耗成本很多人没算过。假设一次误唤醒后系统会进入识别状态2秒播放1秒提示音那电流大概是40mA加150mA各持续一段时间折算到一次误唤醒平均带走0.06mAh。如果每小时误唤醒一次一天就是1.4mAh相当于在3uA待机基础上平白多了58uA的等效平均电流。换句话说一个产品VAD做得不准相当于待机电流直接从几uA飙升到几十uA。横评中对误唤醒的测试我特意用了双麦克风阵列和单麦克风的方案对比。双麦方案在降噪和误唤醒抑制上有明显优势但代价是常听电流翻倍这一进一出是否划算完全取决于产品的使用环境噪声复杂程度。5.5 坑五批次与温度离散同一型号两批货状态差很多低功耗芯片的漏电流和VAD阈值在不同批次之间有明显离散。我在测试中用到同一型号的两批样片一批VAD常听稳定在80uA另一批就跑到140uA。温度影响更明显从25度到0度部分方案的VAD触发阈值发生漂移误唤醒率升高而电池容量也在降双重夹击下冬天续航直接减半。这个坑对研发的启示是不要在工程样片阶段就把功耗指标算得太满。量产留出至少30%的功耗余量同时在做整机耐久测试时用低温环境跑一轮比在常温下反复调参有效得多。6. 选型结论按产品形态匹配方案而不是按芯片参数表选型6.1 三条技术路线的优缺点和适用边界用一张表把这轮横评的三条路线收拢一下。路线代表架构长续航优势主要短板适合场景单芯片离线语音SoCMCUDSP可选NPU集成度高播放链路简洁VAD常听功耗普遍偏大锂电小音箱、家电语音面板低功耗MCU语音模组HC32L196类MCU外挂模组待机可做到极低按需唤醒模组断电/上电时序复杂纽扣电池门铃、传感器节点BLE SoC语音编解码CH579类芯片无线连接和语音兼顾瞬时电流叠加高调试难度大语音找物标签、手机联动设备从长续航角度纯纽扣电池产品我首选第二路线用低功耗MCU值班语音模组彻底断电。锂电产品第一路线体验最好开发效率也高。需要BLE联动又要求低功耗的第三路线可做但要做好播放时电流叠加的电源设计。6.2 长续航场景的选型决策逻辑我自己的决策顺序是这样的第一步看电池类型纽扣电池直接排除VAD常听方案锂电则可以接受第二步看是否需要常听唤醒需要的话重点测误唤醒率备好双麦方案第三步看是否要无线连接要BLE就得上BLE SoC路线或单芯片加BLE组合这时功耗模型要单独按连接事件计算第四步看播放频次高频播放优先选功放效率高、支持D类功放直驱的芯片低频播放则不用过分纠结播放电流。这个过程没有标准答案但对每个具体产品形态基本能缩小到一到两个候选方案。之后再用手里的功耗预算公式去验算而不是拿芯片手册互相对数。6.3 算完功耗之后的几点个人判断这一轮测下来我最大的感受是行业正在往两个方向分化一个方向是把VAD常听电流继续做低用更先进的制程和更细的电源域管理让“随时能对话”和“长续航”尽量共存另一个方向是干脆放弃常听用运动传感器、按键、BLE事件做低功耗唤醒兜底把语音模组做成完全按需供电的功能模块。第二个方向在实战中更稳妥也是我目前给大多数客户推荐的做法。如果手上正好要做低功耗语音产品我的建议是先别急着选芯片花几百块搭一个最小功耗测试台一块电流记录仪、一个示波器电流探头、几块样片加上标准喇叭把待机、唤醒、播放三段电流测出来代入自己的电池容量和用户使用频次里算一算。手册上的“超低功耗”只是起点真正决定续航的是你在产品里怎么用这颗芯片以及有没有把那些藏在角落里的漏电路堵死。