De vraag achter de zoekterm
Whisper is een model voor spraakherkenning. Wat het belangrijk maakte, is niet dat dit het nauwkeurigste was dat ooit gebouwd is, maar dat je het kon binnenhalen en op gewone hardware kon draaien. Daarvóór betekende fatsoenlijk uitschrijven dat je audio stuurde naar een bedrijf dat het model bezat.
Zodra mensen het op een laptop hadden gedraaid, volgde de voor de hand liggende gedachte: op mijn telefoon schrijf ik eigenlijk, dus waarom stuurt mijn telefoon mijn stem nog steeds naar een server?
Dat is de vraag onder de zoekopdracht. Het is geen recensie, en niets hier is kritiek op de genoemde projecten. Verschillende ervan zijn zorgvuldig gemaakt open werk van kleine teams, en zij waren er eerder.
Een telefoon is geen laptop
Whisper komt in maten, en de maten die mensen op een computer roemen zijn groot. Prima, als er een videokaart is, geheugen genoeg en een ventilator.
Een telefoon heeft een paar gigabyte geheugen, gedeeld met elke andere app, geen actieve koeling, en een systeem dat de processor afknijpt zodra het warm wordt. Elk project dat Whisper op Android zet maakt dus dezelfde reeks concessies, of het dat er nu bij zegt of niet:
- Een kleiner model, en dus iets minder nauwkeurigheid dan de uitkomsten die mensen van hun computer aanhalen.
- Wachten nadat je uitgesproken bent, want het werk begint pas als er iets is om aan te werken.
- Opslag, want het modelbestand moet op je telefoon staan.
- Minder talen, omdat meertaligheid ruimte kost.
Wie beweert dat uitschrijven op een telefoon gelijkstaat aan een werkstation, beschrijft iets anders dan wat de hardware doet. De interessante vraag is welke van die vier een bepaalde app het zwaarst heeft laten wegen.
De twee apps die er zijn, en wat ze delen
Whisper IME draait Whisper op je telefoon en werkt als invoermethode, dus je kunt hem vanaf het toetsenbord gebruiken. Het valt onder de MIT-licentie en is gratis, het heeft Android 9 of nieuwer nodig, en het haalt zijn model binnen voordat je het voor het eerst gebruikt. Opnames zijn begrensd op ongeveer een halve minuut per keer, wat beter past bij zinnen en korte berichten dan bij lang achter elkaar praten.
Transcribro draait eveneens op je telefoon, met whisper.cpp, en levert zowel een toetsenbord als een systeemdienst voor spraakherkenning, zodat andere apps hem kunnen aanroepen. Het valt onder de ISC-licentie en is gratis. Het doet Engels.
Allebei zijn ze open source, allebei zijn ze gemaakt door mensen die wilden dat dit zou bestaan, en allebei doen ze het ding dat er het zwaarst toe doet: je audio verlaat je telefoon niet. Het herkennen is een bestand op je telefoon dat werk doet op je telefoon. Er is geen account en er wordt niets geüpload, en zodra het model er staat doet een verbinding niet meer ter zake. Vliegtuigen, tunnels, kelders en een week in het buitenland met de data uit gedragen zich allemaal hetzelfde. Offline is de gewone toestand en niet de noodstand.
Weegt gratis en inzichtelijk voor jou het zwaarst, begin daar dan en stop hier met lezen.
Waar LocalType andere keuzes maakt, en wat dat kost
LocalType begint bij hetzelfde uitgangspunt en maakt daarna andere keuzes. De grootste daarvan zit niet in de spraak, maar in wat eromheen zit.
Het is in de eerste plaats een volwaardig toetsenbord, en geen spraakinvoer die aan een toetsenbord vastgeplakt zit. Autocorrectie, het volgende woord voorgesteld, een woordenboek per taal, QWERTY, QWERTZ en AZERTY waar die de nationale standaard zijn, een set emoji, en je eigen woorden erbij. De microfoon is een toets op dat toetsenbord, dus inspreken is geen apart ding waar je in schakelt.
Het levert drie modelmaten mee en laat jou de concessie kiezen: 60 MB voor snelheid op een oudere telefoon, 190 MB als uitgebalanceerde standaard, 539 MB wanneer nauwkeurigheid het wachten waard is. De getallen daarachter, gemeten op een telefoon met 4 GB geheugen: het model van 190 MB maakte in 4,1 seconden tekst van 6,9 seconden spraak, terwijl het grootste er ruwweg twee keer zo lang over doet als je aan het praten was. Er staat er één tegelijk, dus wisselen vervangt het bestand en zet er geen tweede naast.
Het dekt achttien talen uit één meertalig model en leidt uit de opname af welke je spreekt, zonder dat je vooraf iets instelt. Daaraan heeft LocalType zijn ruimtebudget besteed, en daar zit het duidelijkste praktische verschil met de opties die alleen Engels doen.
Het draait vanaf Android 8.0, wat verder terugreikt dan sommige alternatieven, en het wordt onderhouden als product en niet als project ernaast. Dat telt zodra er iets stukgaat op een telefoonmodel dat niemand getest heeft.
Verder gelden dezelfde eigenschappen als hierboven, plus een paar die specifiek zijn. Het modelbestand ligt in de eigen opslag van de app, die geen ander programma kan lezen. Wat de app bewaart, blijft met opzet buiten de back-up van Android. In een wachtwoordveld biedt het toetsenbord de microfoontoets niet aan. Er zit geen reclame en geen tracking in het product, en er wordt geen archief van je opnames bijgehouden: de audio wordt tekst in het veld waar je aan het typen was, en verder blijft er niets over. Woorden die je aan het woordenboek toevoegt blijven ook op je telefoon, waar ze als context aan het spraakmodel worden meegegeven. Om internet wordt voor precies één doel gevraagd, het ophalen van het model dat je koos.
En dan de rekening. LocalType is niet open source, en het is niet gratis. Dat zijn echte nadelen tegenover de twee projecten hierboven, en ze wegen het zwaarst voor precies de mensen voor wie die projecten gemaakt zijn. Wat je ervoor terugkrijgt is één product dat de hele klus doet: een toetsenbord dat je de hele dag kunt gebruiken zonder de microfoon aan te raken, inspreken in achttien talen dat erin gebouwd zit, en iemand om bij te klagen als het zich misdraagt.
De proef in vliegtuigstand
Genoeg apps noemen zichzelf privé, lokaal of veilig zonder duidelijk te maken waar de audio verwerkt wordt. Er is één proef die het in minder dan een minuut beslist, en die geen technische kennis vraagt.
Installeer de app en laat hem afmaken wat hij bij de eerste start wil binnenhalen. Zet je telefoon daarna in vliegtuigstand, met wifi er ook uit, en spreek een zin in.
Verschijnen er woorden, dan gebeurde het herkennen op je telefoon. Daar valt niet omheen te komen: er was niets bereikbaar. Blijft het hangen, loopt het af, of komt er een melding over een verbinding, dan ging de audio ergens naartoe, wat er ook op de winkelpagina stond.
Sommige apps halen hun model pas bij het eerste gebruik binnen, dus een mislukking voordat je dat hebt laten afmaken bewijst niets. En een app kan echt op je telefoon werken en tóch met een server praten om andere redenen, zoals licenties of updates, en dat is een andere vraag dan waar je stem heen gaat.
Doe de proef op alles in dit rijtje, LocalType inbegrepen. We hebben liever dat je het nagaat dan dat je ons op ons woord gelooft.
Kiezen
Wil je de code kunnen inzien en niets betalen, dan zijn Whisper IME en Transcribro de plek om te kijken, en is alleen Engels geen bezwaar zolang je in het Engels schrijft.
Wil je inspreken in achttien talen binnen een toetsenbord dat je toch al zou gebruiken, zonder het uit onderdelen in elkaar te zetten, dan is LocalType daarvoor gebouwd. Hetzelfde uitgangspunt eronder, afgemaakt als product.