1. VAD - wykrywanie aktywności głosowej (Silero)
Warstwa transportu przepuszcza każdy fragment audio przez lokalny model Silero VAD (ONNX), który dla każdej ramki odpowiada na proste pytanie:„Czy to mowa, czy cisza?”Konfiguracja w
vad_configuration agenta:
VAD odpowiada za wykrywanie przerwań (rozmówca mówi, gdy mówi bot) i jest
bazowym sygnałem dla analizatora tury.
Samo „tak” albo „nie” trwa około 0,2–0,4 s. Przy
start_seconds równym 0.4
(dawna wartość domyślna, wciąż zapisana u agentów utworzonych wcześniej) VAD
często takiej odpowiedzi nie zauważa i agent reaguje na nią z opóźnieniem.
Jeśli rozmówcy odpowiadają krótko, ustaw 0.2. Wyższa wartość ma sens tylko
na głośnych liniach, gdzie krótkie trzaski przerywają agentowi.2. Parametry streamingu Deepgram
Deepgram (STT po WebSockecie) odbiera audio równolegle z VAD i produkuje dwa rodzaje transkryptów:- Interim - częściowe, aktualizowane wiele razy na sekundę.
- Final (
is_final=true) - zatwierdzony fragment, już się nie zmieni.
endpointing (ms)
Próg ciszy wyznaczający granicę frazy - po jakiej pauzie Deepgram
zatwierdza bieżący transkrypt (is_final=true). Niższe wartości = szybsze
zatwierdzanie, ale jedna myśl może rozpaść się na kilka segmentów.
- Zakres:
10–1000ms - Domyślnie:
100ms (szybko) - Wyższe wartości (300–500 ms) dla rozmówców robiących pauzy w połowie zdania.
utterance_end_ms (ms)
Próg ciszy wyznaczający koniec całej wypowiedzi - po jakiej ciszy
Deepgram emituje zdarzenie UtteranceEnd, które uruchamia LLM.
- Minimum:
1000ms - twardy wymóg Deepgram. Wartości poniżej powodują odrzucenie połączenia WebSocket z HTTP 400 i STT w ogóle się nie łączy. Backend automatycznie podbija starsze konfiguracje do 1000. - Zakres:
1000–5000ms - Domyślnie:
1000ms
3. Smart Turn V3 - wykrywanie końca tury przez ML
Same timery ciszy nie wystarczą - ludzie robią pauzy z wielu powodów (myślą, oddychają, czytają numer), a 1000 ms to w rozmowie wieczność. Smart Turn V3 to lokalny model ONNX analizujący prozodię wypowiedzi - intonację, rytm, końcowy kontur wysokości głosu - i zwracający prawdopodobieństwo, że tura jest skończona. Po włączeniu w agencie (smart_turn_enabled: true):
- po każdej granicy ciszy z VAD segment audio przechodzi przez model,
- model zwraca
{prediction: 0|1, probability: 0..1}, prediction == 1→ LLM startuje natychmiast, często setki ms przed timeoutemutterance_end_ms,prediction == 0→ pipeline słucha dalej;utterance_end_msdziała jako siatka bezpieczeństwa.
Czy utterance_end_ms ma znaczenie przy włączonym Smart Turn?
Tak. To układ „pasy + szelki”:
Obniżenie
utterance_end_ms poniżej 1000 ms przyspieszyłoby ścieżkę
fallbacku, ale Deepgram na to nie pozwala. Chcesz niższych opóźnień -
włącz Smart Turn.
Gdy rozmówca wchodzi w słowo agentowi
Rozmówca może przerwać agenta w każdej chwili - agent milknie i słucha. Żeby jednak „mhm” albo „aha” rzucone w trakcie wypowiedzi agenta nie ucinało mu zdania, w trakcie mowy agenta przerwanie liczy się dopiero od dwóch słów rozmówcy. „Nie, nie” albo „chwila, chwila” przerywa od razu; pojedyncze potaknięcie agent pomija i mówi dalej. Gdy agent milczy, każde słowo rozmówcy liczy się jak dotąd. Próg ustawia suwak Czułość na przerwanie w ustawieniach agenta: na maksimum przerywa każdy dźwięk (także „mhm”, jak dawniej), w środku dwa słowa, na minimum cztery. Niższa czułość pasuje na głośnych liniach, gdzie VAD łapie strzępy słów; wyższa, gdy rozmówcy przerywają jednym słowem („stop”, „halo”). W API można też podać wprostworkflow_configurations.interruption_min_words (0 = każdy dźwięk).
Krótka odpowiedź poniżej progu nie przepada. Gdy rozmówca rzuci „Tak” na
końcówkę pytania „czy zapisać na wtorek?”, agent nie urywa zdania, ale
zapamiętuje to „Tak” i jeśli skończy mówić w ciągu 1,5 s, traktuje je
jak zwykłą odpowiedź rozmówcy. Potaknięcie w środku dłuższej wypowiedzi
(agent mówi dalej dłużej niż 1,5 s) nadal jest pomijane. Jeśli zaraz po
krótkim słowie rozmówca mówi dalej i przerywa agenta, oba fragmenty trafiają
do modelu jako jedna wypowiedź. Okno zmienisz przez
workflow_configurations.short_reply_hold_seconds (0 wyłącza, maksimum
5); przy suwaku na maksimum nie ma progu, więc nie ma też czego
przechowywać.
Ile naprawdę czeka rozmówca
W transkrypcji rozmowy, przy każdej odpowiedzi agenta, jest czas z ikoną stopera: od chwili, gdy rozmówca zamilkł, do pierwszego dźwięku agenta. Składa się na niego czekanie na koniec wypowiedzi (stop_seconds), transkrypcja,
model LLM i start syntezy mowy. W słuchawce dochodzi
jeszcze opóźnienie sieci telefonicznej, zwykle 0,2–0,4 s, którego platforma
nie mierzy.
Rozmowy sprzed wprowadzenia tego pomiaru pokazują ikonę mózgu i sam czas
namysłu modelu, czyli tylko część tej pauzy.
Zalecane ustawienia
- Naturalna rozmowa (zalecane): Smart Turn WŁ.,
utterance_end_ms = 1000,endpointing = 100. - Dyktowanie numerów / długie pauzy: Smart Turn WŁ.,
utterance_end_ms = 1500–2000,endpointing = 300. - Minimalna latencja bez Smart Turn:
utterance_end_ms = 1000,endpointing = 100- sporadyczne wcięcia w słowo możliwe.