Hlavná navigácia

Ako škálovať kvalitnú hlasovú komunikáciu v reálnom čase

Načasovanie, prerušenia, ticho a zotavenie formujú zážitok rovnako ako samotné slová.

Zhrnutie

  • Hlasová komunikácia v reálnom čase ponúka ľuďom zásadne iný spôsob interakcie s aplikáciami využívajúcimi AI. Namiesto písania alebo prechádzania ponúk používatelia hovoria prirodzene a dostávajú odpovede s tempom komunikácie v reálnom čase a emocionálnym kontextom.

  • Vytvorenie kvalitného hlasového zážitku v reálnom čase spočíva v koordinácii živej interakcie. Práve tu sa začína skutočná práca na produkte. Zážitok v reálnom čase je bezprostredný a prirodzený. Vytvoriť aplikáciu, ktorá si tieto vlastnosti udrží, predstavuje osobitnú technickú výzvu.

  • Model je iba jednou časťou systému. Produkčné aplikácie potrebujú infraštruktúru vytvorenú priamo pre hlas, jasné oddelenie toku konverzácie od hlbšieho uvažovania a riadenie pomocou udalostí, ktoré spravuje reláciu počas jej priebehu.

  • Veľká časť zostávajúcich problémov spočíva v ochranných mechanizmoch a hodnotení. Bezpečnostné kontroly musia držať krok so živým zvukom. Tradičnými stratégiami hodnotenia sa navyše ťažko posudzujú prchavé vlastnosti konverzácie, ako sú načasovanie, tón a plynulosť.

Úvod: hlasová komunikácia v reálnom čase ako rozhranie produktu

Väčšina dnešných hlasových aplikácií využívajúcich AI stále funguje rovnako: reč vstúpi do systému, zmení sa na text, model premýšľa a syntetizovaný hlas prečíta odpoveď. Funguje to. Interakcia však pôsobí presne tak, ako je vytvorená: ako proces, nie ako konverzácia.

Hlasová komunikácia v reálnom čase to mení. Používatelia hovoria prirodzene a dostávajú odpovede, ktoré zachovávajú tempo, tón aj emocionálny kontext. Zážitok je rýchlejší a plynulejší než pri reťazových procesoch prevodu reči na text a viac sa podobá rozhovoru s človekom než ovládaniu systému.

Videli sme, ako tento prístup sprístupnil možnosti produktu, s ktorými si reťazové architektúry nevedia dobre poradiť. Hlasoví agenti fungujúci v reálnom čase dokážu zvládnuť interakcie so zákazníckou podporou, ktoré by inak vyžadovali zdĺhavé a obmedzujúce ponuky IVR či prepájanie medzi oddeleniami. Môžu používateľov školiť, sprevádzať úvodným nastavením, zlepšovať prístupnosť naprieč médiami a mnoho ďalšieho. Všade, kde má hovorená konverzácia výhodu oproti textovým rozhraniam, sa oplatí vytvárať hlasové riešenia fungujúce v reálnom čase.

Reťazové spracovanie verzus reálny čas: čo sa mení v zákulisí

Väčšina hlasových aplikácií využíva takzvaný „reťazový prístup“: proces zložený zo samostatných modelov na prevod reči na text, spracovanie jazyka a prevod textu na reč. Tieto systémy fungujú dobre a otvárajú široké možnosti, zvuk sa však nachádza iba na okrajoch procesu. Jednotlivé kroky prinášajú pevnú štruktúru a oneskorenie, takže interakcia pôsobí menej prirodzene než skutočný rozhovor.

Hlasová komunikácia v reálnom čase využíva iný prístup. Namiesto samostatných modelov na počúvanie, premýšľanie a hovorenie všetky tri činnosti prirodzene vykonáva jediný model, ktorý súčasne rozumie zvuku aj prepisom a zároveň ich generuje. Vstup aj výstup prebiehajú nepretržite, takže systém môže odpovedať s prirodzeným načasovaním a emóciami a zachovať realistický rytmus živého rozhovoru. Načasovanie, tón a zvládanie prerušení sa tak stávajú ústrednou súčasťou produktu.

Diagram porovnávajúci reťazový proces spracovania hlasu s hlasovým modelom fungujúcim v reálnom čase, ktorý zo zvuku používateľa priamo vytvára zvukový výstup a prepisy.

Zážitok v reálnom čase je príťažlivý svojou bezprostrednosťou, no náročný preto, že nič nečaká, kým príde na rad. Jeho zabezpečenie si vyžaduje viac než len rýchle a presné generovanie zvuku. Náročné je všetko ostatné. Model pracuje v živej relácii. Všetko okolo neho – stav, bezpečnosť, orchestrácia a riadenie – musí fungovať súbežne s konverzáciou a rovnakým tempom.

V reťazovej hlasovej aplikácii poskytuje striedanie vstupov jasnú štruktúru dialógu. Používateľ prehovorí, systém odpovie a začne sa ďalší krok. Hlasová komunikácia v reálnom čase takúto štruktúru nemá. Obe strany môžu hovoriť súčasne alebo nemusí hovoriť nikto a nastane ticho. Používateľ môže systém prerušiť uprostred odpovede alebo položiť doplňujúcu otázku skôr, než systém dohovorí. Prerušenia prestávajú byť okrajovými prípadmi a stávajú sa základným vzorom interakcie.

Práve preto sú aplikácie fungujúce v reálnom čase v zásade problémom koordinácie a systém okolo modelu je rovnako dôležitý ako samotný model.

Čo potrebujete v produkcii

Prevádzka takéhoto systému vo veľkom si vyžaduje návrh prispôsobený živej interakcii. Pozostáva z troch častí, ktoré sa opakovane objavujú v systémoch úspešne nasadených do produkcie.

Infraštruktúra vytvorená priamo pre hlas

Hlasové relácie v reálnom čase musia zvládať prenos zvuku, striedanie hovoriacich, prerušenia, životný cyklus pripojenia a vykonávanie agenta. V závislosti od miesta nasadenia aplikácie môže byť potrebná aj podpora telefonovania. Ide o základné súčasti používateľského zážitku, ktoré sú nevyhnutné na škálovanie aplikácie.

Prvou požiadavkou je vrstva relácie vytvorená priamo pre hlas. Platformy na komunikáciu v reálnom čase (RTC) poskytujú aplikácii prostredie na správu účastníkov, prenos zvuku a prevádzku agentov v telefónnom prostredí. Podľa našich skúseností je mimoriadne užitočný najmä Livekit. Ponúka nízkolatenčný WebRTC stack s kvalitným potlačením hluku a redukciou kolísania oneskorenia už v základnej výbave. Vytvárať túto vrstvu svojpomocne sa vzhľadom na dodatočnú zložitosť zvyčajne neoplatí.

Oddeľte hovorenie od premýšľania (aspoň zatiaľ)

Architektúra s viacerými agentmi pre hlasovú komunikáciu v reálnom čase je založená najmä na oddelení zodpovedností.

Hlasové modely fungujúce v reálnom čase sú veľmi účinné pri prenose zvuku konverzácie, nie sú však optimalizované na hlbšie uvažovanie. Úlohy ako volanie nástrojov, vyhľadávanie či štruktúrované rozhodovanie je vhodnejšie zveriť inému modelu.

Užitočným vzorom je architektúra odpovedajúceho a uvažujúceho agenta.

Odpovedajúci je hlasový agent fungujúci v reálnom čase. Zodpovedá za udržiavanie živej interakcie: počúva, hovorí, zvláda prerušenia a zachováva plynulosť konverzácie. Jeho návrh uprednostňuje rýchlu odozvu, zrozumiteľnosť a emocionálnu kontinuitu.

Diagram architektúry odpovedajúceho a uvažujúceho agenta, v ktorej zvuk používateľa smeruje k odpovedajúcemu agentovi vytvárajúcemu zvukový výstup, zatiaľ čo uvažujúci agent koordinuje nástroje a odovzdáva mu kontext.

Uvažujúci je samostatný agent využívajúci model schopný uvažovania. Pracuje mimo hlavného toku a rieši úlohy, ako sú používanie nástrojov, vyhľadávanie a plánovanie. Odpovedajúci ho môže v prípade potreby zavolať a výsledky následne začleniť do konverzácie.

V niektorých prípadoch môže uvažujúci agent zabezpečovať uvažovanie priamo. V iných môže fungovať ako orchestrátor skupiny špecializovaných agentov. Podstatné je, že túto prácu vykonáva model vhodnejší na úlohy vyžadujúce uvažovanie.

Výhoda je jednoduchá: odpovedajúci zostáva rýchly, komunikatívny a sústredený, zatiaľ čo uvažujúci rieši úlohy, ktoré si vyžadujú viac času, kontextu alebo štruktúry.

Budúci vývoj prelomových modelov môže tento prístup urobiť zbytočným, zatiaľ však podľa našich skúseností sústavne prekonáva riešenia s jediným agentom.

Riadenie pomocou udalostí

Hlasové systémy fungujúce v reálnom čase prirodzene vytvárajú nepretržitý tok udalostí.

Používatelia začínajú hovoriť, robia prestávky a prerušujú systém. Prepisy sa priebežne aktualizujú. Odpovede sa generujú a priebežne prenášajú. Prichádzajú externé výsledky. Podmienky v relácii sa menia. Všetky tieto udalosti možno zachytiť, prenášať a ukladať ako kľúčové udalosti, ktoré vytvorili konkrétny aktuálny stav konverzácie. Bez nich strácame možnosť vykonávať podrobné a cielené zásahy.

Prístup založený na udalostiach ponúka jasný spôsob riadenia. Systém zaznamenáva udalosti v okamihu ich vzniku, aktualizuje stav relácie a spúšťa príslušné následné akcie.

Jednoduché obslužné rutiny udržiavajú rýchlu odozvu v reálnom čase, zatiaľ čo náročnejšie úlohy – napríklad aktualizácia stavových automatov, zaznamenávanie metrík, odstraňovanie citlivých informácií, aktualizácia databáz a ukončenie relácie – sa spúšťajú asynchrónne na pozadí.

S pribúdajúcimi funkciami môže počet týchto úloh na pozadí rýchlo rásť. Aj malé zmeny produktu môžu priniesť nové toky udalostí a závislosti. Dobre štruktúrovaná architektúra súbežného spracovania je dôležitá, aby systém zostal pri ďalšom vývoji zrozumiteľný a spoľahlivý.

Tento prístup založený na udalostiach podporuje aj kľúčovú vlastnosť produktu: formovanie samotnej konverzácie. Zvukový systém fungujúci v reálnom čase nielen generuje odpovede, ale riadi aj tempo, zvláda ticho a prerušenia a rozhoduje, ako a kedy sa má relácia skončiť. Toto správanie je súčasťou používateľského zážitku a treba ho navrhnúť zámerne.

Keď sa stav relácie mení podľa počtu vstupov, uplynutého času alebo správania používateľa, systém môže odpovedajúcemu agentovi poskytnúť cielené pokyny. Môže napríklad vyzvať agenta, aby používateľovi pomohol dokončiť rozhovor pri blížiacom sa limite relácie, alebo poskytol vysvetlenie, ak interakcia uviazne. Tieto zásahy sú jednoduché, no vďaka nim pôsobí celý zážitok zámerne a ucelene.

Dobre navrhnutý systém si udržiava jasný prehľad o stave relácie: kto hovorí, ako konverzácia napreduje a ktoré podmienky už boli splnené. Tento stav, ktorý sa nepretržite aktualizuje podľa toku udalostí, umožňuje poskytnúť správne usmernenie v správnom čase.

Ochranné mechanizmy musia držať krok s dianím v reálnom čase

Ochranné mechanizmy nie sú vo verejne dostupnej AI voliteľné. Zaisťujú bezpečnosť, súlad s predpismi, prevenciu zneužitia a spoľahlivosť. V systéme založenom na striedaní vstupov je zrejmé, kedy ich spustiť: po tom, ako používateľ dohovorí, alebo pred doručením odpovede.

Hlasová komunikácia v reálnom čase väčšinu týchto praktických kontrolných bodov odstraňuje. Vstup používateľa prichádza nepretržite. Zvukový výstup sa už môže prenášať. Hotové prepisy často zaostávajú za zvukom. Ak systém pred kontrolou čaká na celé správy, konverzácia prestáva pôsobiť ako komunikácia v reálnom čase.

Ochranné mechanizmy preto musia fungovať súbežne s konverzáciou, aby interakcia pôsobila prirodzene. Jedným z prístupov je prenášať zvuk do vyrovnávacej pamäte a zároveň asynchrónne vyhodnocovať dostupné úryvky prepisu. Bezpečnostné kontroly tak môžu prebiehať takmer v reálnom čase bez blokovania interakcie.

Diagram porovnávajúci ochranné mechanizmy v reálnom čase, ktoré počas relácie pracujú so živým zvukom a úryvkami prepisu, s mechanizmami založenými na striedaní vstupov, ktoré kontrolujú vstup a výstup pred odpoveďou a po nej.

Keď sa aktivuje ochranný mechanizmus, systém môže reagovať v danom kontexte: presmerovať konverzáciu, upraviť správanie alebo v prípade potreby ukončiť reláciu. Ochranné mechanizmy tak fungujú v reálnom čase bez zhoršenia používateľského zážitku.

hodnotenie v reálnom čase je náročné

Najťažšie na hodnotení konverzačného systému v reálnom čase je, že niektoré z najdôležitejších vlastností – načasovanie, prerušenia, plynulosť a tón – nemožno zachytiť testovaním založeným iba na prepise.

Štandardné procesy hodnotenia predkladajú systému realistické scenáre, sledujú výstupy a prideľujú im skóre. Pri textových systémoch alebo reťazových zvukových systémoch je to jednoduché: odošlete text a skontrolujete textový výstup. V reálnom čase je vstupom živý zvuk a najdôležitejšia dynamika konverzácie spočíva v časovej rovine: ako agent zvláda súbežnú reč, ako rýchlo odpovedá a ako sa zotaví po prerušení.

Manuálne testovanie – priama komunikácia s agentom – tieto vlastnosti zachytí, nedá sa však škálovať. Automatizácia založená na prepisoch sa škálovať dá, ale odstraňuje signál, ktorý odlišuje dobrý zážitok v reálnom čase od zlého.

Žiadna metóda sama osebe nestačí. Praktickým riešením je kombinácia viacerých vrstiev:

  • Hodnotenie agentom proti agentovi: druhý agent fungujúci v reálnom čase dostane pokyn vystupovať ako konkrétny typ používateľa a vedie konverzáciu s testovaným systémom. Tretí LLM v úlohe hodnotiteľa interakcii pridelí skóre. Takto možno vo veľkom testovať celú zvukovú cestu vrátane načasovania a zvládania prerušení.

  • Nefunkčné metriky: čas do prvého zvukového výstupu a analýza sentimentu prepisu poskytujú kvantitatívne ukazovatele kvality konverzácie.

  • Manuálne kvalitatívne posúdenie: zostáva nevyhnutné na odhalenie problémov, ktoré automatizovaným metrikám uniknú, najmä v oblasti tónu a prirodzenosti.

Žiadna jednotlivá metóda nepokryje všetko. Nasadenie agentov fungujúcich v reálnom čase do produkcie si vyžaduje kombináciu všetkých troch vrstiev. Aj tak však nástroje na hodnotenie zvuku v reálnom čase zaostávajú za nástrojmi pre textovú AI.

Záver

Hlasová komunikácia v reálnom čase mení podobu produktu. Používatelia vnímajú načasovanie, prerušenia, ticho a zotavenie rovnako intenzívne ako samotné slová.

Model je preto iba jednou časťou systému. Produkčná hlasová komunikácia v reálnom čase potrebuje vrstvu relácie vytvorenú priamo pre hlas, jasné oddelenie hovorenia od uvažovania a riadenie živej relácie pomocou udalostí. Ochranné mechanizmy zostávajú úzkym miestom z hľadiska latencie, no tvorivé prístupy dokážu zachovať veľkú časť zážitku v reálnom čase.

Najslabšou časťou celého riešenia zostáva hodnotenie. Zatiaľ neexistuje ustálený spôsob testovania vlastností, vďaka ktorým hlasová komunikácia v reálnom čase pôsobí dobre: načasovania, tónu, zvládania prerušení a plynulosti konverzácie. Kým takýto spôsob nevznikne, tímy využívajúce túto technológiu budú musieť kombinovať automatizované testy, interakcie agentov medzi sebou a manuálne posudzovanie.

Autori

Oliver Wood a Sam Smith