Home Assistant LAB · Głos i AI w praktyce · Lekcja 13
Audio ducking bez chaosu: muzyka, TV, announcement i poprawne przywracanie stanu
Co ma zrobić Home Assistant, gdy chce powiedzieć ważny komunikat, a w pokoju gra muzyka albo telewizor? W tej lekcji nie zatrzymujemy wszystkiego na ślepo. Najpierw sprawdzamy, czy Voice PE albo provider audio ma już natywny announcement. Dopiero tam, gdzie trzeba, budujemy własny pause lub ducking z bezpiecznym restore.
Dlaczego ten etap jest ważny
Prosty skrypt „pause, komunikat, play” działa tylko wtedy, gdy użytkownik w trakcie niczego nie dotknie. W prawdziwym domu ktoś może wyłączyć TV albo zmienić głośność. Dobra automatyzacja nie może po zakończeniu komunikatu cofać tej decyzji.
W pełnej lekcji zrobisz to krok po kroku
Najpierw poznajemy natywny ducking Voice PE
Aktualny stos audio Voice PE potrafi miksować announcement na tle ściszonej muzyki. Gdy audio gra na samym Voice PE, nie dokładamy ręcznej pauzy bez powodu.
TV i amplituner to osobna ścieżka
Jeśli hałas pochodzi z innego media playera, Voice PE nie ściszy go magicznie. Testujemy pause, play i volume_set, a dopiero później budujemy własną logikę.
Pause i ducking mają inne zastosowania
Film, podcast i audiobook lepiej zatrzymać. Muzykę w tle można zwykle tylko ściszyć. Nie tworzymy jednego zachowania dla każdego źródła audio.
Zapamiętujemy stan, ale restore wykonujemy warunkowo
TV jest wznawiany tylko wtedy, gdy przed komunikatem rzeczywiście grał i po komunikacie nadal jest paused. Głośność wraca tylko wtedy, gdy użytkownik nie zmienił jej ręcznie podczas announcement.
Music Assistant nie potrzebuje kopiowania własnego mechanizmu
Jeśli muzyka jest zarządzana przez MA, korzystamy z jego announcement semantics, które potrafią zatrzymać i przywrócić playback. Dla tekstu wykorzystujemy TTS na media playerze Music Assistant.
Testujemy ingerencję człowieka podczas działania automatyzacji
Wyłączamy TV podczas announcement i ręcznie zmieniamy ducked volume. To właśnie ten test ujawnia, czy restore jest bezpieczny, czy automat próbuje „wygrać” z użytkownikiem.
Pełna wersja zawiera
- wyjaśnienie native ducking Voice PE
- test muzyki i announcement na jednym Voice PE
- różnicę native ducking i ręcznego pause
- test zewnętrznego TV/amplitunera
- ręczny test media_pause, media_play i volume_set
- stany playing, paused, idle, off i buffering
- pause/resume tylko dla wcześniej grającego playera
- warunek przed automatycznym resume
- zapamiętywanie starego volume_level
- ochronę przed podgłośnieniem cicho grającego playera
- warunkowe przywracanie głośności
- tolerancję dla zaokrągleń volume_level
- obsługę braku volume_level
- dlaczego nie używamy play_pause do restore
- dlaczego ogólny scene snapshot nie jest uniwersalnym snapshotem mediów
- Music Assistant announcements
- TTS Piper na media playerze MA
- trzy osobne ścieżki audio A/B/C
- pełny skrypt Pause TV
- pełny skrypt Duck Music
- mode: queued dla jednego pokoju
- test zmiany stanu przez użytkownika podczas announcement
- brak sztywnych delay zależnych od długości TTS
- ducking P1/P2/P3
- mute i buffering jako edge cases
- dwa media playery w jednym Area
- multiroom ducking per pokój
- natywne announcements Sonos/Squeezebox/Music Assistant
- fail-safe: lepiej nie wznowić niż uruchomić coś wbrew użytkownikowi
- test WAN OFF
- diagnostykę złego restore i nakładających się komunikatów
- regresję zwykłych komend media playera
- dokumentację strategii audio per Area
- Audio Ducking Test Pack i gotowe YAML
Jak pracujemy w pełnej wersji
Nie zaczynamy od skryptu. Najpierw sprawdzamy natywne funkcje konkretnego urządzenia. Jeśli provider umie announcement i restore sam, wykorzystujemy to. Własny state machine dokładamy tylko tam, gdzie faktycznie jest potrzebny.
Każdy restore przechodzi test ręcznej interwencji. Jeśli użytkownik coś zmienił podczas komunikatu, automat ma to uszanować.
Efekt po zakończeniu lekcji
Komunikaty głosowe stają się częścią normalnego życia z muzyką i telewizją. Home Assistant potrafi zrobić miejsce dla informacji, ale nie rozwala stanu odtwarzania i nie cofa późniejszej decyzji człowieka.
Chcesz, żeby Home Assistant mówił ponad muzyką, ale nie walczył z użytkownikiem?
Ta lekcja jest częścią kursu Smart Home od Zera na platformie MarkLabs E-Learning. Pełna wersja prowadzi od natywnego duckingu Voice PE aż do bezpiecznego restore zewnętrznego TV i muzyki.
Kup dostęp do kursu: 29 zł
Dożywotni dostęp | Wszystkie lekcje | Bez subskrypcji
Najważniejsza zasada brzmi: automatyzacja przywraca tylko stan, który sama zmieniła. Ręczna decyzja domownika w trakcie komunikatu ma pierwszeństwo.