Lokalny model mowy może działać z opóźnieniem przy aktywnym wykrywaniu słowa wybudzającego, ponieważ stale działający detektor wymaga dodatkowego wstępnego przetwarzania, buforowania, planowania i przekazywania dźwięku.
Bez słowa wybudzającego użytkownik może nacisnąć przycisk i wysłać jedno czyste nagranie bezpośrednio do rozpoznawania mowy. Przy aktywacji słowem wybudzającym serwer domowy stale przechwytuje krótkie ramki dźwiękowe, wyodrębnia cechy, ocenia model wyzwalający, zachowuje dźwięk sprzed wyzwolenia i decyduje, kiedy przekazać kontrolę do wykrywania aktywności głosowej oraz transkrypcji. Jeśli te etapy współdzielą rdzenie CPU, urządzenia audio, kolejki lub pamięć, dodatkowa warstwa może spowolnić skądinąd szybki model lokalny, mimo że sam model mowy się nie zmienił.
Wykrywanie słowa wybudzającego dodaje stale działającą pętlę wnioskowania
Silnik słowa wybudzającego musi stale analizować dźwięk, a nie tylko po rozpoczęciu nagrywania przez użytkownika. Wielokrotnie dzieli sygnał na ramki, oblicza cechy akustyczne i ocenia niewielki klasyfikator.
Poradnik dotyczący słów wybudzających firmy Picovoice opisuje detektor jako stale aktywną warstwę uruchamiającą, która działa przed większym potokiem głosowym.
Nawet niewielki model zużywa przydzielany czas procesora i przepustowość pamięci. Na słabiej wyposażonym serwerze domowym to ciągłe obciążenie może przejmować krótkie okresy potrzebne przez VAD, Whispera lub syntezę mowy.
Słowo wybudzające i rozpoznawanie mowy mogą powielać wstępne przetwarzanie dźwięku
Detektor i model mowy mogą niezależnie zmieniać częstotliwość próbkowania dźwięku, normalizować amplitudę, obliczać spektrogramy lub konwertować kanały. Oddzielne kontenery mogą utrudniać zauważenie tego powielania.
Praktyczny potok Whispera wykazał, że etapy wstępnego przetwarzania dźwięku kumulują opóźnienia, gdy są łączone bez współdzielonej architektury strumieniowej.
Potok staje się wolniejszy, nawet jeśli każdy komponent osobno osiąga dobre wyniki w testach. Ponowne wykorzystanie jednego zdekodowanego strumienia dźwięku i jednej obsługiwanej częstotliwości próbkowania eliminuje konwersje, które nie zwiększają jakości rozpoznawania.
Mierz wyodrębnianie cech i zmianę częstotliwości próbkowania oddzielnie od wnioskowania modelu, aby nie przypisywać detektorowi pracy wykonywanej przez adapter audio.
Bufory dźwięku sprzed wyzwolenia mogą opóźniać przekazanie po wykryciu
System głosowy zwykle zachowuje dźwięk bezpośrednio poprzedzający słowo wybudzające, aby nie utracić początku polecenia. Po wykryciu bufor musi zostać odtworzony lub skopiowany do strumienia rozpoznawania.
Użytkownicy Rhasspy opisują opóźnienie bufora odtwarzania między wykryciem wyzwolenia a momentem, w którym ASR zaczyna otrzymywać polecenie.
Zbyt duży bufor sprzed wyzwolenia, blokujące kopiowanie lub opróżnianie całego bufora mogą sprawić, że rozpoznawanie będzie wyglądać na wolne, mimo że pierwsze wnioskowanie rozpoczyna się dopiero z opóźnieniem.
Oznacz znacznikami czasu wyzwolenie, pierwszą ramkę ASR, decyzję o zakończeniu mowy i pierwszy transkrypt. Największa przerwa wskaże, czy opóźnienie występuje przed rozpoznawaniem, czy w jego trakcie.
Współdzielone rdzenie CPU i kolejki audio powodują rywalizację o zasoby
Wykrywanie słowa wybudzającego, VAD, usuwanie echa, transkrypcja i synteza mowy mogą działać na tym samym procesorze. Jeden etap może opóźniać kolejny przez planowanie wątków lub pełną kolejkę audio.
Opis lokalnego asystenta głosowego wskazuje, że opóźnienie głosu od początku do końca zależy od kompletnego potoku, a nie tylko od modelu językowego lub modelu mowy.
Wyjaśnienie ZimaSpace dotyczące ukrytej saturacji serwera ma tu zastosowanie: niskie średnie wykorzystanie CPU może maskować jeden przeciążony rdzeń lub jeden zserializowany wątek audio.
Przypisywanie każdego komponentu do osobnych rdzeni nie zawsze jest konieczne, ale głębokość kolejki, wykorzystanie CPU przez poszczególne wątki i czas przetwarzania jednej ramki dźwiękowej powinny pozostawać poniżej rzeczywistego odstępu między ramkami.
Fałszywe wyzwolenia mogą wielokrotnie uruchamiać kosztowne operacje
Fałszywe wykrycie słowa wybudzającego może uruchomić VAD, załadować lub wybudzić model mowy, odtworzyć buforowany dźwięk i oczekiwać na polecenie, które nigdy nie nadejdzie.
Artykuł o architekturze słów wybudzających wyjaśnia konieczność równoważenia fałszywych akceptacji z pominiętymi wyzwoleniami i opóźnieniem wykrywania.
Częste prawie trafienia mogą utrzymywać potok mowy w stanie aktywnym lub zajętym, przez co prawdziwe polecenie trafia za porzuconymi sesjami.
Rejestruj poziom pewności wyzwolenia, częstotliwość wyzwoleń, czas trwania sesji oraz informację, czy po wyzwoleniu pojawiła się użyteczna mowa. Podniesienie progu pomaga tylko wtedy, gdy nie powoduje niedopuszczalnej liczby fałszywych odrzuceń.
Testuj detektor i przekazanie jako osobne etapy opóźnienia
Porównaj tryb push-to-talk, tryb z włączonym słowem wybudzającym, tryb z włączonym słowem wybudzającym i zatrzymanym ASR oraz tryb z włączonym słowem wybudzającym przy normalnym obciążeniu w tle. Używaj tego samego mikrofonu, polecenia i modelu mowy.
Przegląd techniczny opisuje systemy słów wybudzających jako kaskadowe systemy strumieniowe, których poszczególne etapy mają oddzielne budżety obliczeniowe i czasowe.
Rejestruj opóźnienie ramek audio, czas pracy detektora, oczekiwanie w kolejce, odtwarzanie bufora, wybudzanie modelu, wstępne przetwarzanie ASR i dekodowanie. Następnie zoptymalizuj etap, który zmienia się po włączeniu słowa wybudzającego.
Praktycznym rozwiązaniem może być mniejszy detektor, współdzielone wstępne przetwarzanie dźwięku, krótszy bufor sprzed wyzwolenia, ograniczone kolejki, dedykowane wątki lub utrzymywanie modelu mowy w pamięci. Wymiana modelu mowy jest zbędna, jeśli opóźnienie występuje, zanim model otrzyma dźwięk.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Jakie funkcje umożliwiają utworzenie domowej granicy zaufania AI wokół wrażliwych plików?
Domowa granica zaufania dla AI łączy szyfrowanie danych w spoczynku, uprawnienia zgodne z zasadą najmniejszych przywilejów, sandboxing w czasie działania oraz zakresowe pobieranie danych...

Co powoduje, że prywatne wyniki wyszukiwania faworyzują często edytowane pliki?
Często edytowane pliki zyskują przewagę w rankingu, gdy każda aktualizacja dodaje sygnały świeżości, fragmentów, wersji lub interakcji bez normalizacji względem źródła.

Co powoduje, że modele obecności w inteligentnym domu mylą gości z mieszkańcami?
Goście mogą wyglądać jak domownicy, gdy system obserwuje wzorce aktywności gospodarstwa domowego, ale nie ma stabilnego sygnału tożsamości osoby, która je generuje.

