diff --git a/README.md b/README.md index 543b714..53f9c1b 100644 --- a/README.md +++ b/README.md @@ -510,10 +510,30 @@ Der Update-Flow: App (Mikrofon) → AAC/MP4 Aufnahme → Base64 → RVS → Bridge Bridge: FFmpeg (16kHz PCM) → Whisper STT → Text → aria-core Bridge: STT-Ergebnis → RVS → App (Placeholder wird durch transkribierten Text ersetzt) -aria-core → Antwort → Bridge → XTTS (Gaming-PC) → PCM-Stream → RVS → App +aria-core → Antwort → Bridge → F5-TTS (Gaming-PC) → PCM-Stream → RVS → App App: AudioTrack MODE_STREAM (nahtlos), Cache als WAV pro Message ``` +### Audio-Verhalten in der App + +| Phase | Andere App (Spotify) | ARIA-Mikro | +|------------------------------|----------------------|-------------------------| +| Idle / Ohr aus | spielt frei | aus | +| Wake-Word lauscht (armed) | spielt frei | passiv (openWakeWord) | +| User-Aufnahme laeuft | pausiert (EXCLUSIVE) | Recording | +| Aufnahme zu Ende | resumed | aus | +| ARIA denkt/schreibt (~20s) | spielt frei | aus | +| TTS startet | pausiert (DUCK) | aus (oder barge) | +| TTS spielt (auch GPU-Pausen) | bleibt pausiert | barge wenn Wake-Word | +| TTS zu Ende | nach 800ms resumed | (Conversation-Window) | +| Eingehender Anruf (auch VoIP)| — | Mikro pausiert | +| Anruf vorbei | — | Mikro wieder armed | + +Mechanismen: Underrun-Schutz im PcmStreamPlayer (Stille-Fill in Render- +Pausen), Conversation-Focus bei Wake-Word, Foreground-Service mit +mediaPlayback|microphone, Anruf-Erkennung ueber TelephonyManager + +AudioFocus-Loss-Listener mit Polling-Fallback (VoIP). + ### Datei-Pipeline (Bilder & Anhaenge) ``` diff --git a/issue.md b/issue.md index 1bdd074..2effe47 100644 --- a/issue.md +++ b/issue.md @@ -1,5 +1,38 @@ # ARIA Issues & Features +## Audio-Verhalten in der App + +So sollte die App in den verschiedenen Phasen mit fremden Audio-Apps +(Spotify, YouTube, Podcasts etc.) und dem eigenen Mikro umgehen. +Wenn was anders ist, ist's ein Bug. + +| Phase | Andere App (Spotify) | ARIA-Mikro | Hintergrund-Service | +|------------------------------|----------------------|---------------------|---------------------| +| Idle / Ohr aus | spielt frei | aus | aus | +| Wake-Word lauscht (armed) | spielt frei | passiv (openWakeWord) | aktiv ('wake') | +| User-Aufnahme laeuft | pausiert (EXCLUSIVE) | Recording | aktiv ('rec') | +| Aufnahme zu Ende | resumed | aus | (rec released) | +| ARIA denkt/schreibt (~20s) | spielt frei | aus | (kein Slot) | +| TTS startet | pausiert (DUCK) | aus (oder barge) | aktiv ('tts') | +| TTS spielt (auch GPU-Pausen) | bleibt pausiert | barge wenn Wake-Word| aktiv | +| TTS zu Ende | nach 800ms resumed | (Conversation-Window)| (tts released) | +| Eingehender Anruf (auch VoIP)| — | Mikro pausiert | aus | +| Anruf vorbei | — | Mikro wieder armed | aktiv ('wake') | + +Wichtige Mechanismen: +- **Underrun-Schutz** im PcmStreamPlayer fuettert Stille rein wenn die + Bridge in Render-Pausen liefert — Spotify bleibt durchgehend pausiert, + auch zwischen den Saetzen einer langen Antwort. +- **Conversation-Focus** (nur bei Wake-Word 'conversing') haelt den + AudioFocus dauerhaft. Bei reinem Tap-to-Talk oder Text-Chat greift's + nicht — Spotify darf in der Denk-Phase ruhig weiterspielen. +- **Foreground-Service** (mediaPlayback|microphone) haelt App-Prozess + am Leben damit TTS/Mikro/Wake-Word auch bei minimierter App weiter- + laufen. Notification zeigt aktuellen Status ("ARIA spricht/hoert + zu/bereit"). +- **Anruf-Erkennung** ueber TelephonyManager (klassisch) + AudioFocus- + Loss-Listener mit Polling-Fallback (VoIP wie WhatsApp/Signal/Discord). + ## Erledigt ### Bugs / Fixes