Fyrir raddgervigreind er erfiðara en ætla mætti að vita hvenær á að tala. Menn skiptast á að tala án fyrirhafnar á sekúndubroti, en eldri raddgervigreindarkerfi réðu ekki við þennan takt. Lotuskipt kerfishögun þeirra studdist við örsmá líkön, svokallaða lotuskynjara, sem stóðu frammi fyrir vanþakklátu verkefni: Giska of snemma og notandinn er stöðvaður; giska of seint og svarið virkar svifaseint. Mun stærra LLM gat fyrst hafið vinnu eftir að skynjarinn hafði tekið ákvörðun.
GPT‑Live, þriðja kynslóð raddkerfis okkar, fjarlægir lotuskynjarann úr hljóðleiðinni. Raddlíkan þess er tvíátta, sem þýðir að það getur hlustað og talað samtímis. Þar með er ekki lengur þörf á sérstökum skynjara og samtalið verður tafarlausara og eðlilegra. Þegar þörf er á dýpri rökum eða verkfæranotkun getur GPT‑Live einnig leitað til líkana okkar sem eru framarlega, svo sem GPT‑5.5, án þess að rjúfa flæði samtalsins. Saman veita þessir eiginleikar GPT‑Live einstaka blöndu af skjótum samtalsviðbrögðum og greind.
Til að skila þessari upplifun í miklu umfangi þurfti nýja kerfishögun sem var bestað fyrir litla töf. Ólíkt hefðbundinni ályktun beiðna og svara streymir kerfið okkar innkomandi hljóði inn í raddlíkanið og töluðu svari aftur til notandans, en sér um úthlutun á aðskildri ósamstilltri leið. Undanfarna sex mánuði endurhönnuðum við ályktun líkana, samhengisstjórnun og miðlaflutning til að tal flæddi hnökralaust frá enda til enda.
Kerfishögunin skapar einnig skýr mörk milli meginleiðar raddarinnar og forritarökfræðinnar. Því er auðvelt að sérsníða hegðun forrits án þess að hafa áhrif á viðbragðstíma. Þessi grunnur knýr sívaxandi úrval eiginleika í ChatGPT Voice, þar á meðal nýlega útgefna möguleikann á að stjórna tölvunni þinni og samhæfa fulltrúa í ChatGPT‑skjáborðsforritinu.
Í þessari grein útskýrum við hvers vegna eldri lotuskipt kerfi uppfylltu ekki þarfir okkar og hvernig við hönnuðum nýja kerfið fyrir skjót viðbrögð á hverju lagi. Við fjöllum um ástandsmiðaða ályktun, kvika samhengisstjórnun, ósamstillta úthlutun og bestun samskiptareglna, sem saman láta GPT‑Live virka sannarlega lifandi.
Eldri raddkerfishaganir erfðu lotuskiptingu LLM-textalíkana en hver lota var aðgreindur hljóðklumpur í stað texta. Í keðjutengdum kerfum keyrðu tal-í-texta, LLM og texti-í-tal hvert á eftir öðru. Þessi röð jók tafir og hunsaði vísbendingar á borð við tónfall og talhraða.
Tal-til-tals-líkön bættu þessa nálgun með því að vinna beint úr hljóði. Með því að þjálfa líkanið til að skilja og mynda tal beint gat það varðveitt atriði sem töpuðust í uppskrift og svarað hraðar. Kerfið reiddi sig þó enn á lotuskynjarann til að ákveða hvenær ályktun gæti hafist. Líkanið sá um stærri hluta samskiptanna en þau voru áfram lotuskipt.
GPT‑Live setur raddlíkanið í stjórn samtalsins: Hljóð flæðir inn og út úr líkaninu en dýpri rök og verkfæranotkun fara fram ósamstillt. Meginverkefni kerfisins er að viðhalda óslitinni miðlunarlykkju. Önnur vinna, svo sem að kalla til líkön sem eru framarlega og varðveita samtalið, fer fram utan lifandi leiðarinnar.
Það er ekki alltaf einfalt að halda þessari miðlunarlykkju óslitinni. Allar tafir í flutningi, vinnslu eða ályktun geta heyrst sem hlé eða truflun. Eldra lotuskipt kerfi þoldi nokkurn breytileika í því hvenær hljóðklumpur barst. Lifandi miðlunarkerfi þarf hins vegar að skila hverjum hljóðramma á réttum tíma.
Fyrri vinna við ChatGPT Voice og Realtime API lagði mikilvægan grunn. Við höfðum þegar endurbyggt raddinnviði okkar til að streyma hljóði og myndskeiðum beint inn og út úr kerfunum okkar með minni og fyrirsjáanlegri töf. GPT‑Live þróaði þessa hönnun enn frekar með því að streyma miðlum alla leið til líkansins í gegnum nýtt ástandsmiðað ályktunarkerfi sem er byggt fyrir samfelld samtöl.
Straumspiluð ályktun var þó aðeins hluti lausnarinnar. Til að þetta virkaði vel í rekstri þurftum við einnig að tryggja áreiðanlega hljóðafhendingu frá biðlaranum til ályktunarkerfisins og takast á við áskoranir ástandsmiðaðrar vinnslu.
Ein af fyrstu ákvörðunum okkar var að skilja miðlunarflæðið sérstaklega frá forrita- og viðskiptarökfræði. Hljóð berst milli biðlarans og raddlíkansins um sérstaka hraðleið. Úthlutun, verkfæranotkun og önnur forritavinna fara fram handan ósamstilltra RPC-marka. Hægt verkfærakall eða bakendaþjónusta getur tafið eigin niðurstöðu en ekki stöðvað miðlunarflæðið.
Þessi aðskilnaður veitir kerfinu einnig skýr mörk fyrir sérsnið. Forrit geta breytt verkfærum, reglum og hegðun bakenda án þess að hafa áhrif á miðlunarframendann sem sér til þess að hljóðið haldi áfram að flæða. Lifandi leiðin helst lítil, fyrirsjáanleg og einbeitt að því sem verður að gerast í rauntíma.
Við skrifuðum miðlunarframendann og ályktunarrökfræðina í Go í stað eldri Python-útfærslu með asyncio. Þetta gerði afhendingu ramma mun jafnari; p95-gildi nýja kerfisins samsvaraði p50-gildi þess eldra.
WebRTC leggur grunninn að flutningnum. Það er hannað fyrir miðlun með lítilli töf og getur starfað áfram þrátt fyrir pakkatap, klukkurek og breytingar á tengingu biðlara. Ef pakkar berast seint getur WebRTC teygt örlítið á hljóðinu til að koma í veg fyrir eyður og síðan hraðað spilun stuttlega til að ná aftur rauntímanum.
Með því að lágmarka biðminni og hindranir í öllu kerfinu getum við skilað þeim viðbragðstíma undir sekúndu sem fólk væntir af samtölum.
Ástandsmiðuð ályktun felur í sér eigin rekstrarmálamiðlanir. Raddlota getur verið virk lengi en samhengi hennar vex stöðugt og tilvik líkans eru ræst og stöðvuð eftir eftirspurn.
Til að bregðast við þessu byggðum við hnökralaust kerfi til að færa lotur milli líkanstilvika. Þegar umskipta er þörf getum við hitað upp nýtt líkanstilvik samhliða því gamla, forfyllt það með núverandi samhengi lotunnar, keyrt ályktun samhliða á báðum og skipt yfir þegar nýja tilvikið er fullbúið.
Sama grunnkerfi styður einnig kvika þjöppun samhengis. Þegar líður á samtal getur uppsafnað samhengi þess að lokum farið yfir samhengismörk líkansins. Þjöppun getur minnkað samhengið svo það rúmist innan markanna en aðgerðin tekur tíma. Þar sem hún breytir eldra samhengi ógildir hún einnig lykil-gildis-skyndiminni (KV) líkansins, sem geymir athyglislykla og -gildi úr áður unnum tókum. Til að endurbyggja þá stöðu þarf nýja forfyllingu, sem veldur frekari töf.
Þess í stað meðhöndlum við þjöppun sem önnur stýrð umskipti. Á meðan upprunalega líkanstilvikið heldur samtalinu áfram þjappar kerfið samhenginu og undirbýr nýtt líkanstilvik með nýja samhenginu. Þegar tilvikið er tilbúið getum við skipt yfir án þess að rjúfa miðlunarflæðið. Þannig getur kerfið stutt langvarandi símtöl og þjappað eftir þörfum.
Þyngsta vinnan fer fram utan lifandi leiðarinnar. Samtalið heldur því taktinum jafnvel meðan tilfærslan fer fram.
Möguleiki GPT‑Live á að kalla til líkön sem eru framarlega veitir því mikinn kraft og aðskilur í raun „tal“ frá dýpri „rökum“. Til að þessi tveggja líkana kerfishögun virkaði sem eitt kerfi þurfti þó að leysa tvö tengd verkfræðileg vandamál.
Úthlutun til ítarlegri vinnu
GPT-Live veitir hröð og eðlileg svör, á meðan GPT-5.5 sér um leit í bakgrunni
Í fyrsta lagi þurfa niðurstöður að berast nógu hratt til að nýtast í samtalinu. Því þurftum við að lágmarka tafir eftir allri úthlutunarleiðinni, frá leiðarstýringu og vinnslu kvaðningar til ályktunar og verkfærakalla. Á sama tíma þurfa önnur kerfi vörunnar enn að fá aðgreind skilaboð. Við urðum því að setja yfirstandandi samtal fram á formi sem þau skildu.
Þegar úthlutun er send af stað leggjum við áherslu á tímann þar til líkanið sem er framarlega skilar einhverju gagnlegu fyrir samtalið. Raddlíkanið getur haldið samtalinu gangandi stutta stund meðan líkan sem er framarlega beitir rökum eða verkfærum, en það getur ekki falið ótakmarkaðan seinagang. Við töldum því alla úthlutunarlykkjuna — leiðarstýringu, vinnslu kvaðningar, ályktun og verkfæraköll — með í tímamörkum viðbragða.
Fyrsta bestunin felst í að setja upp líkanið sem er framarlega og öll nauðsynleg verkfæri áður en óskað er eftir úthlutun. Þegar raddlota hefst stofnar forritaþjónninn ályktunarlotu fyrir líkanið sem er framarlega og forfyllir hana með upphaflegu samhengi samtalsins. Þannig er kvaðningin fullunnin áður en fyrsta úthlutaða beiðnin berst.
Við höldum síðan ályktunarlotunni tiltækri meðan raddsamtalið stendur og notum stöðuga lotubindingu fyrir síðari beiðnir. Ásamt skyndiminni kvaðninga bæta þessar aðferðir tafir en áfram er auðvelt að jafna sig á bilun vinnslueiningar.
Rökavinna, úttaksmörk, skemu verkfæra og ferðir milli líkans og verkfæris hafa einnig áhrif á hvenær samtalið fær gagnlega niðurstöðu. Við stilltum þessa þætti til að flýta svörum. Með því að lágmarka vinnuna á úthlutunarleiðinni gerðum við raddlíkaninu kleift að nýta hratt niðurstöður frá líkönum okkar sem eru framarlega.
Þótt raddlíkanið vinni úr samfelldum talstraumum starfa mörg kerfin í kringum það enn með aðgreindar lotur notanda og aðstoðarmanns, þar á meðal samtalsviðmót ChatGPT og hlutar greiningar- og öryggisinnviða okkar. Forritaþjónninn greiðir því úr samtalinu, þar sem raddir skarast og merkingin er stundum óljós, og skiptir því í aðgreind skilaboð.
Þegar hljóð berst notar þjónninn bráðabirgðauppskriftir og tímamerki til að álykta hver hafi orðið og byggja upp skilaboðabiðröð. Nýjustu skilaboðin eru til bráðabirgða; texti þeirra, tímasetning og úthlutun til mælanda geta breyst eftir því sem meira tal berst. Þegar mælandi hefur haft orðið nógu lengi til að úthlutunin sé áreiðanleg gengur þjónninn frá samsvarandi skilaboðum.
Þetta verður flóknara þegar mælt er samtímis. Stutt viðbragð aðstoðarmannsins meðan notandinn talar (t.d. “mm hmm,” eða “okay”) ætti ekki endilega að verða að sérstökum skilaboðum. Efnislegt innskot aðstoðarmannsins ætti það hins vegar oft. Á sama hátt leggjum við áherslu á samhengi í birtum svörum aðstoðarmannsins, jafnvel þegar notandinn grípur fram í.
Allar reglur um skiptingu fela í sér málamiðlun milli ferskleika og vissu. Ef gengið er frá of snemma verður ferillinn sundurlaus og röð óstöðug. Sé beðið of lengi tefjast uppskriftir og eiginleikar sem reiða sig á þær. Kerfið heldur því utan um tvær tengdar sýnir á samtalið: bráðabirgðasýn á núverandi stöðu og endanlega skrá yfir það sem sagt var. Samtalssýnin í notandaviðmóti forritsins ræður við uppfærslur og notar því bráðabirgðasýnina. Skráning í greiningarferlið krefst hins vegar endanlegrar uppskriftar.
Þannig fær afgangurinn af ChatGPT stöðuga sýn á samskiptin án þess að lotuskiptingu sé þröngvað upp á lifandi raddleiðina.
Skjót viðbrögð hefjast um leið og notandinn smellir á hnappinn. Með GPT‑Live þarf kerfið að koma miðlunarleiðinni á og byrja að senda hljóð í gegnum líkanið áður en samtalið getur hafist. Þar með er hver hluti ræsingarferlisins á mikilvægu leiðinni.
Eins og áður kom fram veitir WebRTC traustan grunn fyrir rauntíma, en til að ræsa hefðbundna WebRTC-lotu þarf óvæntan fjölda handabanda samskiptareglna og netferða fram og til baka. WebRTC er eldra en áherslan á að lágmarka ferðir fram og til baka sem mótaði síðari samskiptareglur á borð við QUIC. Því endurtaka undirliggjandi samskiptareglur þess stundum vinnu þegar þær eru notaðar saman. Til dæmis var hver samskiptaregla með eigin vörn gegn DoS, jafnvel þegar hennar var ekki þörf í öllu WebRTC-kerfinu.
Við greindum samskiptalagastaflann og þróuðum WebRTC Abridged Roundtrip Protocol (WARP(opnast í nýjum glugga)), sem fækkar netferðum við ræsingu miðla og gagna úr sex í eina. WARP nær þessu með afturvirkt samhæfum endurbótum á samskiptareglum: með því að flytja DTLS-handabandið samhliða ICE (SPED(opnast í nýjum glugga)), nota hraðara DTLS 1.3(opnast í nýjum glugga)-handabandið, semja fyrirfram um SCTP-handabandið (SNAP(opnast í nýjum glugga)) og semja fyrirfram um gagnarásir í stað þess að nota DCEP(opnast í nýjum glugga).
Við hönnuðum WARP sem safn opinna forskrifta í samstarfi við aðila úr WebRTC-samfélaginu svo víðara vistkerfið gæti notið góðs af vinnunni. Við vinnum að framgangi tillagnanna innan TSVWG-vinnuhóps IETF. Stuðningi við WARP hefur þegar verið bætt við bæði libwebrtc og Pion og vinna stendur yfir við aðrar WebRTC-útfærslur.
Eftir að miðlahandabandið hafði verið bestað stóð ein töf eftir: merkjaskiptin sem deila SDP-breytum áður en WebRTC getur tengst. Til að fjarlægja þessi skipti af mikilvægu leiðinni þróuðum við það sem við köllum Instant Connect. Það semur um þessar breytur fyrirfram án þess að taka frá afkastagetu á þjóni og án breytinga á núverandi WebRTC-útfærslum.
Instant Connect keyrir samhliða hefðbundnu merkjaferli. Ef forsamdar breytur eru gildar getur þjónninn myndað lotuna þegar fyrsti miðlapakkinn berst. Ef þær eru úreltar eða ógildar er merkjaferlið þegar hafið og biðlarinn getur því fallið aftur á það án frekari tafar.
Saman stytta Instant Connect og WARP verulega tímann frá ásetningi notandans þar til lifandi miðlunarflæði hefst. Þegar SDP-skiptin eru komin af mikilvægu leiðinni og WARP hefur þjappað flutningshandabandinu getur biðlarinn nú ræst lotu með einum UDP-pakka. Þjónninn getur svarað strax svo afgangurinn af kerfinu geti hafið vinnuna sem notandinn vill í raun: að hlusta og svara.
Kerfi getur virst hraðvirkt á pappír en samt hikstað undir raunverulegu raddálagi. Áður en GPT‑Live fékk að spjalla við notendur gerðum við hljóðlausa prófun þar sem lítill en stigvaxandi hluti af raddlotum ChatGPT í rekstri var sendur bæði í núverandi ítarlega raddstillingu og nýja kerfið okkar. Ítarleg raddstilling hélt áfram að þjóna notendum eins og venjulega en skuggaleiðin keyrði ályktun í skrifvörðum ham. Þannig fékk kerfið að takast á við raunveruleg biðlaraforrit, net, lotulengdir og landfræðilega dreifingu án þess að breyta því sem notendur heyrðu.
Einn fyrsti lærdómurinn var að ekki væri hægt að smætta afkastagetu niður í afköst GPU. Raddlotur haldast opnar og senda ramma stöðugt. Því þurfa straumstjórar CPU-megin, biðraðir og netleiðir að geta vaxið samhliða ályktuninni. Við raunverulegt álag náði stoðhluti mettun fyrr en álagsprófanir okkar höfðu gefið til kynna. Ályktunarbeiðnir hlóðust því upp og tafir mögnuðust. Við breyttum spurningunni um afkastagetu úr „Hversu margar beiðnir ræður GPU við?“ í „Hversu mörgum samhliða lotum getur kerfið haldið uppi og jafnframt afgreitt hvern ramma á réttum tíma?“
Prófunin leiddi einnig í ljós að landfræðileg staðsetning skipti sköpum. Ef lotu er beint til fjarlægrar afkastagetu getur töf bæst við á nokkrum stöðum við ræsingu og streymi. Við fórum að sannprófa innleiðingu líkana ásamt svæðisbundinni afkastagetu og stillingum umferðarstýringar og sundurliðuðum svo tafir eftir landfræðilegum uppruna. Það hjálpaði að færa ályktun nær notendum en undirstrikaði jafnframt víðtækari lærdóm: Viðbragðstími frá enda til enda ræðst af hverri þjónustu á leiðinni, ekki aðeins líkanaþjóninum.
Aðrar bilanir komu aðeins fram yfir raunhæfan líftíma lota. Langvarandi lotur leiddu í ljós álag á minni og varanlega geymslu. Endurtengingar reyndu á þjöppun og endurheimt stöðu. Venjulegar aftengingar biðlara leiddu í ljós kapphlaup í lokunarhandabandinu. Þessi vandamál komu sjaldan fram í stuttum álagsprófunum því þau voru háð tíma, uppsafnaðri stöðu og hegðun þvert á þjónustumörk.
Að lokum knúðu rekstrarprófanir okkur til að bæta sýnileika og stýringu innleiðingar. Við fundum mæligildi sem blönduðu saman ólíkum orsökum tafa, stjórnborð þar sem samantekt faldi einstakar bilaðar vélar og misræmi í stillingum prófaðra og innleiddra kerfa. Til að bregðast við þessu bættum við við ítarlegri fjarmælingum, sannprófun gagnvart þekktum og traustum stillingum, þrepaskiptri álagsaukningu og möguleikanum á að einangra eða slökkva hratt á einstökum leiðum. Hljóðlausa prófunin varð að fyrstu æfingu fyrir útgáfu, ekki aðeins á því hve mikilli umferð kerfið réð við heldur einnig hve fljótt við gátum greint, afmarkað og jafnað okkur á bilun.
Til að færa GPT‑Live upp í umfang ChatGPT þurfti alveg nýtt kerfi, byggt á einni grunnreglu: röddin verður að flæða. Straumspiluð ályktun sér tvíátta líkaninu stöðugt fyrir hljóði. Sérstök miðlunarleið tryggir áreiðanlega afhendingu ramma. Ósamstillt úthlutun gerir ítarlegri hugsun kleift að fara fram samhliða. Bestuð flutningsleið tryggir skjót viðbrögð alla leið til notandans.
Kerfishögunin að baki GPT‑Live er þegar farin að verða að víðtækari vettvangi fyrir rauntímasamskipti. Hún knýr ChatGPT Voice þegar það þróast úr samtölum yfir í samhæfingu fulltrúa og verður undirstaða væntanlegs GPT‑Live API. Með tímanum mun hún gera raddupplifun kleift að ná yfir fleiri tæki, forrit og miðlunarhætti án þess að fórna þeirri tafarlausu upplifun sem lætur raddsamtöl virka lifandi.
Ef þetta eru verkfræðilegu viðfangsefnin sem þú vilt leysa skaltu koma að vinna með okkur.

