docs(domain H): v2 — медиа/аудио + арбитр ducking, после adversarial-ревью (20 находок) + кросс-док
Новый домен H (медиа/аудио). Ядро — сквозной арбитр аудио (политика фокуса/ducking поверх PipeWire, role-based), плюс медиаплеер (локальное/BT A2DP/AVRCP/радио/стриминг). Многоагентный adversarial-ревью: 24 находки, 20 подтверждено (default-refute), все применены. Ключевое из ревью: - symphonia НЕ декодирует Opus → отдельный audiopus (libopus, BSD). - AEC: module-echo-cancel (≠ filter-chain) в audio-plane, не в ассистенте — резолв D §147. - media.role (арбитраж) vs media.category (Playback/Capture) разведены. - Кнопки громкости мультируля — uinput→Wayland-input (C/K), не интенты ассистента. - Crash-safe по двум осям (source: жизнь ноды + проактивный cork по NameOwnerChanged/watchdog; sink: пересчёт при возврате output). - intra-role media-фокус (один media-продюсер), гистерезис фокуса (анти-pumping), duck = относит. аттенюатор. - boot аудио-плоскости на Stage 1; отказ-пути плеера (битый файл/обрыв A2DP/ENOSPC/underrun); resume без авто-старта. Кросс-док: D §147 AEC→✅; tech-stack (symphonia/audiopus/module-echo-cancel); hardware §4 (amp-mute-GPIO + FM-тюнер + откр. вопросы); B §4 (amp-mute перед cut); architecture §9 (аудио-арбитр → H); domains/README (строка H). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -142,9 +142,10 @@ intent router · LLM backend (pluggable) · TTS (Silero, офлайн).
|
||||
- ◻️ **Barge-in** (прерывание TTS) — later.
|
||||
- ◻️ **Размер контекста:** машина + память + история → токены (особенно у офлайн-модели
|
||||
с маленьким окном); нужна обрезка/суммаризация. → реализация.
|
||||
- ◻️ **AEC (эхоподавление):** подавление собственного TTS/медиа-выхода (loopback-ref из
|
||||
PipeWire) — нужно для wake-word во время воспроизведения и barge-in; место (WirePlumber/
|
||||
filter-chain vs внутри ассистента). → этот домен + architecture (audio plane).
|
||||
- ✅ **AEC (эхоподавление):** подавление собственного TTS/медиа-выхода (loopback-ref из
|
||||
PipeWire) — нужно для wake-word во время воспроизведения и barge-in. **Резолв:** узел audio-plane
|
||||
на базе `module-echo-cancel` (WebRTC APM), референс = monitor выхода, **не внутри ассистента** —
|
||||
loopback-tap публикует Media (H §4); ассистент потребляет уже очищенную capture-ноду.
|
||||
- ◻️ **Beamforming/денойз** (внешний шум салона): mic-массив; офлайн-STT фиксирован приватностью. → [hardware.md](../contracts/hardware.md).
|
||||
- ◻️ **Plugin-интенты как function-calling** (tool-use LLM) vs фразы — зависит от
|
||||
поддержки провайдером (у GigaChat/YandexGPT может быть ограничена). → реализация.
|
||||
|
||||
Reference in New Issue
Block a user