Waarom namen het lastige deel zijn
Een spraakmodel leert van opgenomen spraak met de bijbehorende tekst. Wat vaak in dat materiaal voorkwam, gaat het goed af. Wat er niet in zat, heeft het helemaal geen voorstelling van.
De achternaam van je collega zat er niet in. De naam van het interne systeem van je bedrijf ook niet, net zomin als het dorp waar je woont, het medicijn dat je slikt, of de afkorting die je vak vijftig keer per dag gebruikt.
Krijgt een herkenner een klank binnen waar hij geen woord voor heeft, dan volgt er geen melding en blijft er geen lege plek open. Er verschijnt het dichtstbijzijnde dat hij wél kent, en daarom komen onbekende namen eruit als gewone woorden die erop rijmen. Bij een achternaam als Verhoeven zie je dan zoiets als “ver hoeven” staan: keurig gespeld, en niet wat je zei.
Duidelijker praten lost dit niet op. Het goede woord zat nooit tussen de mogelijkheden.
Met de hand rechtzetten lost het ook niet op. Die correctie verandert alleen dat ene bericht, en bij de volgende opname staat de herkenner weer voor dezelfde keuze uit dezelfde woorden. Daarom werkt een lijst wel en tien keer verbeteren niet.
Twee dingen veranderen als je een woord toevoegt
Een woord toevoegen zet het in de race.
Voor typen houdt het de autocorrectie tegen. Een naam die je hebt toegevoegd wordt niet langer als typefout behandeld, dus hij wordt niet meer vervangen door iets dat het woordenboek wél kent.
Voor inspreken gaat het verder. De woorden die je hebt toegevoegd worden als context aan het spraakmodel gegeven, dus op het moment dat een klank net zo goed de achternaam van je collega als een gewoon woord kan zijn, is die achternaam een kandidaat waar het model van weet.
Bij LocalType zitten allebei die helften in één app, en daarom werkt één lijst voor het tikken en het praten tegelijk. De toevoegingen verlaten je telefoon nooit. Er is niets om ze naartoe te sturen, dus de vraag of ze gedeeld worden komt niet op. De rest van de app verandert er niet door: het herkennen draait op je telefoon, uit een modelbestand dat geen andere app kan openen, en het netwerk wordt één keer aangeraakt om het model op te halen dat je koos. Er valt niets te registreren, reclame ontbreekt, niets binnen het product legt vast wat je ermee doet, je opnames worden niet gearchiveerd, en de gegevens van de app blijven buiten de back-up van Android. De drie maten van 60, 190 en 539 MB zetten snelheid tegenover nauwkeurigheid, met 4,1 seconden nodig voor 6,9 seconden spraak bij de middelste maat op de testtelefoon met 4 GB, en één meertalig model dekt achttien talen.
Tien minuten aan het begin, daarna als het langskomt
De fout is het als gegevensinvoer behandelen. Doe het in twee rondes.
Een portie aan het begin. Ga er één keer voor zitten en voeg de twintig of dertig dingen toe waarvan je weet dat je er voortdurend over schrijft. Zo kan die ronde eruitzien: acht achternamen van collega’s en klanten, je straat en je woonplaats, de naam van je werkgever, vier productnamen, twee afkortingen uit je vak, en de naam van je huisarts.
Daarna als het langskomt. Elke keer dat je een woord voor de tweede keer verbetert, voeg je het meteen toe. Over een paar weken vangt dat wat de eerste ronde miste, zonder dat je er ooit tijd voor vrijmaakt.
Probeer aan het begin niet volledig te zijn. Je voegt dan dingen toe die je nooit gebruikt en mist de dingen die je wel gebruikt.
De lijst die het meeste oplevert
Mensen aan wie of over wie je schrijft. Collega’s, klanten, familie, de loodgieter. Vooral achternamen, want voornamen zijn vaker gewone woorden die het model al kent.
Plaatsen die je noemt. Je straat, je woonplaats, de vestiging, de school. Plaatselijke namen zitten vrijwel nooit in algemeen oefenmateriaal.
Vaktaal. Productnamen, interne systemen, afkortingen, het jargon van je vak. Zou je het aan een vreemde moeten uitleggen, dan heeft het model het ook nodig.
Terugkerende bijzonderheden. De naam van je automodel, je bank, de winkel waar je bestelt, een medicijn, een diagnose, een merk gereedschap.
Alles wat je twee keer hebt verbeterd. Heb je een woord meer dan één keer met de hand rechtgezet, stop dan met rechtzetten en voeg het toe.
De dingen die er niet in horen
Een opgeblazen lijst is slechter dan een korte.
Gewone woorden die goed gespeld zijn. Die zijn al bekend. Toevoegen verandert niets.
Namen die één keer voorkomen. Iemand die je één keer noemt. Zet hem met de hand recht en ga door.
Hele zinnen. Een woordenlijst bevat woorden. Een zin toevoegen leert het systeem geen zin.
Woorden waarvan je de spelling niet zeker weet. Je leert het jouw spelling aan. Klopt die niet, dan wordt de goede versie voortaan naar jouw fout verbeterd.
Wachtwoorden of codes. Nooit. Los van het voor de hand liggende: inspreken staat in wachtwoordvelden toch al uit, dus het zou niets opleveren.
Als een naam ook na het toevoegen fout blijft
Drie dingen om na te lopen, in deze volgorde.
Kijk eerst hoe je hem gespeld hebt. Je krijgt terug wat je hebt ingevoerd, dus een naam met een spatie of een streepje erin is een ander woord dan dezelfde naam zonder, en een hoofdletter die je vergat blijft weg.
Spreek hem daarna in een hele zin in en niet los. Eén woord op zichzelf geeft de herkenner het minste om op af te gaan, en dat merk je juist bij namen.
Blijft het misgaan, kijk dan naar de uitspraak. Een naam die je op zijn Frans of op zijn Pools uitspreekt terwijl hij Nederlands gespeld staat, valt tussen wal en schip. Voor dat geval is de kortste route de naam één keer tikken en de rest van de zin inspreken.
Namen die tussen twee talen heen en weer gaan
Namen steken voortdurend tussen talen door. Je Nederlandse collega wordt genoemd in een Engelse e-mail, de Engelse productnaam duikt op in een Nederlands bericht. Het woord is hetzelfde; de taal eromheen niet.
De naam één keer toevoegen helpt in allebei de gevallen, want het is het woord dat herkend wordt en niet de zin. Vaststellen welke taal je spreekt gebeurt op de opname als geheel, dus een zin die grotendeels in één taal staat met daarin één vreemde naam telt nog steeds als die taal.
De grenzen van een woordenlijst
Gelijkluidende woorden blijven dubbelzinnig. Heet je collega Roos en schrijf je ook over een roos, dan vertelt de naam toevoegen het systeem niet welke van de twee je bedoelde. Dat werk doen de woorden eromheen, en die zitten er soms naast.
De uitspraak moet nog steeds kloppen. Een woord met een ongewone spelling maar een gewone uitspraak gaat prima. Een woord dat wordt uitgesproken op een manier waar het model niets voor heeft, kan alsnog misgaan, en dat geldt vooral voor namen uit talen waar het model weinig van gezien heeft.
Het verbetert de algemene nauwkeurigheid niet. Een woordenlijst verhelpt specifieke woorden, niet je accent, niet het rumoer in de kamer, en niet hoe ver je de telefoon van je mond houdt. Die drie hebben hun eigen oplossingen.
Het geldt per telefoon. Doordat LocalType zijn gegevens buiten de back-up van Android houdt, reist je lijst niet mee naar een nieuwe telefoon. Stap je over, reserveer dan opnieuw die tien minuten. Het is dezelfde ronde als de eerste keer, en je weet inmiddels precies welke woorden erin moeten.