Kurs Home Assistant od Zera

Audio ducking bez chaosu: muzyka, TV, announcement i poprawne przywracanie stanu

Bezpiecznie wstrzymuj lub ściszaj muzykę i TV na czas komunikatu Voice PE. Zapamiętaj stan, uszanuj ręczną zmianę i wykonaj rollback.

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.

🔒

Pełna treść dostępna po zakupie kursu

Za symboliczne 29 zł zyskujesz dostęp do 200+ stron praktycznej wiedzy o Home Assistant — wszystkich lekcji, przykładów i aktualizacji.

  • Dożywotni dostęp do całego kursu
  • Nowe lekcje bez dodatkowych opłat
  • Bez reklam i bez abonamentu

Nikt nie jest nieomylny. Coś nie gra w tej lekcji? Zgłoś błąd