这篇写什么?
前文已讲清架构与业务路径。本文把 ARM 集成工作计划 收成可执行清单,每一项标明:
约定再次强调:
| 模块 | 集成方式 |
|---|---|
| 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,最后会议切图与外设双路。
评论
还没有评论,来做第一个吧
有想法?直接在这说,不用跑留言板