Per què les apps de dictat es mengen la teva primera paraula
Prems la hotkey, parles i es talla la primera paraula. Per què passa en arrencar en fred i com ajuden un micròfon calent i un pre-roll de 500 ms.
Prem la hotkey. Comença a parlar. Mira com la transcripció comença per la segona paraula, de vegades per la tercera. «Refactoritza la lògica de reintents» surt com «la lògica de reintents». «No fusionis això encara» surt com «fusionis això encara», que és una frase genuïnament perillosa per haver-la escrit en nom teu. Aquesta fallada és fàcil de reproduir en canonades de micròfon amb arrencada en fred, des de les opcions integrades al sistema fins a les eines de dictat dedicades.
La gent ho descriu de maneres diferents —«em talla el principi», «he de fer una pausa abans de parlar», «sempre falta la primera paraula»—, però és un sol fenomen, i un cop t'ha mossegat desenvolupes la solució provisional que desenvolupa tothom: prem la tecla, espera un moment i llavors parla. Cosa que vol dir que ara estàs fent un petit ritual supersticiós desenes de vegades al dia per compensar la teva eina, i que és l'eina qui t'ha ensinistrat a tu i no al revés.
Vaig fer aquest ritual durant mesos amb altres eines. Construint el Keebye, matar-lo era una de les primeres coses de la llista, perquè la solució va resultar que exigia un compromís incòmode que la majoria d'apps no volen fer, i vull parlar del compromís tan clarament com de la solució.
Per què queda tallada la primera paraula?
Aquest és un problema al nivell de la categoria, no la deixadesa d'un proveïdor, i la física de la cosa és simple: els micròfons no són instantanis.
Quan una app de dictat comença un enregistrament de la manera ingènua —prem la hotkey i llavors obre el micròfon—, cal que s'executi tota una cadena abans no es capturi la primera mostra de la teva veu. La sessió d'àudio del sistema s'ha d'inicialitzar. El dispositiu d'entrada s'ha de despertar, cosa que en alguns maquinaris vol dir temps d'escalfament literal. Es negocia el format del flux, s'assignen les memòries intermèdies, i les primeres que arriben sovint són escombraries que es descarten. Segons la màquina i el dispositiu, aquella cadena triga entre «un moment» i un parell de segons.
Mentrestant, tu —un ésser humà amb un pensament ja format— comences a parlar en el mateix instant que el dit toca la tecla. Normalment un pèl abans d'aquell instant, de fet: la intenció de prémer i la intenció de parlar surten juntes del cervell, i l'inici de la parla sol guanyar la preparació de l'app. Tot el que has dit abans que el flux s'obrís no ha existit mai pel que fa a l'app. El model no pot transcriure àudio que no s'ha capturat mai. D'aquí: «la lògica de reintents».
Per què les apps obren el micròfon a demanda en comptes de tenir-lo a punt? Sobretot per civisme. Mantenir un micròfon obert costa una mica d'energia i —molt més important— encén l'indicador de micròfon del sistema, que els usuaris interpreten comprensiblement com «aquesta app m'està escoltant». Obrir el micròfon només a demanda manté l'indicador honest i l'app amb bona cara. El cost és el risc d'arrencada en fred al principi d'un enregistrament.
La solució: un micròfon que ja escolta quan prems la tecla
El Keebye ataca això pels dos costats, i val la pena separar els dos mecanismes perquè resolen dues meitats diferents del problema.
El micròfon calent. Després del teu primer enregistrament d'una sessió, el Keebye manté obert el flux d'entrada d'àudio. Això vol dir que la cadena d'arrencada en fred —inicialització de la sessió, despertar del dispositiu, negociació del flux— ja ha passat abans d'un dictat posterior mentre aquell flux es mantingui sa. El flux és viu abans que el teu dit es mogui.
El pre-roll. Un flux calent arregla la tardança de l'app, però no la teva: recorda que l'inici de la teva parla pot guanyar la teva pulsació. Per això el Keebye manté una memòria intermèdia circular de 500 mil·lisegons de l'àudio més recent (8.000 mostres a 16 kHz, en un anell). Quan prems la hotkey, aquell mig segon d'àudio d'abans es buida al davant de la intervenció. L'àudio que va començar dins d'aquella memòria està disponible per al transcriptor en comptes de descartar-se abans de la pulsació.
El resultat combinat: en dictats repetits, el flux calent i el pre-roll de 500 ms cobreixen el cas habitual en què la parla comença just abans de la pulsació o alhora. La pausa ritual esdevé innecessària dins d'aquest límit. No pot recuperar una paraula dita més de mig segon abans que comenci l'enregistrament, i el primer dictat d'una sessió continua pagant la latència normal d'obertura del flux.
El compromís, dit clarament
Aquesta és la part que em nego a amagar, perquè és el preu sincer del disseny: com que el flux d'àudio es manté obert entre dictats, macOS mostra el micròfon com a actiu encara que no estiguis dictant. El punt taronja està encès. Si mires el Centre de Control, el Keebye hi surt fent servir el micròfon, en aquell mateix moment, mentre tu no fas res.
Què està passant de debò durant aquesta estona: l'àudio flueix cap a la memòria intermèdia circular de 500 ms i es descarta contínuament. No es transcriu res. No es guarda res. No surt res de la memòria fins que prems la tecla, i tot el que té més de mig segon ha desaparegut per sempre, sobreescrit per l'anell. Però no faré veure que l'indicador menteix, perquè no menteix: el flux és obert, i «capaç d'escoltar sempre» és una descripció justa de l'arquitectura, encara que res no escolti en cap sentit significatiu fins que tu ho demanes.
Vaig fer aquest compromís deliberadament, amb els ulls oberts, i el raonament és aquest. Obrir el micròfon a demanda introdueix risc d'arrencada en fred cada vegada: paraules tallades, frases equivocades, la pausa ensinistrada. El disseny del flux calent té un cost que recau en la teva comoditat amb un punt taronja, sostingut per una arquitectura sobre la qual pots raonar: historial local només de text (que vam desenvolupar a el teu dictat no hauria de desaparèixer sense més), transcripció on-device, cap àudio guardat mai, mig segon de memòria en anell. Jo m'hi quedo el punt. Si tu no —és una postura legítima, i pot ser que faci que una altra eina sigui genuïnament la tria correcta per a tu—; les nostres pàgines Keebye vs Superwhisper i Keebye vs Wispr Flow estan escrites precisament per ajudar amb aquesta decisió.
Dos límits, perquè ningú no s'endugui sorpreses
El primer dictat d'una sessió continua tenint la latència normal d'obertura del flux. El micròfon calent és calent perquè ja hi ha hagut un enregistrament; el primer encara paga el cost de la preparació. Els dictats posteriors se'n beneficien mentre el flux es mantingui obert.
El pre-roll és de 500 mil·lisegons, i 500 mil·lisegons són un moment, no una frase. La memòria cobreix el cas natural: una paraula començada una mica abans de la pulsació. Si amolles una frase sencera i després recordes prémer la tecla, les paraules anteriors s'han perdut, per disseny: l'anell no conté mai més de mig segon, precisament perquè l'app no retingui àudio significatiu mentre està aturada. Un pre-roll més llarg atraparia més de les teves arrencades distretes i conservaria més àudio ambiental a la memòria. Mig segon és on vaig traçar aquesta ratlla.
Per què mig segon importa més del que sembla
Una primera paraula tallada sembla un error petit. En el flux de treball de carrils paral·lels per al qual es va construir el Keebye —la veu com a canal de control de diversos agents d'IA i diverses converses humanes alhora, la jornada descrita a Dos fills, tres startups, una veu—, el dictat passa desenes de vegades al dia, a ràfegues, enmig de canvis de context. Una eina que exigeix una pausa ritual penalitza cada ràfega i, pitjor, de tant en tant t'inverteix el sentit i l'envia. «Fusionis això encara» va fer gràcia exactament una vegada.
La fiabilitat en aquesta categoria no és una gran funció. És l'acumulació de salvaguardes més petites: pre-roll per a l'àudio inicial, historial darrere de la transcripció i una via d'inserció recuperable. Aquest article va de la primera; l'article sobre l'historial tracta la segona.
El Keebye és en accés anticipat per a macOS. Comença la prova gratuïta aquí sota, digues «No fusionis això encara» en un dictat repetit i comprova si la primera paraula sobreviu. Aquesta és tota la prova.
Comença a parlar sense la pausa ritual
Comença la prova gratuïta i prova un dictat repetit que comenci amb una paraula que no et pots permetre perdre.
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.
Continua llegint
El teu dictat no hauria de desaparèixer sense més
Dictes un pensament llarg, la inserció falla i el text desapareix. Per què les apps perden les teves paraules i l’historial local només de text de Keebye.
L’app de dictat que funciona quan internet no funciona
El dictat al núvol mor amb la xarxa. Keebye passa veu a text on-device: sense internet, àudio que surti del Mac ni caigudes de xarxa que l’aturin.
Dicta les revisions de codi en la teva llengua
El codi és en anglès. Els teus comentaris de revisió no cal que ho siguin. Com dictar-los en una de 25 llengües on-device, i per què fixar la llengua importa.