KunSpace
返回博客

DSPC 专栏②:官方 Sample——TalkTo 如何挂上 Sensory WWE

2026年7月18日
3 次阅读

读完了?别空手走啊 😏

这行字出现时,你的大拇指应该已经 itch 了

写评论

读完了不评论,作者会以为你在沉思

这篇写什么?

本文解读 DSPC 官方 TalkToSampleApp:讲清「TalkTo 洗麦 → Sensory 听词 → Playback 播与 duck」的标准挂法,并对照到 Android TV 产品里该由谁实现。

产品整机分层见 专栏③

系列导航: · · · ·


一、Sample 在解决什么问题?

远场语音的物理现实:

麦拾音 = 用户说话 + 喇叭漏音 + 环境噪声

若不先做前端,唤醒模型会误触或漏检。Sample 的分工是:

组件 职责
TalkTo(vuiProcessor) 多麦 + 播放 Ref → AEC/波束/降噪 → 干净单声道
Sensory Spotter 在干净语音上判唤醒词 / 命令词
Playback AWE 播音乐,并提供 Ref、支持 duck

这与 TV 产品相同;差别只在 进程与系统服务怎么包一层

TalkToSampleApp

实线:音频。虚线:控制。


二、双 AWE 实例:为什么拆开?

实例 作用
vuiProcessor vui_10x6.awb TalkTo 前端
playbackProcessor playback_2x2.awb 回放 + duck

原理:

  1. 采样率/通道/线程 与调参端口可独立(VUI 口 / Speaker 口)。
  2. Playback 出口必须 回灌 2ch Ref 给 TalkTo,否则 AEC 无参考。
  3. 业务上「播」和「听」生命周期不同,拆实例更清晰。

对照 Android:Playback 对应播放链(Track→HAL→EQ);TalkTo 对应采集前端(最终暴露给 Record 或只喂 WWE)。


三、音频通路(对着图读)

Mic 阵列 → audioStream → TalkTo(vui)
              ├─ 1ch → trigger Spotter(唤醒)
              └─ 1ch → command Spotter(命令)

歌曲 → playbackProcessor → Speaker
              └─ 2ch Ref 回灌 TalkTo(AEC)

要点:

  1. 多麦不进 Sensory,只进 TalkTo。
  2. Sensory 输入已是「像近讲一样」的单声道。
  3. Ref 与 Mic 时间对齐不好,AEC 会失效——产品上 LoopBack 要保证同源时钟。

四、控制通路:VRState 与 duck

信号 方向 含义
VRState Spotter → TalkTo 已进入语音交互;前端改参数
VAD freeze after trigger 唤醒 Spotter → 命令 Spotter 唤醒前不乱认命令
duckPlayback 业务 → Playback 压低音乐,抬高可懂度

原理:唤醒不是「只改 App UI」,还要 改前端工作点。TV 上等价动作是:Event Proxy 通知 App 的同时,HAL 写 VRState(见 )。


五、映射到 Android TV(避免照搬错层)

Sample Android TV 产品
同进程 Spotter 回调 HAL/DSP → Event Proxy → Voice App
本进程读干净 PCM 播命令 唤醒后 AudioRecord → ASR
Seeed audioStream ALSA PDM/TDM + LoopBack + HAL
双 AWE 同 OS Playback 可在 ARM HAL;TalkTo/WWE 常在 HiFi5

Sample 回答 算法如何串;产品回答 串在哪一层、事件如何跨进程


小结

  • 标准挂法:TalkTo 出干净语音,Sensory 只做识别,Playback 负责听感与 Ref。
  • 产品必保留:Ref 回灌、VRState、事件与 PCM 分离

下一篇:从 Android 栈拆 TV 整机架构图。

系列导航: · · · ·

评论

还没有评论,来做第一个吧

读完了不评论,作者会以为你在沉思