Mest af töfinni í beinni þýðingu er bið: eftir straumnum, næsta orði, setningunni. Eini hlutinn sem þú stjórnar er stillingin á töfinni: minni töf eða færri leiðréttingar.
Hlustandi sem les þýdda útsendingu í beinni sér hverja línu nokkrum sekúndum eftir að ræðumaðurinn sagði hana. Þetta bil er ekki ein töf heldur nokkrar, lagðar saman eftir keðju, og flestar þeirra eru eins konar bið. Ef maður veit hvaða bið er hvað verður valið á stillingu töfarinnar auðvelt, og forritari sem smíðar lesanda getur séð hvað á að birta og hvenær.
Áður en tölurnar koma er gagnlegt viðmið: mannlegur samtúlkur talar yfirleitt tveimur til fjórum sekúndum á eftir ræðumanninum. Túlkar kalla þetta bilið milli eyra og raddar, og þeir takast á við setningar þar sem sögnin kemur síðast ekki með því að bíða eftir sögninni, heldur með því að sjá hana fyrir eða með því að skipta setningunni í búta sem geta staðið einir. Sekúnda eða tvær af töf er ekki galli í hugbúnaðinum; þetta er um það bil það sem mjög góður mannlegur túlkur gerir.
Sérhver umritun í beinni hjá VocalStack fer í gegnum sömu stig, í sömu röð, og hvert stig bíður eftir því næsta á undan.
Texti á upprunamálinu nær lesanda næstum jafnharðan og hann er talaður. Þýðingin kemur sekúndu eða tveimur síðar, og töluða setningin kemur á eftir þýðingunni, sem er ástæðan fyrir því að hljóðbúturinn kemur alltaf síðastur. Fyrsta sýnilega áhrif keðjunnar koma þó löngu áður en nokkur rödd heyrist: sjálfur textinn hreyfist.
Það fyrsta sem fólk tekur eftir í umriti í beinni er að nýjustu orðin hreyfast. Setning birtist, breytist og sest. Það er drögin sem þar eru að verki, og það er til ástæðu sem á við um hvern einasta talgreinara.
Talgreinir ákveður hvernig orð er stafsett með því að horfa á það sem kemur á eftir. „I scream“ og „ice cream“ hljóma eins þar til næsta orð heyrist, og endingin „s“ getur tilheyrt þessu orði eða því næsta. Þangað til það er hljóð til hægri við orð er stafsetning þess ágiskun, þannig að nýjustu orðin í hvaða umriti í beinni sem er eru alltaf þau sem minnst er á hreinu um. Drög eru einfaldlega þessi ágiskun birt snemma í stað þess að vera falin.
Hvert drög kemur í stað allrar lifandi endans: orðanna sem heyrst hafa frá síðustu staðfestingu og eru enn að breytast. Staðfesting er endanleg. Hún breytist aldrei, hún ber tímasetningar á orðastigi og staðfestingar eru númeraðar án eyða svo lesandi geti séð ef hann missti af einni.
Fyrir forritara er þetta sú eina regla sem rauntíma-API-ið krefst: birtu hvert staðfest hluta og síðustu drögin þar á eftir, og hreinsaðu drögin þegar staðfesting berst. Ef drögum er bætt við í stað þess að skipta þeim út verður textinn tvíprentaður og flöktandi; staðfestingin tekur einfaldlega síðasta hlutann. WebSocket-kennslan byggir lesanda á nákvæmlega þessu.
Fyrir umsjónaraðila er hreyfanlegur texti verðið fyrir litla töf. Að sýna orð áður en setningunni er lokið er það sem fær umritunina til að finnast lifandi. Þýðingin ræður hins vegar ekki við þetta bragð, því hægt er að giska á orð út frá hálfri setningu, en þýðingu ekki.
Orðaröðin er ástæðan fyrir því að þýðingin getur ekki haldið í við drögin. Þýska sögnin getur staðið í lok setningarliðarins og japanska setur sögnina síðast. Þýðandi þarf allan setningarliðinn til að þýða hann rétt. Orð fyrir orð skilar hlustanda bútum sem þarf að geyma ólesna þar til setningin lokast. Þýskir túlkar hafa beðið eftir sögninni löngu áður en hugbúnaður reyndi það.
VocalStack þýðir því setningar, ekki búta. Setningar eru sjálfgefið kveiktar, og með þeim settum saman raðar þjónninn staðfestingum í setningu og þýðir alla setninguna. Meðan setningin er opin er þýðingin bráðabirgðaþýðing; þegar hún lokast verður þýðingin endanleg. Lesandi heldur einni færslu fyrir hverja setningu og skiptir henni út þegar uppfærslur berast.
Röddin bíður enn lengur. Aðeins lokuð setning er lesin upp, því setning sem er enn að breytast væri endurmynduð í hvert skipti sem hún breytist. Löng setning er lesin í bútum, þannig að fyrsti bútur getur spilast meðan hinir eru búnir til.
Með slökkt á setningum fær hver staðfesting sína eigin þýðingarramma í staðinn. Sú leið bíður eftir engu, en heilar setningar lesast mun betur.
Allar þessar biðir eru mældar frá því að hljóðið berst til VocalStack. Í mörgum útsendingum var hljóðið þegar orðið síðbúið þegar það kom.
Þegar uppspretta er straumur en ekki hljóðnemi, er hljóðið þegar á eftir áður en nokkuð er umritað. Það dregst aftur úr beinu brúninni, nýjustu stundinni sem straumurinn hefur birt.
Venjulegur HTTP-hljóðstraumur, sú tegund sem flestar netútvarpsstöðvar birta, er yfirleitt sekúndu til þremur sekúndum á eftir. Þjónninn heldur úti forbuffer: nokkrum sekúndum af nýlegu hljóði, sendum í einu, svo spilari nýs hlustanda geti ræst án þess að stoppa. Allir hlustendur, þar á meðal VocalStack, byrja þetta langt aftur í tímann. HLS er verra: spilunarlistar byrja viðskiptavin þremur hlutum á eftir beinu brúninni, sem í raun þýðir nokkrar sekúndur upp í hálfa mínútu eftir lengd hlutanna. Venjulegt DASH lendir yfirleitt á sama bili og HLS; aðeins lágtafarafbrigðið fer vel undir það. „Bein“ útsending stöðvar getur verið bein á sama hátt og bréf getur verið „nýtt“.
Þessar tölur eru áætlaðar og þær tilheyra straumnum, ekki umrituninni: engin stilling hjá VocalStack getur sótt þær aftur. Ef þessar sekúndur skipta máli fyrir viðburð, sendu hljóðið inn frá hljóðnema eða sendi í stað opinbers straums. Töfin á straumnum er föst áður en VocalStack heyrir nokkurt orð; stilling töfarinnar er það sem þú getur í raun hreyft.
Stilling töfarinnar gerir eitt: hún ákvarðar jafnvægið milli töfar og nákvæmni. Stillingin er undir Advanced þegar umritun í beinni er stofnuð og á Speed-flipanum meðan hún keyrir. Þar sýnir merkið AUTO, SPEED eða ACCURACY (Fast birtist sem SPEED). Í API-inu breytir session.update stillingunni mitt í straumnum.
Skiptin eru þau sem nöfnin gefa til kynna. Fast kemur texta fyrr út en endurskoðar meira af honum; Accuracy tekur örlítið lengri tíma og endurskoðar minna. Áhorfandi sem les þýddan texta rekur sjaldan eftir auka sekúndu, en tekur eftir orðum sem halda áfram að breytast. Accuracy er því oft vinsamlegri stilling, svo lengi sem töfarit er flatt. Auto gefur það upp þegar það hraðar sér: lína sem var hraðað til að loka bili fær merkið FAST MODE í umritun umsjónaraðila, ásamt athugasemd um að nákvæmni geti verið minni þar.
Hver sem stillingin er, þarf umritunin að vera tilbúin fyrir fyrsta orðið, og undirbúningurinn er eina töfin sem keðjan greiðir aðeins einu sinni.
Á sumum áskriftarleiðum tekur umritun í beinni nokkrar sekúndur að byrja. Hversu langan tíma það tekur ræðst af áskriftarleiðinni: línan Start-up speed á verðsíðunni nær frá kaldræsingu upp í 15 sekúndur á Greitt eftir notkun og upp í alltaf í gangi á Enterprise.
Í API-inu birtist biðin sem session.loading-rammar meðan lotan ræsist, og síðan session.ready; viðskiptavinurinn sendir hljóð fyrst þá. Hlustandi sem opnar hlekkinn á meðan sér „Live. The first line appears in a moment.“ Þegar umritunin er komin í gang er þessi töf að baki, og eina spurningin sem eftir er er hversu mikla af þeirri töf sem eftir er þú berð sjálfur.
Meðan umritun í beinni keyrir sýnir Speed-flipinn hjá umsjónaraðila hvað þetta allt leggst saman í: núverandi bilið milli ræðumanns og texta, með stillingarmerkinu við hliðina, og línurit af bilinu yfir upptökuna með meðaltali og hámarki. Í umrituninni sjálfri fær lína sem barst hlustendum seint merki sem gefur fjölda sekúndna milli þess að hún var töluð og þess að hún barst.
Línurit sem helst lágt og flatt þýðir að stillingin hentar hljóðinu. Línurit sem hækkar þýðir að keðjan er að dragast aftur úr. Á Accuracy gæti þetta verið rétti tíminn til að skipta yfir í Auto, sem skiptir örlitlu af nákvæmni fyrir hraða þar til bilið lokast.
Forritarar fá í staðinn eina tölu. Þegar rauntímalotu lýkur ber session.done stats.realtimeFactor, það er hljóðið sem var umritað deilt með tímanum sem fór í umritunina. Ein varúð um venju: í fræðiritum um talgreiningu merkir real-time factor venjulega andhverfuna, vinnslutíma deilt með hljóðtíma, þar sem lægra er betra. VocalStack gefur hana öfugt, þannig að hér er hærra betra: lota í beinni er nálægt 1, og undir 1 þýðir að hljóðið barst hraðar en keðjan gat umritað það.
Engar af þessum sekúndum eru dularfullar. Sumar tilheyra straumnum, sumar orði sem bíður eftir næsta orði, sumar setningunni sem þýðingin þarf, og þær sem eftir eru stillingu töfarinnar sem þú valdir. API-tilvísunin fer í smáatriðin ramma fyrir ramma, og sýnikennslan á forsíðunni sýnir keðjuna í gangi.