蓝牙音箱想加语音点歌,方案商最常问的问题是能不能点歌名。这里要分清楚两件事。上下一首、音量大一点、暂停,这些是固定指令。来首周杰伦的老歌,这个就不是固定指令了,它需要理解语义,再去曲库里找。
大多数方案只做了前一半。加一颗离线语音芯片,固定指令能识别,点歌名就哑了,因为离线词条的容量放不下几十万首歌名,用户的说法也千变万化。另一些方案反过来,什么都丢云端,延迟一两秒,没网就废。
离在线点歌的关键是把两层拆开,各干各的。WT2606A 负责本地这层,APE、FLAC 无损解码和离线识别在同一颗芯片内完成。云端那层由蓝牙音箱原有的联网通道承担,做模糊点歌和曲库检索。本地管快和断网可用,云端管懂和曲库全。
一、离在线怎么分工
第一层本地即时响应。上一首、下一首、暂停、播放、音量大、音量小这类固定指令,全部固化成离线词条,WT2606A 在片内直接识别。识别到就执行,不联网、不等待,说完音乐就切了。这一层的响应延迟是毫秒级,实测体感就是话音刚落歌就变了。
第二层云端模糊点歌。用户说的是歌名、歌手、风格、年代,比如来一首王菲、放点适合睡觉的、上周那首很火的,这些不是固定词条。音箱主控把语音转成的文本经原有 Wi-Fi 或蓝牙通道送到云端,云端做语义理解和曲库检索,返回具体曲目再由本地播放。曲库可以做到几十万首,用户怎么描述都能被理解。
两层之间要有明确的入口划分。能固化进离线词条的,绝对不走云端,响应快、不耗流量、断网可用。只能靠理解的,才走云端。这样设计还有一个隐藏好处,云端的调用量下来了,账号和带宽成本都省。
二、硬件设计怎么搭
整体架构是一主一辅。主的那颗 WT2606A 既是解码器又是识别器,辅的是联网通道。
音源从哪来。蓝牙模块把手机的音乐推流送进来,芯片内部解码成模拟音频。要放本地无损曲库就外接 SD 卡,芯片的 SD_CLK、SD_CMD、SD_DAT 三个脚就是给 SD 卡用的,另有 VDD_SD 供电脚。4MB 内置 SPI FLASH 放不下无损曲库,量产音源一定要走 SD 卡或外挂存储。
音频怎么出。芯片有 DACL 脚,左声道音频输出,走单端。差分输出要用独立的 L、R 两路,规格书里差分输出摆幅 1 伏有效值,单端 520 毫伏有效值。差分比单端动态范围宽 6 分贝,接差分输入的功放能多榨出一点动态,代价是走线要成对、功放要支持差分。
两个串口怎么用。这是个容易被忽略的设计点。WT2606A 有 RX1、TX1 和 RX2、TX2 两组串口。建议把一组给主控做控制指令,另一组专门给联网通道做数据流。分成两组的好处是云端返回的数据流不会和本地控制指令抢同一根总线,点歌时的数据吞吐和控制响应的时序不会互相干扰。
麦克风。支持驻极体麦克风,规格书推荐的型号是 JMO-627BA283R-10TC38。MIC1+、MIC2+ 接咪头,MICLDO 供电。要差分拾音就把 MIC1+ 和 MIC2+ 组成一对差分输入。
电源。VCC42 输入范围 2.2 至 4.5 伏,典型 3.7 伏。内部有 DC-DC,DC_SW 脚外接电感。VOUT 是内部 LDO 输出,典型 3.0 伏,负载能力 200 毫安,规格书明确要求接 106 电容到地。VCC18 和 VREG 也各接电容到地,这几个脚漏了会不稳定。
封装是 QFN42,4 乘 5 毫米。工作温度负40℃ 至 85℃。
三、无损播放的落地要点
APE 和 FLAC 是无损压缩格式,码率比 MP3 高得多,对解码算力和 DAC 动态范围都有要求。
算力这块不用太担心。32 位内核主频 160 兆赫,支持硬件浮点运算,解无损格式有余量。DAC 这边,动态范围差分 104 分贝、单端 98 分贝,信噪比不低于 105 分贝,总谐波失真加噪声负77 分贝,噪声底 5.8 微伏有效值。这几个数对无损音源是够用的。
采样率要注意。DAC 支持 8 千赫到 96 千赫这一串,无损音源常见 44.1 千赫和 48 千赫。放音乐别用 11.025 千赫、16 千赫这类电话级采样率。
SD 卡读写和音频解码会抢总线带宽。无损文件体积大,建议给读取加缓存缓冲,避免读卡卡顿影响播放连续性。多麦克风环境噪音消除 ENC 在片内完成,双通道 ADC 信噪比不低于 95 分贝,拾音干净。
四、语音点歌和播放怎么不打架
这是音箱类方案最容易翻车的地方。音箱正在放歌,麦克风同时拾音,自家喇叭的声音被收进去,轻则点歌识别率掉,重则自己把自己唤醒。
WT2606A 有几层处理。芯片带一路回声消除引脚 AEC0,本地播放时做回声消除。播报「好的,为你播放」这类提示音时,AEC0 让芯片知道这是自己的声音,不当作外部指令。多麦克风 ENC 在片内做环境噪音消除。
软件上还可以再叠两层策略。一是用语音打断唤醒,用户一说话就自动压低音乐音量,把混音让给拾音。二是设播放间隙调度,长句点歌时避开音量大和低频重的段落去识别。
```c
// 离在线点歌的判路逻辑示意
// 1. 本地离线识别优先
if (offline_match(cmd)) {
play_local(cmd); // 固定指令就地执行,毫秒级
} else {
text = asr_to_text(mic_stream); // 模糊语句转文本
cloud_song_search(text); // 经联网通道送云端曲库
play_stream(cloud_result);
}
```
五、关键参数速查
| 项目 | 参数 |
| 内核 | 32 位内核,主频 160 兆赫,支持硬件浮点运算 |
| 存储 | 内置可选 2MB 或 4MB SPI FLASH,外接 SD 卡放无损曲库 |
| 音频解码 | MP2、MP3、WMA、APE、FLAC、AAC、M4A、WAV、OPUS |
| 识别方式 | 离线语音识别,神经网络算法,3 米远场可靠识别 |
| 降噪 | 语音降噪算法,滤稳态噪声,抑动态噪声,多麦克风 ENC |
| 回声消除 | AEC0 引脚,一路回声消除 |
| DAC | 双通道 24 位,信噪比不低于 105 分贝 |
| DAC 摆幅 | 差分 1 伏有效值,单端 520 毫伏有效值 |
| DAC 失真 | 总谐波失真加噪声负77 分贝 |
| DAC 动态范围 | 差分 104 分贝,单端 98 分贝 |
| DAC 噪声底 | 5.8 微伏有效值 |
| ADC | 双通道 24 位,信噪比不低于 95 分贝,动态范围 94 分贝 |
| 采样率 | DAC 最高 96 千赫,ADC 最高 48 千赫 |
| 串口 | RX1、TX1 与 RX2、TX2 两组,可分控控制与数据 |
| 工作电压 | 2.2 至 4.5 伏,典型 3.7 伏 |
| 内部 LDO | VOUT 典型 3.0 伏,负载能力 200 毫安 |
| 麦克风 | 支持驻极体麦克风 |
| 封装 | QFN42,4 乘 5 毫米 |
| 工作温度 | 负40℃ 至 85℃ |
六、外围电路清单
□ 麦克风。驻极体麦克风接 MIC1+ 或 MIC2+,MICLDO 供电,要差分就两脚成对。
□ 功放。单端接用 DACL,差分接用 L、R 两路,差分动态范围更宽。
□ 电源。DC_SW 外接电感,VOUT 接 106 电容到地,VCC18 与 VREG 各接电容到地。
□ 主控通信。控制指令走 RX1、TX1。
□ 联网通道。云端数据流走 RX2、TX2,与控制总线分开。
□ 存储。无损曲库外接 SD 卡,用 SD_CLK、SD_CMD、SD_DAT 加 VDD_SD 供电。
□ 蓝牙。用蓝牙推流才做 ANT 天线电路。
□ 状态指示。BUSY 脚驱动播放指示灯,P38 脚可做 MIC 拾音指示灯,P39 可做透传 IO 控制。
205
