充电桩这种设备,用户站在桩前操作,眼睛要么盯着手机扫码,要么盯着车上的充电口,桩上的指示灯和屏幕信息经常被略过。装一套语音,从插枪到拔枪每个节点说一句话,操作引导和故障警示就能第一时间传到用户耳朵里。做充电桩语音方案,WT2003H 是一个开发量和成本都压得住的选择,桩内主控 MCU 通过 UART 发指令就能控制播报,不需要外挂解码芯片,也不用碰音频底层的代码。
该方案的骨架很简单。一块 WT2003H,UART 串口接到桩内主控 MCU,喇叭直接接芯片的 SPK 输出。提示音在出厂前烧进 Flash,MCU 按充电状态发索引播放指令,让充电每个环节说该说的话。音频输出默认 SPK 直推,要接外部功放时发一条 B6 指令切到 DAC 输出,这条切换带掉电记忆,设置一次即可。
一、先定文案,再排索引
提示音文件按索引顺序存放在 Flash 里,索引顺序出厂前设定。所以语句清单要在烧录前定稿,一条对应一个索引。一份能落地的清单长这样。
| 索引 | 触发时机 | 提示语 | MCU 动作 |
| 001 | 待机轮播 | 请连接充电枪,扫码或刷卡启动充电 | A0 播 01 |
| 002 | 枪连接确认 | 充电枪连接成功,请启动充电 | A0 播 02 |
| 003 | 充电启动 | 充电已启动,请勿中途拔枪 | A0 播 03 |
| 004 | 充电中提醒 | 充电进行中,请勿触碰充电接口 | A0 播 04 |
| 005 | 充电完成 | 充电完成,请拔枪归位,感谢使用 | A0 播 05 |
| 006 | 结算结束 | 本次充电已结束,欢迎再次使用 | A0 播 06 |
| 007 | 故障告警 | 检测到异常,请立即停止操作 | 播放态用 B1 插播,空闲态用 A0 播 07 |
索引编号从 1 开始数,指令里发的是十六进制。第 300 首语音写成 0x012C,曲目高位 0x01,曲目低位 0x2C。第 67 首写成 0x43,曲目高位 0x00,曲目低位 0x43。曲目号超过 255 时才会用到高位字节,7 条提示音都在低位字节范围内。
二、播一条提示音,指令怎么发
A0 指令按索引播放,帧格式如下。
播放第 1 首(说明书示例)
发 → 7E 05 A0 00 01 A6 EF
收 ← 7E 04 A0 00 A4 EF
播放第 5 首(按同一规律推算)
发 → 7E 05 A0 00 05 AA EF
帧结构为起始码 7E、长度、命令 A0、曲目高位、曲目低位、校验码、结束码 EF。校验码等于从长度字节累加到最后一字节数据的低八位,拿说明书里每一条示例逐条验算,A0、AA、AB、AE、AF、B0、B1、C2 全部符合这个规律。MCU 里写一个按这个规律算校验的函数,所有指令通用。
MCU 怎么知道一条提示音播完了。发 C2 查询当前工作状态,返回 01 表示播放中,02 表示停止,03 表示暂停。等待返回 02,再触发下一条,提示音之间就不会互相截断。
查询工作状态
发 → 7E 03 C2 C5 EF
收 ← 7E 04 C2 02 C8 EF // 02 表示已停止,本条播完
三、故障告警要分两种情况
充电过程中的急停告警,用 B1 插播指令。它暂停当前曲目,插进告警语音,播完自动接回原来那句,全程不需要 MCU 记断点。发第 7 首告警音的指令如下。
插播第 7 首
发 → 7E 06 B1 00 00 07 BE EF
收 ← 7E 04 B1 00 B5 EF
用 B1 有两个前提要记住。第一,它只在播放状态下有效,芯片停着的时候发 B1 不会响。所以空闲态发生故障,直接用 A0 播第 7 首,走正常播放路径。第二,第一次插播没播完时,第二次 B1 会被丢弃。告警需要连续播报的场合,MCU 先查 C2,确认插播那段已经播完,再补发下一条。
四、音量和播放模式,产线上就要调好
室外充电桩环境噪声大,音量指令 AE 有 32 级,0 为静音,1F 即 31 级为最大。这条指令带掉电记忆,上电默认就是最大音量,产线调好后现场不用再动。
设为最大音量 31 级
发 → 7E 04 AE 1F D1 EF
播放模式用 AF 指令设,支持单曲不循环(默认)、单曲循环、全部循环、随机四种。这条指令没有掉电记忆,MCU 每次上电后要重新设一遍。比如充电中把安全提醒那条设成单曲循环反复播,充电结束后用 A0 切到完成提示,再改回默认模式。
五、上电时序和返码排错
芯片上电后 100ms 内完成内部初始化,接着 100 到 300ms 之间等待下载器升级握手。MCU 在上电 300ms 之后再发第一条指令,早于这个时间发的码会没有响应,这是产线调试时最常见的假故障。
指令发出去,芯片会带结果码回帧。00 表示执行成功。01 表示命令出错,通常是校验和算错,或者指令格式不对。02 表示无此文件,比如 Flash 里只有 7 条音频却发了索引 8,检查索引和烧录文件是否对得上。05 表示设备不在线,外挂 Flash 的版本要查 Flash 供电和走线。产线测试治具把这四个码都拦下来,基本能定位全部通信问题。
六、这套方案的边界
WT2003H 播的是烧录时定死的音频文件,适合固定话术。文案定稿后烧录,产线批量复制。如果运营方要经常改提示音,比如换活动话术、加多语言,可以看 M 系列里带模拟 U 盘功能的模组,USB 接上电脑出现盘符,拖拽文件就能换音,不用烧录器。
话术里有变量就不一样了。充电金额、电量度数、剩余时间、订单号,这些内容每个用户每次都不同,固定音频覆盖不了,就该换 TTS 方案。
七、备选方案,TTS 语音播报
需要播变量的场合,TTS 是顺理成章的备选。WT3000 系列 TTS 语音合成芯片把文本转成语音,MCU 把金额和度数拼成一句话发过去,芯片实时合成播出来。「本次充电 23 度,合计 41 元」这类播报,TTS 一条指令搞定,不用把所有数字组合都录成音频。代价是成本和功耗都会上一个台阶,纯引导场景用不上这些能力。
八、旗舰选型,WT3000A M 系列模块
用户在桩前不止听提示,还会提问。为什么充到百分之八十就停了,这一单怎么计费,我的车能不能用这把枪。固定音频和 TTS 都接不住这类问题,能接住的是 AI 语音交互。WT3000A M 系列模块按联网方式分 M06 WiFi、M08 4G 和 M07 AI PCBA 三个版本,麦克风收进用户的问题,经云端大模型理解后直接作答,答完可以继续追问。充电站要做出差异化体验,或者运营方要把客服电话的量压下来,这套是旗舰选型。桩端预算有限的项目,先用 WT2003H 把固定引导做扎实,后续按档位升级 TTS 或 AI 交互,三条产品线在同一套 MCU 框架下能平滑过渡。
九、选型速查
| 需求层级 | 适合产品 | 能力边界 |
| 固定提示音播报 | WT2003H | 引导、警示、完成提醒,成本最低 |
| 动态内容播报 | WT3000 系列 TTS 芯片 | 金额、电量、时间等变量实时合成 |
| AI 语音问答 | WT3000A M 系列模块 | 直接回答用户提问,支持多轮交互 |
参考来源
WT2003HX语音芯片UART通信资料 V1.15
