Satelity głosowe, dla których Home Assistant musi przekonwertować dźwięk, powinny zaczynać odpowiedź wyraźnie szybciej. 14 października 2026 Michael Hansen scalił zmianę, którą przejrzał Paulus Schoutsen. Zmienia ona sposób, w jaki Home Assistant przekazuje strumień syntezy mowy do programu ffmpeg. W teście Hansena pierwszy fragment dźwięku po konwersji pojawiał się po 0,10 sekundy zamiast po 2,90.
Skąd brało się opóźnienie
Silniki syntezy mowy, które wysyłają dźwięk strumieniowo, na przykład Wyoming i Home Assistant Cloud, przesyłają najpierw nagłówek WAV, a potem kolejne porcje surowego dźwięku PCM. Gdy satelita głosowy potrzebuje innego formatu, Home Assistant konwertuje strumień programem ffmpeg. Ten najpierw buforuje część danych, żeby je rozpoznać. Jeśli mowa powstaje tylko trochę szybciej niż w czasie rzeczywistym, takie buforowanie dokłada sekundy czekania.
Wcześniejsza zmiana, #178709, wskazała przyczynę i skróciła czekanie dzięki opcji -probesize 32. Hansen poszedł dalej: Home Assistant sam odczytuje nagłówek WAV i podaje programowi ffmpeg same próbki, więc nie ma już kontenera do rozpoznawania. Opcja -probesize 32 nadal jest w kodzie, bo bez niej surowe dane byłyby buforowane równie długo.
Wyniki pomiarów
Hansen mierzył czas do pierwszego bajtu po konwersji dla symulowanej, trzysekundowej wypowiedzi o częstotliwości 22 050 Hz, zamienianej na FLAC 16 kHz mono. W tabeli są najlepsze z trzech prób:
| Tempo syntezy względem czasu rzeczywistego | Wcześniej | Ze zmianą #178709 | Z nową zmianą |
|---|---|---|---|
| 1,05 raza | 2,90 s | 1,40 s | 0,10 s |
| 1,2 raza | 2,53 s | 1,23 s | 0,09 s |
| 2 razy | 1,52 s | 0,73 s | 0,10 s |
Te liczby dotyczą tylko etapu konwersji, a nie całego czasu od wypowiedzenia polecenia do odpowiedzi. Najważniejsze jest to, że nowy sposób nie zależy już od tempa syntezy: wynik za każdym razem wynosi około 0,1 sekundy.
Co zostaje po staremu
Home Assistant odczytuje nagłówek sam tylko wtedy, gdy ten jednoznacznie opisuje strumień: rozmiar danych ma wartość zastępczą używaną przy strumieniowaniu, format to PCM, a głębię bitową da się przełożyć na format znany programowi ffmpeg. W pozostałych przypadkach wszystko działa jak dotąd, więc silniki, które zwracają gotowe pliki WAV, nie odczują zmiany. Wyoming i Home Assistant Cloud zyskują na niej bez żadnych zmian we własnych integracjach.
Zmiana jest w gałęzi rozwojowej, więc do użytkowników powinna trafić w Home Assistancie 2026.11.