A hangmodell hanganyagot állít elő, egy telefonhíváshoz pedig ennél több kell. A kettő között az ügynök minden mondatot levág, újramintavételez, visszafelismerés útján ellenőriz és gyorsítótáraz, a gyorsítótár pedig éjjel újra ellenőrzi magát. Ez a jegyzet ezt a feldolgozást írja le.
A szintetizált mondat saját kis csenddel kezdődhet, amit egyetlen időzítési napló sem mutat. Ez a jegyzet innen indul.
Mérési alap: a nyitó csend 400 klipből a hanggyorsítótárban, −50 dBFS küszöbbel. A gyorsítótár arányai a terhelési teszt állványáról származnak, toborzó ügynökkel, 64 192 kifejezéssel. Az ellenőrzések küszöbei az éles alapértékek, és telepítésenként állíthatók.
Röviden: az első szó előtti csend mediánja 280 ms-ról 40 ms-ra csökken. A gyorsítótárba kerülő minden klipet visszafelismerünk, és összevetjük azzal a szöveggel, amelyet ki kellett volna mondania. A gyorsítótár minden éjjel újra ellenőrzi magát, amíg nincs hívás. A terhelési teszt állványán a válaszok első kifejezéseinek 94%-a az ellenőrzött gyorsítótárból jött, és egy tárolt kifejezés nagyjából 1 ms alatt indul.
A hanganyagtól a hívásban elhangzó válaszig
A beszédszintézis-modell szövegből hangot csinál. Nem telefonvonalra készült, és ez apró dolgokban látszik, amelyeket a hívó azonnal észrevesz:
- Csend az első szó előtt. Minden klip rövid szünettel kezdődik. A hívó ezt az ügynök habozásaként hallja.
- Szünet a mondaton belül. Telefonvonalon a mondat közepén megszólaló fél másodperces csend megszakadt hívásnak hangzik. A hívó beszélni kezd a résben, és a beszédforduló felborul.
- Elvágott vagy végtelen mondat. Ritkán előfordul, hogy a modell félúton megáll, vagy ismétlésbe fut.
- Rossz szavak. Bármelyik neurális hang mondhat olykor mást, mint a kapott szöveg, ezért minden klipet ellenőrzünk. Minden akusztikai mérték rendben van: tiszta beszéd, csak egy másik mondatról.
- Kattogás és túlvezérlés. Az egyik mintavételi frekvencián készült hangnak egy másikon, darabokban kell a vonalra jutnia, minden illesztésnél kattogás nélkül.
Ez a távolság a hanganyag és a hívásban használható válasz között, és egyik sem a modell hibája. A Dialogist ezt a távolságot a kimenő feldolgozással, minden klip ellenőrzésével és egy magát tisztán tartó gyorsítótárral hidalja át.
A csend az első szó előtt
400 klip elejét mértük meg a hanggyorsítótárban. A medián klip 280 ms csenddel indult, és egyik sem kevesebbel, mint 200 ms. Ez a csend közvetlenül a hívó kérdésének vége és az ügynök válasza közé esik.
Az ügynök lejátszás közben vágja le:
- Keretek. A vágó a hangot 10 ms-os keretekben olvassa. Az első, −50 dBFS-nél hangosabb keret a beszéd kezdete.
- Ráhagyás. A lejátszás 40 ms-mal e keret előtt indul. Negyven ezredmásodperc megőrzi az első hang puha kezdetét, így semmi sem csorbul.
- Folyamatos átvitel. A vágó csak a néma kereteket tartja vissza, a beszéd kezdetétől mindent bájtra pontosan továbbad.
- Korlát. Ha 600 ms-on belül nem jelenik meg beszéd, a vágó változtatás nélkül játssza le a klipet: egy szünet olcsóbb, mint egy elnyelt első szó.
- Az eredeti megmarad. A gyorsítótár a vágatlan klipet őrzi. A vágás lejátszáskor történik, így a tárolt fájl érintése nélkül finomhangolható.
Alapértelmezés szerint az ügynök minden válasz első mondatát vágja, ott a csend puszta várakozás. A későbbi mondatok közötti szüneteket úgy hagyja, ahogy a hang készítette, mert ott lélegzetvételnek hatnak.
A vágás a medián 280 ms nyitó csendből nagyjából 240 ms-ot eltávolít. Egyetlen hívás válasza a vonalon körülbelül 200 ms-mal hamarabb érkezett.
Mintavételi frekvenciák kattogás nélkül
A hang stúdió-mintavételi frekvencián készül, a telefonvonal pedig 8 vagy 16 kHz-en fut. Egy egész klipet egyszerre átalakítani könnyű. A kattogás ott keletkezik, ha a folyamot darabonként alakítjuk: a külön átalakított szelet elején és végén kis tranziens jelenik meg, és az illesztések hallhatók.
Az ügynök overlap-save módszerrel alakít át. Minden szeletet mindkét oldalán kontextussal szűr, és csak a közepét küldi ki, azt a részt, amelyet teljes kontextussal számolt. Így folyamként átadva a kimenet legfeljebb 2 legkisebb helyiértékű bitnyire tér el attól, mintha az egész klipet egyszerre alakítottuk volna át, ami egy telefonvonal által átvihető bármely részletnél kisebb.
Minden klipet ellenőrzünk
Mielőtt egy klip a gyorsítótárba kerül, ahol sok hívó fogja hallani, az ügynök ellenőrzi. Az ellenőrzés a hangot átfuttatja a beszédfelismerőn és egy sor akusztikai teszten.
| Ellenőrzés | Megbukik, ha | Miért |
|---|---|---|
| Visszafelismerés | a felismert szöveg kevesebb mint 80%-ban egyezik a szándékolttal | Csak így derül ki, hogy a hang ezt a mondatot mondta. A rossz szavakból álló gördülékeny klip minden mást kiáll. |
| Hossz | a klip rövidebb a szövegből várt hossz 0,4-szeresénél vagy hosszabb a 2,5-szeresénél | A túl rövid az elvágott mondatot fogja meg, a túl hosszú az ismétlést. |
| Szünet belül | a mondaton belüli bármely csend hosszabb 0,7 s-nál | Telefonvonalon megszakadt hívásnak hangzik. |
| Szint | a klip egészében halkabb −50 dBFS-nél | Üres vagy csaknem néma klip. |
| Túlvezérlés | a minták több mint 0,5%-a eléri a teljes kivezérlést | Torzítás, amelyet a hívó ropogásként hall. |
| Szélek | a csend bármelyik végén hosszabb 0,5 s-nál | Csak figyelmeztetés: maga a beszéd rendben van. |
Két részlet teszi tisztességessé az ellenőrzést:
- A számokat engedékenyen ítéljük meg. A felismerés az „500”-at szavakkal írja le, ezért a betűről betűre összevetés egy hibátlan klipet is megbuktatna. Számjegyeket tartalmazó szövegnél az eltérés csak figyelmeztetés, és az ügynök nem generálja újra a klipet végtelen ciklusban.
- A kiejtési jeleket eltávolítjuk az összevetés előtt, így a szövegben álló hangsúlyjel nem számít hibának.
Az ügynök újragenerálja a megbukott klipet. Ha az még mindig megbukik, megjelöli, hogy egy ember hallgassa meg.
Kifejezések a hívás előtt készen
Egy ügynök sok mondata előre látható: az üdvözlés, a forgatókönyv kérdései, a visszaigazolások. A hívások kezdete előtt bemelegítjük az ügynök gyorsítótárát: szimulált beszélgetéseket folytatunk az ügynökkel, összegyűjtjük, amit mond, minden kifejezést szintetizálunk, a fentiek szerint ellenőrzünk és eltárolunk.
Ha egy kifejezés megbukik az ellenőrzésen, második próbát kap, és amit ez után is elmarad a mércétől, azt a jelentés megjelöli.
A terhelési teszt állványán a válaszok első kifejezéseinek 94%-a és mind a 64 192 kifejezés 95%-a a gyorsítótárból jött. Egy tárolt kifejezés nagyjából egy ezredmásodperc alatt indul, egy friss nagyjából 100 ms alatt.
A gyorsítótár éjjel megtisztítja magát
A gyorsítótár annyit ér, amennyit a leggyengébb klipje, ezért a Dialogist munkaidőn kívül újra ellenőrzi.
- Mikor. Éjszakai időablakban, alapértelmezés szerint 1:00 és 6:00 között, és csak akkor, ha nincs futó hívás. Ha hívás érkezik, az ellenőrzés szünetel, és egy perc múlva újra körülnéz.
- Mit. Azokat a klipeket, amelyeket még sosem ellenőriztünk, amelyek figyelmeztetéssel mentek át, és amelyeket 30 napnál régebben ellenőriztünk.
- Milyen sorrendben. A legtöbbet lejátszott elöl. Egy naponta ezerszer hallott kifejezés hibája többe kerül, mint egy egyszer hallotté.
- Mennyit. Éjszakánként legfeljebb 2000 klipet, egyenként, hogy az ellenőrzés soha ne versenyezzen a másnap reggellel.
- Milyen nyelven. Az ellenőrzés minden klipet azon a nyelven ismer fel, amelyre készült, így nem bukik meg tévedésből egy angol kifejezés egy többnyire szerb gyorsítótárban.
- Hiba esetén. Az ellenőrzés legfeljebb kétszer újragenerálja a klipet. Az új hang ugyanazon a bejegyzésen belül váltja a régit, és a bejegyzés megtartja a lejátszási előzményeit.
- Karantén. Ha az újragenerálás nem javít a klipen, az ellenőrzés karanténba teszi. Az ügynök soha nem játszik le karanténban lévő klipet: ehelyett élőben szintetizálja a mondatot, és az élő eredmény nem írhatja felül a karanténba tett fájlt. A klip addig marad, amíg egy ember meg nem hallgatja, és jóvá nem hagyja, újra nem generálja vagy törli.
Minden éjszakai futás egysoros jelentést hagy maga után: hány klipet ellenőrzött, hány ment át, hányat generált újra és hányat tett karanténba.
Ugyanaz a mondat, ugyanaz a hang
A gyorsítótár minden klipet mindazzal együtt tárol, ami a hangzását befolyásolja: a hanggal, a beszédtempóval, a nyelvvel és a kiejtési profillal. Két, azonos hangú, de eltérő sebességű ügynök soha nem osztozik egy klipen.
A kiejtési szótárak (márkanevek, utcák, szakzsargon) szintén a klippel együtt tárolódnak. Amikor az éjszakai ellenőrzés újragenerál egy kifejezést, ugyanazokat a szótári bejegyzéseket alkalmazza, amelyeket az eredeti hívás, így az új klip úgy hangzik, mint az, amelyet felvált.
A vonalon
Az utolsó lépés a keverő, amely a hangot a hívóhoz küldi:
- Lágy limiter −1 dBFS-nél az összes éppen lejátszott hang összegén, hogy az ügynök hangja és bármely háttérhang soha ne vezérelje túl együtt a jelet.
- 30 ms-os lecsengetés, amikor az ügynök félbeszakítás miatt megáll, így kattogás nélkül hallgat el.
- Visszavétel az ügynök hangjából, amíg a hívó beszél; a hang visszatér, amikor a hívó abbahagyja. A Hallgatás beszéd közben leírja, hogyan kezeli az ügynök a hívó oldalát.