Miks dikteerimisrakendused su esimese sõna ära söövad
Vajutad kiirklahvi, räägid ja esimene sõna on ära lõigatud. Miks külmkäivitus sõnu lõikab ning kuidas soe mikrofon ja 500 ms eelpuhver aitavad.
Vajuta kiirklahvi. Hakka rääkima. Vaata, kuidas transkriptsioon algab su teisest sõnast — vahel kolmandast. „Refaktoreeri kordusloogika“ tuleb välja kui „kordusloogika“. „Ära merge’i seda veel“ tuleb välja kui „merge’i seda veel“, mis on päriselt ohtlik lause, et see su nimel sisse trükitakse. Seda tõrget on lihtne taastoota kõikjal, kus mikrofonikonveieril on külmkäivitus, alates operatsioonisüsteemi sisseehitatud vahenditest kuni spetsiaalsete dikteerimistööriistadeni.
Inimesed kirjeldavad seda eri moodi — „see lõikab alguse ära“, „ma pean enne rääkimist pausi tegema“, „esimene sõna on alati puudu“ —, aga see on üks ja sama nähtus, ja kui sa oled korra hammustada saanud, tekib sul seesama lahendus, mis tekib kõigil: vajuta klahvi, oota hetk, siis räägi. Mis tähendab, et sa esitad nüüd kümneid kordi päevas väikest ebausklikku rituaali, et oma tööriista järele kompenseerida, ja tööriist on treeninud sind, mitte vastupidi.
Ma tegin seda rituaali kuude kaupa teistes tööriistades. Keebye’d ehitades oli selle tapmine üks esimesi asju nimekirjas, sest lahendus osutus nõudvaks ebamugavat kompromissi, mida enamik rakendusi teha ei taha — ja ma tahan sellest kompromissist rääkida sama otse kui lahendusest.
Miks esimene sõna ära lõigatakse?
See on kategooriaülene probleem, mitte ühe tarnija lohakus, ja selle füüsika on lihtne: mikrofonid ei ole hetkelised.
Kui dikteerimisrakendus alustab salvestust naiivsel viisil — vajuta kiirklahvi, siis ava mikrofon —, peab enne su kõne esimese sämpli püüdmist läbi jooksma terve kett. Operatsioonisüsteemi heliseanss tuleb lähtestada. Sisendseade peab ärkama, mis mõne riistvara puhul tähendab sõna otseses mõttes soojenemisaega. Voo formaat lepitakse kokku, puhvrid eraldatakse, ja esimesed saabuvad puhvrid on sageli praht, mis visatakse minema. Sõltuvalt masinast ja seadmest võtab see kett aega kuskil „ühe hetke“ ja paari sekundi vahel.
Samal ajal hakkad sina — inimene, kellel on mõte juba valmis — rääkima täpselt sel hetkel, kui su sõrm klahvi tabab. Tegelikult tavaliselt juuksekarva võrra enne seda hetke: kavatsus vajutada ja kavatsus rääkida lahkuvad su ajust koos, ja kõne algus jõuab rutiinselt rakenduse valmisolekust ette. Kõik, mida sa enne voo elluärkamist ütlesid, ei ole rakenduse jaoks kunagi olemas olnud. Mudel ei saa transkribeerida heli, mida kunagi ei püütud. Sellest ka „kordusloogika“.
Miks rakendused mikrofoni nõudmisel käivitavad, selle asemel et hoida see valmis? Enamasti hea kodanikutunne. Mikrofoni avatuna hoidmine maksab natuke voolu ja — mis palju olulisem — see süütab operatsioonisüsteemi mikrofoninäidiku, mida kasutajad mõistetavalt loevad kui „see rakendus kuulab mind“. Mikrofoni avamine ainult nõudmisel hoiab näidiku ausana ja rakenduse viisakana. Hinnaks on külmkäivituse risk salvestuse alguses.
Lahendus: mikrofon, mis juba kuulab, kui sa klahvi vajutad
Keebye ründab seda mõlemast otsast ja need kaks mehhanismi tasub eraldi hoida, sest nad lahendavad probleemi kaht eri poolt.
Soe mikrofon. Pärast seansi esimest salvestust hoiab Keebye helisisendi voo avatuna. See tähendab, et külmkäivituse kett — seansi lähtestamine, seadme äratamine, voo kokkuleppimine — on hilisema dikteeringu ajaks juba toimunud, seni kuni see voog on terve. Voog on elus enne, kui su sõrm liigub.
Eelpuhver. Soe voog parandab rakenduse hilinemise, aga mitte sinu oma — pea meeles, et su kõne algus võib klahvivajutusest ette jõuda. Nii et Keebye hoiab veerevat 500-millisekundilist puhvrit kõige värskemast helist (8000 sämplit 16 kHz juures, rõngas). Kui vajutad kiirklahvi, loputatakse see pool sekundit just-enne-heli lausungi ette. Heli, mis algas selle puhvri sees, on transkribeerijale kättesaadav, selle asemel et enne klahvivajutust minema visata.
Kokku annab see: korduvate dikteeringute puhul katavad soe voog ja 500 ms eelpuhver tavalise juhtumi, kus kõne algab vahetult enne klahvivajutust või sellega koos. Rituaalne paus muutub selle piiri sees ebavajalikuks. See ei suuda päästa sõna, mis öeldi rohkem kui pool sekundit enne salvestuse algust, ja seansi esimene dikteering maksab endiselt tavalise voo käivitamise viivituse.
Kompromiss, otse välja öeldud
Siin on see osa, mida ma keeldun maha matmast, sest see on disaini aus hind: kuna helivoog jääb dikteeringute vahel avatuks, näitab macOS mikrofoni aktiivsena ka siis, kui sa parasjagu ei dikteeri. Oranž täpp põleb. Kui vaatad Control Centerit, on Keebye seal kirjas mikrofoni kasutajana, just sel hetkel, kui sa mitte midagi ei tee.
Mis sel ajal tegelikult toimub: heli voolab 500 ms rõngaspuhvrisse ja visatakse pidevalt minema. Midagi ei transkribeerita. Midagi ei salvestata. Midagi ei lahku puhvrist enne, kui sa klahvi vajutad — ja kõik, mis on vanem kui pool sekundit, on igaveseks läinud, rõnga poolt üle kirjutatud. Aga ma ei kavatse teeselda, et näidik valetab, sest ta ei valeta: voog on avatud ja „võimeline pidevalt kuulama“ on arhitektuuri aus kirjeldus, kuigi mitte miski ei kuula mingis sisulises mõttes enne, kui sa palud.
Ma tegin selle kompromissi teadlikult, silmad lahti, ja siin on põhjendus. Mikrofoni nõudmisel avamine toob iga kord kaasa külmkäivituse riski: lõigatud sõnad, valed laused, treenitud paus. Sooja voo disainil on hind, mis maandub sinu mugavusele oranži täpiga, ja selle taga on arhitektuur, mille üle sa saad arutleda: ainult tekstina kohalik ajalugu (mille kirjutasime lahti loos su dikteering ei tohiks kunagi lihtsalt kaduda), seadmesisene transkribeerimine, mitte kunagi salvestatud heli, pool sekundit rõngasmälu. Mina võtan täpi. Kui sina ei võta — see on igati õiguspärane seisukoht ja see võib päriselt teha mõne teise tööriista sinu jaoks õigeks; meie Keebye vs Superwhisper ja Keebye vs Wispr Flow lehed on kirjutatud täpselt selle otsuse jaoks.
Kaks piiri, et keegi üllatuda ei saaks
Seansi kõige esimesel dikteeringul on endiselt tavaline voo käivitamise viivitus. Soe mikrofon on soe seepärast, et salvestus on juba toimunud; esimene maksab ikkagi seadistuskulu. Hilisemad dikteeringud saavad kasu seni, kuni voog on avatud.
Eelpuhver on 500 millisekundit, ja 500 millisekundit on hetk, mitte lause. Puhver katab loomuliku juhtumi — sõna, mis algas veidi enne klahvivajutust. Kui sa esitad terve lause ja siis meenub sulle klahvi vajutada, on varasemad sõnad läinud, ja seda meelega: rõngas hoiab alati ainult poolt sekundit, just selleks, et rakendus ei säilitaks jõude olles sisukat heli. Pikem eelpuhver püüaks kinni rohkem su hajameelseid algusi ja hoiaks mälus rohkem su ümbritsevat heli. Pool sekundit on koht, kuhu ma selle joone tõmbasin.
Miks pool sekundit loeb rohkem, kui kõlab
Ära lõigatud esimene sõna näeb välja nagu väike viga. Paralleelsete radade töövoos, mille jaoks Keebye ehitati — hääl kui juhtkanal mitmele AI-agendile ja mitmele inimvestlusele korraga, tööpäev, mida kirjeldab kaks last, kolm idufirmat, üks hääl —, toimub dikteerimine kümneid kordi päevas, puhangutena, keset kontekstivahetust. Tööriist, mis nõuab rituaalset pausi, maksustab iga puhangu ja, mis hullem, pöörab aeg-ajalt su tähenduse ümber ja saadab selle ära. „Merge’i seda veel“ oli naljakas täpselt üks kord.
Usaldusväärsus selles kategoorias ei ole üks suur funktsioon. See on väiksemate kaitsemeetmete kuhjumine: eelpuhver avaheli jaoks, ajalugu transkriptsiooni taga ja taastatav sisestustee. See postitus räägib esimesest neist; ajaloopostitus katab teise.
Keebye on macOS-i jaoks varajases ligipääsus. Alusta allpool tasuta prooviperioodi, ütle korduvas dikteeringus „Ära merge’i seda veel“ ja kontrolli, kas esimene sõna jääb ellu. See ongi kogu test.
Hakka rääkima ilma rituaalse pausita
Alusta tasuta prooviperioodi ja testi korduvat dikteeringut, mis algab sõnaga, mida sa endale kaotada ei saa lubada.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Loe edasi
Su dikteering ei tohiks kunagi lihtsalt kaduda
Dikteerid pika mõtte, sisestus nurjub ja tekst kaob. Miks dikteerimisrakendused su sõnu kaotavad ja millist kohalikku tekstiajalugu Keebye hoiab.
Dikteerimisrakendus, mis töötab siis, kui internet ei tööta
Pilvedikteerimine sureb koos võrguga. Keebye teeb kõnetuvastust seadmes: ilma internetita, helita väljaspool su Maci ja võrgukatkestuste mõjuta.
Dikteeri koodiülevaatused omas keeles
Kood on inglise keeles. Su ülevaatuskommentaarid ei pea olema. Kuidas dikteerida tagasisidet ühes 25 keelest seadmes ja miks keele kinnitamine loeb.