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