Lielākā daļa kavēšanās tiešraides tulkojumā ir gaidīšana: pēc straumes, pēc nākamā vārda, pēc teikuma. Vienīgā daļa, ko varat kontrolēt, ir latentuma režīms: mazāka aizkave vai mazāk pārskatījumu.
Tiešraides tulkojuma klausītājs katru rindiņu ierauga dažas sekundes pēc tam, kad runātājs to izteicis. Šī kavēšanās nav viens posms, bet vairāki, kas saskaitās pa ķēdi, un lielākā daļa no tiem ir sava veida gaidīšana. Ja zināt, kura gaidīšana ir kura, latentuma režīma izvēle kļūst vienkārša, un izstrādātājam, kas veido lasītāju, kļūst skaidrs, ko attēlot un kad.
Pirms skaitļiem noderīgs etalons: cilvēka sinhronais tulks parasti runā divas līdz četras sekundes aiz runātāja. Tulki šo atstarpi dēvē par ausu–balss intervālu, un valodām ar darbības vārdu teikuma beigās viņi tiek galā nevis gaidot darbības vārdu, bet to paredzot vai sadalot teikumu patstāvīgās daļās. Sekunde vai divas kavēšanās nav programmatūras defekts; tā ir aptuveni tas, ko dara ļoti labs cilvēks.
Katra tiešraides transkripcija VocalStack platformā iziet cauri tiem pašiem posmiem, tādā pašā secībā, un katrs gaida iepriekšējo.
Oriģinālvalodas teksts sasniedz lasītāju gandrīz tajā brīdī, kad tas tiek runāts. Tulkojums seko pēc sekundes vai divām, un runātais teikums nāk pēc sava tulkojuma, tāpēc balss fragments vienmēr pienāk pēdējais. Pirmā redzamā ķēdes ietekme tomēr parādās daudz agrāk nekā jebkāda balss: pats teksts sāk kustēties.
Pirmais, ko cilvēki pamana tiešraides transkriptā, ir tas, ka jaunākie vārdi kustas. Frāze parādās, mainās un nostājas. Tas ir melnraksta posms, un tam ir iemesls, kas attiecas uz katru runas atpazinēju.
Atpazinējs vārdu nosaka, skatoties uz to, kas seko. „I scream“ un „ice cream“ skan vienādi, kamēr nav atnācis nākamais vārds; beigu „s“ var piederēt šim vārdam vai nākamajam. Kamēr vārda labajā pusē nav audio, tā pareizrakstība ir minējums, tāpēc jebkuras tiešraides transkripcijas jaunākie vārdi vienmēr ir visnenoteiktākie. Melnraksts ir vienkārši šis minējums, kas parādīts agrāk, nevis paslēpts.
Katrs melnraksts pilnībā aizstāj dzīvo asti: vārdus, kas dzirdēti kopš pēdējā apstiprinājuma un vēl mainās. Apstiprinājums ir galīgs. Tas nekad nemainās, tam ir vārdu līmeņa laika atzīmes, un apstiprinājumi tiek numurēti bez caurumiem, lai lasītājs varētu saprast, ja kāds ir palaists garām.
Izstrādātājam šis ir vienīgais noteikums, ko reāllaika API prasa: attēlot katru apstiprināto segmentu, pēc tiem – pēdējo melnrakstu, un notīrīt melnrakstu, kad ierodas apstiprinājums. Ja melnrakstus pievienotu, nevis aizstātu, rezultāts būtu dublēts, mirgojošs teksts; apstiprinājums vienkārši patērē asti. WebSocket pamācība veido lasītāju tieši ap šo ideju.
Resursdatoram teksta kustēšanās ir zemākas kavēšanās cena. Vārdu rādīšana pirms frāzes beigām ir tas, kas padara transkripciju dzīvu. Tulkojumam tomēr šis triks nav pieejams: vārdu var uzminēt no pusfrāzes, bet tulkojumu – nevar.
Vārdu kārtība ir iemesls, kāpēc tulkojums nevar sekot melnrakstam. Vācu valodā darbības vārds var atrasties teikuma beigās, bet japāņu valodā darbības vārds vienmēr ir beigās. Jebkuram tulkotājam vajadzīgs viss teikums, lai to pareizi pārceltu. Tulkošana vārds pa vārdam nodod klausītājam fragmentus, kas jāsagaida līdz brīdim, kad teikums beidzas. Vācijas tulkiem darbības vārdu nācās gaidīt jau ilgi pirms programmatūras mēģinājumiem to darīt.
VocalStack tādēļ tulko teikumus, nevis segmentus. Teikumi ir ieslēgti pēc noklusējuma, un, kad tie ir ieslēgti, serveris apstiprinājumus salīmē teikumā un tulko visu teikumu. Kamēr teikums ir atvērts, tā tulkojums ir provizorisks; kad teikums noslēdzas, tulkojums kļūst galīgs. Lasītājs satur vienu ierakstu katram teikumam un to aizstāj, kad ierodas atjauninājumi.
Runa gaida vēl ilgāk. Tiek runāts tikai noslēgts teikums, jo teikums, kas vēl mainās, tiktu atkārtoti sintezēts katrā pārskatījumā. Garš teikums tiek nolasīts pa daļām, tā ka pirmā daļa var skanēt, kamēr tiek veidotas pārējās.
Ar izslēgtiem teikumiem katram apstiprinājumam tā vietā ir savs tulkojuma kadrs. Šis ceļš nekam negaida, bet veseli teikumi lasās daudz labāk.
Visas šīs gaidīšanas tiek mērītas no brīža, kad audio sasniedz VocalStack. Daudzām pārraidēm audio jau bija novēlots, kad tas tur nonāca.
Ja avots ir straume, nevis mikrofons, audio jau ir aiz muguras, pirms kaut kas tiek transkribēts. Tas atpaliek no tiešraides malas – jaunākā brīža, ko straume ir publicējusi.
Vienkārša HTTP audio straume, tāda, kādas publicē lielākā daļa interneta radiostaciju, parasti atpaliek par vienu līdz trim sekundēm. Serveris uztur sprādzienveida buferi: dažas sekundes nesenā audio, kas nosūtīts vienā reizē, lai jaunā klausītāja atskaņotājs varētu sākt bez apstāšanās. Katrs klausītājs, arī VocalStack, pievienojas tik tālu atpakaļ. HLS ir sliktāks: tā atskaņošanas saraksti sāk klientu trīs segmentus aiz tiešraides malas, un praksē tas nozīmē vairākas sekundes līdz pusminūtei atkarībā no segmenta garuma. Standarta DASH parasti ir tajā pašā diapazonā kā HLS; tikai tā zemas latentuma variants nokļūst ievērojami zemāk. Stacijas „tiešraides“ straume var būt tiešraide tikpat, cik vēstule ir aktuāla.
Šie skaitļi ir aptuveni, un tie pieder straumei, nevis transkripcijai: neviens iestatījums VocalStack pusē šīs sekundes nevar atgūt. Ja šīm sekundēm ir nozīme pasākumā, padodiet audio posmam no mikrofona vai kodētāja, nevis no publiskas straumes. Straumes kavēšanās tiek fiksēta, pirms VocalStack dzird vārdu; latentuma režīms ir tas, ko jūs tiešām varat pārvietot.
Latentuma režīms dara vienu lietu: nosaka līdzsvaru starp kavēšanos un precizitāti. Iestatījums atrodas sadaļā Advanced, kad tiek izveidota tiešraides transkripcija, un cilnē Speed, kamēr tā darbojas. Tur čips rāda AUTO, SPEED vai ACCURACY (Fast parādās kā SPEED). API lietojot, session.update maina režīmu straumes vidū.
Kompromiss ir tāds, kāds sanākas no nosaukumiem. Fast ļauj tekstam iziet ātrāk, bet pārskata vairāk; Accuracy aizņem nedaudz ilgāk un pārskata mazāk. Sēdošā auditorija, kas lasa tulkotos subtitrus, reti pamana papildu sekundi, bet pamana vārdus, kas nemitīgi mainās. Accuracy tādēļ bieži ir laipnākais iestatījums, ja vien kavēšanās grafiks paliek līdzens. Auto neslēpj savus soļus: līnija, ko tas paātrinājis, lai aizvērtu atpalicību, resursdatora transkripcijā saņem emblēmu FAST MODE ar piezīmi, ka tur precizitāte var būt zemāka.
Jebkurā režīmā transkripcijai jābūt gatavai pirms pirmā vārda, un šī sagatavošana ir vienīgā kavēšanās, ko ķēde maksā tikai vienreiz.
Dažos plānos tiešraides transkripcijas sākšana aizņem dažas sekundes. Cik ilgi, atkarīgs no plāna: rindā Start-up speed uz cenu lapas aukstā palaišana ilgst līdz 15 sekundēm plānā Pay as you go un ir vienmēr silta plānā Enterprise.
API lietojot, gaidīšana parādās kā session.loading kadri, kamēr sesija sākas, un pēc tam session.ready; klients sūta audio tikai pēc tam. Klausītājs, kurš tajā laikā atver saiti, redz "Live. The first line appears in a moment." Kad transkripcija darbojas, šī kavēšanās ir aiz muguras, un vienīgais jautājums, kas paliek, ir, cik lielu daļu no atlikušās kavēšanās jūs nesat.
Kamēr tiešraides transkripcija darbojas, resursdatora cilnē Speed redzams, ko tas viss kopā veido: pašreizējā atstarpe starp runātāju un tekstu ar režīma čipu blakus un grafiks par šo atstarpi visā ierakstā ar tā vidējo un maksimālo vērtību. Pašā transkripcijā līnija, kas sasniedza klausītājus novēloti, nes emblēmu ar sekunžu skaitu starp brīdi, kad tā tika runāta, un brīdi, kad tā ieradās.
Ja grafiks paliek zems un līdzens, režīms atbilst audio. Ja grafiks kāpj, cauruļvads atpaliek. Accuracy režīmā tas var būt brīdis pāriet uz Auto, kas dažu precizitāti upurē ātrumam, līdz atstarpe sarūk.
Izstrādātāji saņem vienu skaitli. Kad reāllaika sesija beidzas, session.done satur stats.realtimeFactor – transkribētā audio dalīts ar laiku, kas pavadīts tā transkribēšanā. Viens konvencijas brīdinājums: runas atpazīšanas literatūrā reāllaika koeficients parasti nozīmē pretējo, apstrādes laiku dalītu ar audio laiku, kur zemāks ir labāks. VocalStack to rāda otrādi, tātad šeit augstāks ir labāks: tiešraides sesija atrodas tuvu 1, un vērtība zem 1 nozīmē, ka audio ieradās ātrāk, nekā cauruļvads spēja to transkribēt.
Nevienas no šīm sekundēm nav noslēpumainas. Dažas pieder straumei, dažas vārdam, kas gaida nākamo vārdu, dažas teikumam, kuram nepieciešams tulkojums, un pārējās – latentuma režīmam, ko izvēlējāties. API atsauce satur detalizētu informāciju par katru kadru, un demonstrācija sākumlapā parāda visu ķēdi darbībā.