KunSpace
返回博客

DSPC 专栏⑤:ARM 集成落地清单——对齐 Android API 与 HAL

2026年8月2日
3 次阅读

读完了?别空手走啊 😏

白嫖可以,但点个赞显得有教养

写评论

有想法?直接在这说,不用跑留言板

这篇写什么?

前文已讲清架构与业务路径。本文把 ARM 集成工作计划 收成可执行清单,每一项标明:

  • 对应哪个 Android API / HAL 职责
  • 依赖哪条 原理(见

约定再次强调:

模块 集成方式
Playback EQ AudioEffect(或 HAL 内固定挂播放链)
TalkTo / TalkTogether Mic+Ref 前端 + AWE 切图,经 AudioRecord 设备暴露,不是第二个播放 Effect

系列导航: · · · ·


排期(按依赖)

1  Playback EQ(AudioEffect)     ← 播放链先通,Ref 才有稳定 PCM
2  TalkTo + LoopBack Ref          ← 干净语音
3  Sensory 喂数 + 事件            ← 能唤醒
4  Event Proxy + Voice App        ← 事件进业务,再开 Record
5  TalkTogether 切图 + Zoom       ← 会议
6  遥控:按键 Proxy + bt-mic      ← 第二路语音入口
7  eARC/SPDIF:PCM / RAW 双路     ← 外设与唤醒并存
8  多路 Record:ACR / Voice / Zoom
9  多输出静音与 Line out 模式
10 调音与认证

1. Playback EQ ↔ AudioEffect

原理: App 只建 AudioTrack;Effect 挂在 Flinger/HAL 播放链,对 PCM 做 EQ。

做法: Playback 算法封成 AudioEffect,在 Effect 工厂 / HAL 注册,播放自动插入;顺序一般为 MS12 解码后 → EQ → ALSA Out

验收: Speaker 听感变化;dumpsys media.audio_flinger 可见 Effect;Out 侧有 PCM 可供 LoopBack。


2. TalkTo(采集前端)

原理: AEC 需要 Mic + 与播放对齐的 Ref;输出供 WWE 与 Voice Record。

做法: HiFi5/HAL 装载 TalkTo;ALSA LoopBack 组 MIC+Ref;出口挂到 build-in-mic 源(或仅内部喂 WWE)。

不要: 做成 Playback AudioEffect

验收: 边播边喊时人声干净;关掉 Ref 后唤醒明显变差(反证 Ref 生效)。


3. TalkTogether(会议切图)

原理: 与 TalkTo 互斥,全双工会议上行。

做法: 进会加载 TalkTogether .awb,Zoom AudioRecord(Comm-mic);出会装回 TalkTo。

验收: Zoom 双讲可接受;散会后 WWE 恢复。


4. Sensory WWE

原理: 只消费 TalkTo 干净 PCM;产出 事件 而非给 App 的 Record 缓冲。

做法: 喂数格式按 Sensory;命中经 Talkto comm → Proxy;同步 VRState

验收: 无 App Record 时常听仍可唤醒;命中必达 Proxy。


5. Event Proxy

原理: 跨进程控制面,汇聚 WWE 与遥控按键。

做法: Binder/Socket/SoundTrigger 三选一写死;Voice App 注册回调后再决定开 build-in-mic 或 bt-mic。

验收: 杀 Voice App 再启,事件仍能投递;开会中策略符合产品定义。


6. eARC / SPDIF 双路

原理: 外设要 RAW 透传;唤醒/AEC 要 PCM + Ref

MS12:
  ├─ PCM → HiFi5 / AWE(TalkTo+Playback 或 TalkTogether)
  └─ RAW → earc/spdif passthrough(绕过 Playback EQ)

验收: 外接机能解杜比;同时 TV 侧仍可远场唤醒(或明确产品降级策略)。


7. 调音与认证

对象 方法
Playback EQ 实机对接 Speaker
TalkTo / Together PC Audio Weaver 调图后固化 .awb
唤醒率 噪声、距离、边播边喊矩阵
Zoom 双讲、回声、延迟认证用例

8. 遥控语音

原理: 按键=事件,遥控麦=PCM(④ 路径 C)。

做法: BT-AudioHal:Bt Read → TalkTo → bt-mic;按键进 Proxy。

验收: 只按键不开麦则无 PCM;开 bt-mic 不影响 build-in-mic 设备节点定义。


9. 多路 AudioRecord

通路 数据源 原理
ACR playback 抽流 不占用 Mic AEC 图
Voice TalkTo 后 / build-in-mic 随会话启动
Zoom TalkTogether / Comm-mic 与 TalkTo 切图互斥
遥控 bt-mic 独立 HAL 路径

验收: 三路策略文档化;并发冲突时有明确优先级(通常 Zoom > Voice 常听)。


10. 输出控制

原理: 多 device 音量/静音在 Policy/HAL;AEC Ref 与「用户听到的口」可能不一致。

Line out 音量归属
LFE 按产品
Fixed 外接设备
Variable TV

参见:AudioService音量问题排查


验收总表

  • EQ 经 AudioEffect(或等价)挂上播放链
  • TalkTo Mic+Ref;边播边喊可唤醒
  • WWE → Proxy → App;VRState 同步
  • 会议切 TalkTogether,散会恢复 TalkTo
  • 遥控按键 + bt-mic
  • eARC:RAW 直出 + PCM 进 AWE
  • ACR / Voice / Zoom Record 源不混淆
  • 多输出静音与 Line out 模式
  • 唤醒率 / Zoom 认证通过

小结

集成顺序服从原理:先有播放 PCM 与 Ref,再有 TalkTo/WWE,再有 Proxy 与按需 Record,最后会议切图与外设双路。

系列导航: · · · ·

评论

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

有想法?直接在这说,不用跑留言板