Tehnologija

Šta je unutra u Dialogist AI glasovnom agentu

Izmereno kašnjenje, smena govornika, znanje i testiranje.

Četvrt sekunde

Od poslednje reči pozivaoca do prvog zvuka agenta, samom agentu treba oko četvrt sekunde.

≈ 0,27 s

232 ms da odluči da je pozivalac završio, zatim 35 ms do prvog zvuka

Sa ranim startom. Isprekidano: posao koji počinje unutar pauze, pre odluke. Sivo: sinteza, potrebna samo kada rečenice nema u kešu glasa. Bez ranog starta prvi zvuk stiže 117 ms posle odluke.

Šta merimo

Sat teče od kraja govora pozivaoca do prvog zvuka agentovog odgovora.

Odluka da je pozivalac završio

Tajmer tišine je ili spor ili upada u reč. Agent čeka 192 ms, a zatim pita mali model da li je rečenica završena. Model odgovara za oko 40 ms, pa se replika zatvara na oko 232 ms. Tajmeru samo za tišinu treba 512 ms.

Početak odgovora

Prepoznavanje radi od trenutka kada pozivalac počne da govori, pa je tekst spreman kada se replika zatvori. Uz rani start jezički model dobija tekst dok je agent još u pauzi, pa je njegova prva rečenica obično napisana do trenutka zatvaranja replike. Sinteza zatim kreće iz keša glasa ili iz te prve rečenice.

Šta ostaje posle odluke
KorakStandardnoRani start
Transkripcija (konačan tekst posle pauze)0,5 ms0,5 ms
Prva rečenica iz jezičkog modela111 ms3 ms
Glas, do prvog zvuka6 ms31 ms
Od odluke do prvog zvuka117 ms35 ms

Transkripcija traje 0,5 ms posle odluke jer prepoznavanje radi u toku dok pozivalac govori i pravi probni prolaz tokom pauze. Uz rani start jezički model počinje na tom probnom tekstu unutar pauze, pa posle odluke ostaju 3 ms njegovog posla; u standardnom režimu svih 111 ms dolazi posle nje. U testu opterećenja rani zahtev je otišao pre odluke u 98% odgovora, u proseku 225 ms ranije pri 50 razgovora i 508 ms ranije pri 128. Ako pozivalac nastavi da govori, agent odbacuje pripremljeni odgovor i odgovara na celu rečenicu.

Pri 100 istovremenih poziva na jednom Server Unit-u isti korak traje oko 0,4 s u standardnom režimu i 0,25 s uz rani start. Cela slika je u belešci o Server Unit-u. Server Unit pod opterećenjem

  • 232 msda se odluči da je pozivalac završio (pauza od 192 ms plus 40 ms modela); tajmer tišine traži 512 ms
  • 35 msod te odluke do prvog zvuka uz rani start; 117 ms bez njega
  • ≈ 0,3 svraća se po replici pozivaoca u stvarnim pozivima zahvaljujući modelu kraja replike, koji je rano zatvorio 87% replika

U 1.468 replika pozivalaca iz stvarnih poziva model kraja replike je rano zatvorio 87% replika, a 95% njih već pri prvom pogledu.

Gde su otišle milisekunde

Svaku izmenu smo izmerili posebno pre nego što je ušla u sistem. Zajedno su otprilike udvostručile broj poziva koje Server Unit nosi na Standard nivou.

  • ušteda 89–235 ms

    Rani start

    Jezički model kreće na prepoznatom tekstu dok agent još čeka da prođe pauza. Ušteda raste sa opterećenjem: 89 ms pri jednom pozivu, 189 ms pri 96 razgovora, 235 ms pri 128.

  • 280 → 40 ms

    Mrtva tišina uklonjena iz govora

    Sintetizovane rečenice počinju tišinom; medijana u našem kešu je 280 ms. Agent je skraćuje na 40 ms dok reprodukuje klip, pa je na liniji odgovor jednog poziva stizao oko 200 ms ranije. Keš čuva original.

  • ušteda ≈ 0,3 s

    Model kraja replike

    Posle pauze od 192 ms mali model po intonaciji procenjuje da li je misao završena. U stvarnim pozivima rano je zatvorio 87% replika pozivalaca i sačekao 96% pauza usred misli. Može prvo da radi u režimu posmatranja i samo beleži šta bi uradio.

  • 94%

    Keš glasa

    Agent sa diska reprodukuje fraze koje je već izgovorio. Keš preživljava restarte, a van radnog vremena agent proverava keširane klipove tako što ih prepoznaje, pa one koji ne prođu ponovo generiše.

  • Prva rečenica preskače red

    Pod opterećenjem početak odgovora jednog poziva nikada ne čeka iza kraja odgovora drugog. Agent sintetizuje sledeće rečenice dok se prva reprodukuje.

  • Jedan sat za sve pozive

    Medij svih poziva radi na jednom zajedničkom otkucaju od 20 ms, umesto jednog tajmera po pozivu.

    Voicecore: medijski backend u Rustu (EN)
  • 69 → 0,7 µs

    Jeftiniji audio frejmovi

    Predaja frejma između telefonskog steka i agenta traje manje od mikrosekunde umesto desetak.

    Voicecore: medijski backend u Rustu (EN)

Pre i posle: isti stend, jedan poziv od 20 minuta i 50 razgovora, agent za regrutaciju. Keš: 64.192 fraze u testu opterećenja. Predaja frejma: merena izolovano na biblioteci za telefoniju.

Sluša dok govori

Kanal pozivaoca ostaje otvoren. Detekcija glasa i prepoznavanje rade na njemu dok agent govori, a agent reaguje na ono što čuje.

  • Upadice koje nešto znače

    Pozivalac može da govori preko agenta, a agent staje. Upadicu prepoznaje po tekstu ili po zvuku. Akustički režim ima sopstveni prag i traži neprekinut govor, pa tastatura, zalupljena vrata ili kašalj ne prekidaju agenta. Agent ignoriše kratak fragment niske pouzdanosti preko sopstvenog glasa, a tako izgleda eho.

  • Glas se povlači

    Kada pozivalac počne da govori, glas agenta se stišava i zatamnjuje: manja jačina, manje visokih frekvencija. Ako pozivalac kaže nešto što se računa, agent staje. Posle „aha“ ili kašlja vraća se od najbliže granice sloga, od početka rečenice ili iz tačne tačke prekida. Podešava se po agentu.

  • „Aha“ u pauzama

    Usred duge replike pozivaoca agent ubacuje kratke potvrde sopstvenim glasom. To su unapred snimljeni klipovi koje je čovek preslušao i odobrio. Reprodukuju se u pauzama, sa verovatnoćom, minimalnim razmakom, ograničenjem po replici i bez ponavljanja, a nikada kada model kraja replike smatra da je pozivalac završio.

  • Kaže kada nije siguran

    Pouzdanost prepoznavanja ulazi u prompt agenta. Agent vidi nesigurnu transkripciju označenu kao takvu i traži od pozivaoca da ponovi umesto da pogađa ime ili broj.

  • Učtivo rukovanje tišinom

    Ponovni upit, pa pozdrav, mereno od stvarnog kraja reprodukcije, a ne od kraja sinteze.

  • Prostorija oko glasa

    Opcionalna pozadina kancelarije ili sale za sastanke, pomešana ispod glasa od prve sekunde poziva.

  • Agent generiše pozdrav tokom odlaganja zvonjenja i šalje ga rečenicu po rečenicu.
  • Širokopojasni G.722 gde ga druga strana podržava. Ublaženo automatsko pojačanje podiglo je odnos signal-šum sa 23 na 28,7 dB na 11 označenih stvarnih poziva.
  • Agentovo „aha“ može da se vrati kroz liniju sa slušalice pozivaoca. Prepoznavanje ga uklanja iz transkripta, a agent drži potvrde van istorije razgovora.

Slušanje dok govori: cela beleška

Glasovi u toku, vaša imena

Klonirajte glas ili izaberite jedan iz kataloga, pa ga naučite kako da izgovara vaša imena.

  • Kloniranje glasa

    Novi glas iz uzorka od 10 do 30 sekundi i njegovog transkripta.

  • Rečnici izgovora

    Nazivi brendova, ulice i žargon izgovoreni onako kako ih vi izgovarate, sa preslušavanjem.

  • Jedan glas po agentu

    Iz kataloga ili kloniran, brzinom koju zadate.

  • Sinteza u toku

    Rečenicu po rečenicu: sledeća rečenica je spremna pre nego što se prva završi.

Atlas

Vaši dokumenti, pretraženi u okviru budžeta kašnjenja.

RAGKnowledge Hub

Atlas je naš knowledge hub. Agenta povezujete sa jednom ili više baza znanja, a Atlas vraća pasuse koji odgovaraju na pitanje.

  • Pretraga pre svakog odgovora

    Brza pretraga traje oko 150 ms na serveru. Ako se ne vrati u roku od 400 ms, agent odgovara bez nje.

  • Dublja pretraga na zahtev

    Za teška pitanja model sam traži obimniju pretragu. Traje 0,7 do 1,2 s, a agent u međuvremenu izgovara kratku frazu da linija ne zaćuti.

  • Hibridno pretraživanje

    Pretraga po značenju i po ključnim rečima, spojene, uz reranker u dubljem režimu.

  • Bilo koji format

    PDF, Office fajlovi, tabele, veb stranice i skenovi sa OCR-om. Atlas ponovo obilazi izvore po rasporedu.

  • Vidite zašto

    U Prompt Studiju svaki odgovor pokazuje koje je baze znanja agent pretražio i šta se vratilo.

  • ≈ 150 msbrza pretraga, na strani servera
  • 0,7–1,2 sdublja pretraga
  • 400 msbudžet pre nego što agent nastavi bez nje

Atlasov test domen: 144 do 156 ms na strani servera u brzom režimu; 636 do 1.090 ms u dubljem režimu, 0,73 do 1,20 s ukupnog vremena.

Polygon

Probni poligon za glasovne agente. Simulira pozivaoce, ocenjuje svaki razgovor i pokazuje gde se dve verzije agenta počinju razlikovati. U paketu Pro to je simulacija dijaloga.

  1. Scenario
  2. Simulirani pozivalac
  3. Razgovor
  4. Determinističke provere
  5. Sudija
  6. Probe ponašanja
  7. Poređenje

Jedna ocena, osam kriterijuma

Sudija čita ceo razgovor, činjenice o pozivaocu i trag korišćenja alata, pa ocenjuje svaki kriterijum uz dokaz citiran iz transkripta.

  1. Ostvarenje cilja25
  2. Poštovanje uputstava15
  3. Kvalitet korišćenja alata15
  4. Činjenična tačnost10
  5. Kvalitet dijaloga10
  6. Otpornost10
  7. Usklađenost sa bezbednošću10
  8. Persona i ton5

0 do 100: prolaz od 75, upozorenje od 50

Pada bez obzira na ocenu

  • Zabranjena fraza u govoru agenta
  • Kršenje bezbednosti
  • Neispravan poziv alata koji je stigao do pozivaoca

Gde se dve verzije razilaze

  1. PozivalacTreba da pomerim termin.

    Verzija A: Naravno. Koji je broj vaše rezervacije?

    Verzija B: Naravno. Koji je broj vaše rezervacije?

  2. PozivalacČetiri četiri jedan sedam.

    Verzija A: Hvala. Četvrtak u deset ili petak u dva?

    Verzija B: Hvala. Četvrtak u deset ili petak u dva?

  3. Tačka razilaženja · replika 3

    PozivalacPetak.

    Verzija A: Gotovo: petak u dva. Dobićete SMS.

    Verzija B: Izvinite, možete li da ponovite broj?

Ilustracija: isti simulirani pozivalac prema dve verzije agenta. Polygon poravnava razgovore replika po replika i označava prvu repliku u kojoj se razlikuju.

  1. Pozivaoci koji se opiru

    Simulirani pozivaoci sa poznatom istinom
    Šest tipova pozivalaca (saradljiv, zauzet, nepoverljiv, zbunjen, agresivan, brbljiv), četiri željena ishoda i pet nivoa težine. Svaki pozivalac nosi sopstvene činjenice, pa sudija zna da li je agent ostvario cilj i da li je nešto izmislio.
    Generisano iz vašeg agenta
    Polygon piše pozivaoce na osnovu prompta samog agenta i ponovo ih generiše kada se prompt promeni.
    Namerno tvrd pristup
    Šum prepoznavanja (ispuštene reči, cifre čitane jedna po jedna, reči sličnog zvuka), spori ili neispravni alati, pozivaoci koji upadaju u reč i skreću s teme. Sa zadatim semenom, pa se razgovor koji padne ponavlja replika po replika.
  2. Ocena koja nešto znači

    Osam kriterijuma, ponderisanih za telefonskog agenta
    Ostvarenje cilja vredi pet puta više od tona. Ocena od 0 do 100, uz prolaz, upozorenje ili pad.
    Tvrde kapije
    Zabranjena fraza, kršenje bezbednosti ili neispravan poziv alata koji je stigao do pozivaoca obara razgovor bez obzira na ocenu.
    Sudija koji ne pogađa
    Sudija za svaku ocenu navodi dokaz iz transkripta, ponovljena ocenjivanja se spajaju medijanom, a kriterijum bez ocene računa se kao minimum.
  3. Ponašanje, jedno po jedno pitanje

    Probe
    Provere sa da/ne odgovorom, poput „da li je agent ponovo pitao posle čudnog odgovora?“, iskazane sa intervalom od 95%, tako da niko ne čita „3 od 4“ kao 75%.
    Deterministične metrike
    Računaju se na svakom transkriptu, uz detekciju petlji koja prekida razgovor koji se vrti u krug.
  4. Dve verzije, jedna pored druge

    Matrica scenarija i verzija
    Poređana po tome gde se verzije najviše ne slažu.
    Tačka razilaženja
    Prva replika u kojoj se dva razgovora razilaze, sa transkriptima poravnatim jedan pored drugog.
    Pretraga parametara
    Po modelima i podešavanjima, jedan faktor po jedan, na mreži ili nasumično, rangirano po oceni, zatim po stabilnosti, pa po brzini.
  5. Pre prvog poziva i posle poslednjeg

    Analiza prompta
    Pre nego što se ijedan razgovor pokrene, Polygon čita prompt i ističe preopterećena uputstva, zakopana pravila, sukobe, nejasnoće i ponavljanja.
    Stvarni pozivi
    Uvezite transkripte iz produkcije i ocenite ih istom rubrikom i probama, da vidite da li nova verzija bolje prolazi na pozivima iz prošlog meseca.
    Čuva se svaka verzija
    Promptovi, pozivaoci, zamene za alate, rubrike i probe su nepromenljive verzije koje možete da poredite.
  • 8ocenjenih kriterijuma
  • 3tvrde kapije
  • 6tipova pozivalaca
  • 5nivoa težine

Sopstvena infrastruktura

Sopstveni modeli i modeli otvorenih težina na serverima koje vodimo u EU, ili na vašim. Nijedan zvuk ni tekst pozivaoca ne ide spoljnom AI provajderu.

Jezički model
Jezički model otvorenih težina na našim GPU-ovima
Prepoznavanje govora
Oasis Speech, naša interna usluga prepoznavanja; razume 48 jezika → Oasis Speech 2
Sinteza govora
Neuralni glasovi u toku, gotovi ili klonirani iz vašeg uzorka
Smena govornika
Detekcija glasovne aktivnosti i model kraja replike
Znanje
Atlas, naš knowledge hub, sa embeddinzima i rerankerom
Testiranje
Polygon, naš poligon za testiranje razgovora → Kako ocenjujemo razgovor
Obuka
Cadence, radno okruženje u kom treniramo Oasis Speech. Javni repozitorijum je fork našeg produkcionog sistema, pod MIT licencom → Cadence
Telefonija
SIP sa G.722 i G.711, na Incoplax telefoniji

On-premise, ceo stek se instalira na vaše servere pomoću Dockera, po potrebi i bez interneta. Server Unit nosi 100 istovremenih poziva i testiran je do 176% toga. Server Unit pod opterećenjem

100 poziva po Server Unit-u, testirano do 176%

Server Unit nosi ceo glasovni stek za do 100 istovremenih poziva. Opterećenje smo podizali od jednog poziva do 176% nazivnog kapaciteta i pratili vreme odgovora, udeo odgovorenih replika i same pozive. Zatim smo optimizovali stek za veliko opterećenje i ponovili test: kapacitet na Standard nivou se otprilike udvostručio, a na najvišem koraku svi pozivi su se povezali i nijedan nije pao.

Izmereno na jednom Server Unit-u.

Server Unit pod opterećenjem

U brojkama

Izmereno na stendu za test opterećenja sa agentom za regrutaciju, osim ako nije drugačije navedeno.

  • ≈ 0,27 ssopstveno vreme agenta od poslednje reči pozivaoca do prvog zvuka agenta
  • 35 msod odluke da je pozivalac završio do prvog zvuka, uz rani start
  • 96%replika ima prepoznati tekst spreman u roku od 10 ms od te odluke
  • ≈ 100 msdo prvog zvuka sveže sintetizovane rečenice (medijana)
  • ≈ 1 msda se reprodukuje fraza koja je već u kešu glasa
  • 5–8×brže od stvarnog vremena: koliko brzo se glas sintetizuje
  • 94%prvih fraza dolazi iz keša glasa
  • 98%odgovora pokreće jezički model pre kraja pauze
  • > 99%replika pozivalaca odgovoreno pri 176% nazivnog kapaciteta
  • ≈ 150 msza brzu pretragu znanja na serveru

Spremnost prepoznavanja: 96 do 97% od 58.000 replika pri svim opterećenjima. Brzina glasa: medijana 5,0 do 6,5× pri različitim nivoima opterećenja, samo promašaji keša. Prvi zvuk sveže rečenice: medijana 76 do 106 ms pri različitim nivoima opterećenja.

Sledeći korak

Čujte tu četvrt sekunde sami: na početnoj stranici je poziv uživo sa jednim od naših agenata.

Isprobajte uživo

Pridružite se čekoj listi

Uvodno otvaramo pristup postepeno. Obavestićemo vas kada se otvori vaše mesto.