Slušanje dok govori i šta agent radi sa otvorenim kanalom pozivaoca

Kako Dialogist agent nastavlja da sluša dok govori, počinje odgovor unutar pauze i razlikuje upadanje u riječ od kašlja.

Istraživanja

98%odgovora pokreće jezički model prije kraja pauze

Na telefonskoj liniji oba sagovornika mogu govoriti istovremeno. Glasovni agent koji odgovara samo kad pozivalac ćuti, a gluv je dok govori, radi u polu-dupleksu i zvuči kao voki-toki. Ova bilješka opisuje kako Dialogist agent nastavlja da sluša dok govori. Nadovezuje se na raniju bilješku, Kako znati da je pozivalac završio.

Brojevi o kašnjenju potiču sa stvarnih telefonskih poziva (model kraja replike) i sa stola za test opterećenja sa agentom za zapošljavanje (rani početak).

Brojevi o kašnjenju na kojima počiva ova bilješka.
Mjera Vrijednost
Replika pozivalaca na stvarnim pozivima rano zatvorenih intonacijom, prije tajmera 87%
Vrijeme vraćeno po replici tim ranim zatvaranjima, u prosjeku ≈ 0,3 s
Odgovori koji pokreću jezički model prije kraja pauze 98%
Ušteda vremena odgovora zbog ranog početka, od jednog poziva do 128 razgovora 89 do 235 ms
„Aha“ klipovi puštani pozivaocu bez odobrenja čovjeka 0

Šta podrazumijevamo pod full duplex

Agent je cjevovod koji radi u strujanju, a svojstvo do kojeg nam je stalo je da kanal pozivaoca ostaje otvoren. Dok agent govori:

  • detekcija glasa i dalje radi nad zvukom pozivaoca;
  • prepoznavanje ga i dalje strujno obrađuje u okvirima od 20 ms;
  • agentov izlazni zvuk prolazi kroz mikser koji ga može stišati, prigušiti, pauzirati i nastaviti, i u koji se mogu miješati drugi zvukovi.

Odjeljci ispod opisuju šta agent radi sa tim otvorenim kanalom.

Odluka da je replika gotova

Tajmer tišine bira između dvije loše opcije: čekati dovoljno dugo da bude siguran, pa svaki odgovor kasni, ili reagovati na kratku pauzu i prekinuti ljude usred broja.

Agent čeka 192 ms, a zatim pita mali model zvuči li rečenica završeno. Ako je model siguran, replika se odmah zatvara. Ako nije, agent nastavlja da sluša, a duža tišina i dalje zatvara repliku da niko ne čeka vječno.

  • Presuda modela važi na sljedećem okviru zvuka od 32 ms.
  • Na stvarnim pozivima (1.468 replika pozivalaca) model je rano zatvorio 87% replika, njih 95% na prvi pogled, i vratio u prosjeku oko 0,3 s po replici. U 96% pauza u kojima je pozivalac samo razmišljao, sačekao je.
  • Prvo posmatranje. Model ima tri režima po agentu: off, observe i commit. U režimu observe bilježi šta bi odlučio i ništa ne mijenja. Pragove podešavamo na stvarnim pozivima u režimu observe, a na commit prelazimo kad se zapis slaže s onim što su pozivaoci radili.
  • Liste i brojevi su mjesto gdje najpažljivije tražimo prerana zatvaranja. Pozivalac koji diktira broj kartice zvuči završeno između grupa cifara.

Početak odgovora prije kraja pauze

Između posljednje riječi pozivaoca i zatvaranja replike postoji prozor od 200 do 400 ms. Prepoznavanje u toku pauze pravi probni prolaz, pa je tekst obično već poznat.

Rani početak koristi taj prozor. Kad je pauza dovoljno duga, a probni tekst dovoljno pouzdan, agent gradi prompt koji bi gradio poslije zatvaranja replike, sa očekivanim odgovorom pozivaoca na vrhu, i šalje ga jezičkom modelu. Model piše prvu rečenicu dok je replika formalno još otvorena.

Rani zahtjev može samo da čita, zbog čega je bezbjedan:

  • ništa ne upisuje u istoriju razgovora;
  • ne poziva sintezu govora;
  • ne izvršava alat i ne može završiti ni prebaciti poziv;
  • ako se replika zatvori sa istim tekstom, istim promptom i istom istorijom, agent preuzima pripremljene rečenice. Ako se bilo šta razlikuje, agent odbacuje zahtjev i izvršava se uobičajeni put;
  • ako pozivalac ponovo počne da govori ili upadne u riječ, agent poništava zahtjev i zatvara HTTP tok.

U testu opterećenja zahtjev je krenuo prije odluke u 98% odgovora, u prosjeku 225 ms ranije na 50 razgovora i 508 ms ranije na 128. Rani početak je smanjio srednje vrijeme odgovora za 89 ms sa jednim razgovorom, za 189 ms na 96 i za 235 ms na 128.

Ušteda raste sa opterećenjem: pod opterećenjem replika duže traje do zatvaranja, a pripremljeni odgovor ima više vremena da bude spreman.

Upadanje u riječ

Pozivaoci govore preko agenata. Agent u nekoliko desetina milisekundi odlučuje o dvije stvari: je li ovo uopšte upadanje u riječ i vrijedi li dovoljno da stane.

Dva načina da se otkrije

Upadanje potvrđeno tekstom traži da je prepoznavanje proizvelo najmanje četiri slova teksta. Akustičko traži da detekcija glasa čuje neprekinut govor, što je brže. Akustički režim ima svoj prag, odvojen od onog koji otvara običnu repliku, jer greška više košta: pogrešno „replika otvorena“ košta prazan bafer, dok pogrešno upadanje prekida agenta usred riječi.

Šta se ne računa

Akustički režim traži neprekinut govor iznad praga. Tastatura proizvodi mnogo kratkih naleta; brojač se poništava u svakom razmaku među njima i nikad ne dostigne granicu. Govor ga drži bez razmaka. Kašalj i golo „aha“ takođe se ne računaju.

Jeka

Kod poziva iz pregledača jeka agentovog glasa može doći do mikrofona. Agent je prepoznaje kao jeku, bez akustičke potvrde i sa niskom pouzdanošću prepoznavanja, i dovršava rečenicu.

Čega se agent sjeća

Agent u sljedećem promptu označava prekinut odgovor, pa model zna da pozivalac nije čuo sve. Po želji agent dobija i neizgovoreni ostatak odgovora, i može ga nastaviti ili odbaciti.

Prekidač

Agent se može podesiti da uopšte ne ustupa, za linije koje se moraju pročitati u cjelini.

Korak unazad prije zaustavljanja

Prekinuti na prvi zvuk je neuljudno kad je taj zvuk „da, da“. Kad pozivalac počne da govori, agentov glas prvo ustupi korak unazad i staje tek ako se govor pokaže upadanjem u riječ.

  • Kad pozivalac počne da govori, jačina se stišava. Po zadanim postavkama pada 15 dB tokom 150 ms, a glas se i prigušuje: visoke frekvencije se spuštaju i uključuje se niskopropusni filter, pa pad zvuči kao da se neko odmakao od telefona.
  • U režimu hold agent pauzira nakon otprilike jednog sloga (200 ms). U režimu duck nastavlja da govori tiše.
  • Ako se govor pozivaoca računa kao upadanje, agent staje uz utišavanje od 30 ms. Ako se ne računa, glas se vraća tokom 300 ms.
  • Poslije hold-a agent čeka pola sekunde u slučaju da pozivalac ponovo počne da govori, pa nastavlja od najbližeg razmaka među slogovima (do 400 ms unazad), od početka rečenice ili od tačne tačke, šta god odgovara. Ako je pauza bila duga (1,5 s), vraća se na početak rečenice.
  • Ako se ni jedno ni drugo ne dogodi 2,5 s, agent odlučuje hoće li stati ili vratiti glas.

Svaka od ovih stavki ima postavku po agentu, a agent koji ne smije biti prekidan ne stišava glas.

Izgovaranje „aha“

Dok pozivalac dugo govori, tišina s druge strane zvuči kao prekinut poziv. Ljudi je popunjavaju sitnim zvukovima.

Agent radi isto, sa skupom kratkih potvrda: „aha“, „tako je“, „mm“. Klipovi su unaprijed napravljeni agentovim glasom, a čovjek ih sluša i odobrava prije nego što se bilo koji može upotrijebiti. Ako glas nema odobren skup, funkcija se za taj poziv sama isključuje, a agent ne pušta nijedan neprovjeren klip.

Agent pušta jedan:

  • unutar pauze u govoru pozivaoca (250 do 600 ms tišine) ili po tajmeru;
  • tek pošto je pozivalac govorio 2,5 s;
  • sa vjerovatnoćom (po zadanim postavkama 0,6), najviše jednom u 3 s i 3 puta po replici;
  • nikad isti klip kao jedan od posljednja četiri;
  • ne kad model kraja replike procijeni vjerovatnoću „završeno“ iznad 0,4.

Agent pušteni klip izostavlja iz istorije razgovora, a kad se njegova jeka vrati niz liniju sa pozivaočeve slušalice, uklanja je iz transkripta. Sve ovo traži prozor za pauzu: replika mora ostati otvorena duže od pauza koje agent traži. Ako postavke ne ostavljaju mjesta, funkcija se za taj poziv sama isključuje, a kartica agenta u Prompt Studiju prikazuje upozorenje.

Ostatak prostorije

  • Pozadina. Opcioni zvuk kancelarije ili sale za sastanke, izjednačen, miješan od prve sekunde poziva. Agent ga ne računa kao svoj glas za tajmere tišine i upadanje u riječ.
  • Tišina. Ponovni upit, a zatim ljubazan pozdrav, mjereno od kraja reprodukcije na liniji, a ne od kraja sinteze.
  • Pouzdanost. Agent jezičkom modelu prosljeđuje nesigurnost prepoznavača kao napomenu uz repliku, broj ili oznake na pojedinim riječima. Prompt nalaže modelu da pita ponovo umjesto da pogađa ime ili cifru.
  • Pozdrav. Agent generiše pozdrav i šalje ga rečenicu po rečenicu tokom kašnjenja zvonjenja, pa počinje čim se linija javi.

Kako to testiramo

  • Observe prije commit za model kraja replike, kao gore.
  • Prompt Studio ima karticu poziva: agenta zovete iz pregledača i čujete isti pozdrav, postupanje sa tišinom i prebacivanja kao na telefonu.
  • Polygon sonde provjeravaju ponašanje u simuliranim razgovorima („je li agent pitao ponovo nakon čudnog odgovora?“). Kako ocjenjujemo razgovor opisuje metodu, a stranica Tehnologije opisuje Polygon.
  • Test opterećenja provjerava da sve ovo drži sa 100 aktivnih poziva: pogledajte Jedan Server Unit pod opterećenjem.

Nastavite čitati

Sljedeći korak

Obezbijedite rani pristup Dialogist glasovnim agentima: timove sa liste čekanja pozivamo kako se oslobađa kapacitet.

Pridružite se listi čekanja

Timove puštamo postepeno. Obavijestićemo vas imejlom kada se oslobodi vaše mjesto.