1.9 KiB
1.9 KiB
ADR 0006: 本地语音端点检测所有权
状态
Accepted(实现与主机/构建验证;声学阈值待实机验收)
决策
domain独占本地语音端点契约、VAD 实例、分帧和连续人声/静音状态,声明于domain.h。不向其他 facade 复制这些契约。platform保持通用 PCM 观察者原语,将单订阅扩为固定两个槽位,供本地命令 和端点检测共享同一份 AEC 后 PCM。回调同步执行、不可阻塞,不新增采集任务。control_plane在真实网络拾音启动后按 PTT generation 启用检测,查询领域快照, 只结束匹配代次的活动输入;保留 8 秒兜底和现有状态机的唯一收尾路径。- 端点检测不在回调中停止采集或发送协议。平台停止先与在途采集串行,再由原采集任务补齐 最后一个 Opus 帧、限时排空发送;失败时废弃传输,不宣告正常结束或无限重试。
- 停止端点检测先禁用订阅并等待在途回调,再释放 VAD。超时保留资源供重试, 不安排后台释放。快照按值返回,所有 VAD 状态由互斥锁保护。
迁移与资源
- 先扩展通用 PCM 订阅和明确音频停止语义,维持旧调用兼容。
- 新增领域检测器和可关闭配置,再接入现有 PTT 推进器。
- 主机验证实际 C 的分帧、代次、失败释放、订阅隔离和尾包顺序,构建启用/关闭配置。
- 实机检查慢语速/停顿/噪声/远场/提示音、唤醒和按键、取消/断网/OTA,记录 端点到 StopSpeech/首个下行/播放的分段延迟及内部 RAM 最低余量。
固定检测帧为 320 个 int16 样本(640 B),不新增任务、队列或 DMA 缓冲。 WebRTC VAD 的库内分配及采集任务栈峰值需日志和设备测量,不能用帧大小冒充总开销。 检测初始化失败回退原输入窗口,不影响流式上行。