Ik bouwde een vertaalapp die volledig op je telefoon draait. Geen cloud. Geen API-aanroepen. Geen data die het apparaat verlaat. 108 talen. Spraak-, camera- en schermvertaling, en offline groepsgesprekken via Bluetooth.
Het begon omdat ik niet kon vinden wat ik nodig had, en het groeide uit tot iets groters dan ik had verwacht.
Het Probleem
Ik woon in Hongkong. Mijn dagelijks leven speelt zich af in het Kantonees, Mandarijn, Engels en af en toe Japans. De familie van mijn partner spreekt Kantonees. Mijn werk is in het Engels. De overheidsformulieren zijn in Traditioneel Chinees. De restaurantmenu's in de buurt zijn vaak in Vereenvoudigd Chinees of Japans.
Ik probeerde elke vertaler op de markt:
Google Translate werkt prima online, maar de kwaliteit offline daalt sterk. Bovendien wordt Kantonees samengegooid met "Chinees" — iets wat iedereen die Kantonees spreekt erg herkent, want dat is net zoiets als Portugees onder "Spaans" scharen. Ze delen schrifttekens, maar niet de uitspraak, grammatica of woordenschat.
Pocketalk kost $323 en heeft voor elke vertaling internet nodig. Ik kan het niet gebruiken in de MTR (de metro van Hongkong) waar de helft van de stations geen bereik heeft.
Apple Translate heeft een prachtig ontwerp en goede verwerking op het apparaat, maar ondersteunt slechts zo'n 20 talen. Geen Kantonees. In een stad waar 95% van de bevolking Kantonees spreekt. Dat zegt alles over hoe grote techbedrijven talen prioriteren.
iTranslate plaatst kernfuncties achter een betaalmuur van $50 per jaar. DeepL heeft helemaal geen spraak of camera.
Geen van hen kon een avondeten met de familie van mijn partner aan waarbij mensen halverwege een gesprek wisselen tussen Kantonees, Mandarijn en Engels. Geen van hen kon de Kantonese spraakberichten vertalen die ik op WhatsApp ontvang. Geen van hen werkte betrouwbaar op plekken met slecht bereik.
Dus begon ik te bouwen.
De Eerste Versie Was Verschrikkelijk
Het eerste prototype was een Flutter-app met één ASR-model (Whisper, op het apparaat uitgevoerd via sherpa-onnx) en eenvoudige NMT-vertaling. Het aankon misschien 15 talen. De spraakherkenning was traag. De vertalingen waren middelmatig. De interface was lelijk.
Maar het werkte offline. En dat ene feit — dat ik een Kantonese zin naar het Engels kon vertalen in een vliegtuig zonder WiFi — hield me op de been.
Het Architectuurkonijnenhol
Zodra je je committeert aan AI op het apparaat, val je in een diep konijnenhol.
ASR (spraakherkenning): Één model past niet bij alle talen. Ik eindigde met het uitleveren van drie: Parakeet (geoptimaliseerd voor Engels, meegeleverd), Whisper.cpp (breed meertalig, downloadbaar) en Qwen3-ASR (geoptimaliseerd voor CJK-talen, downloadbaar). De app kiest automatisch het beste model op basis van de brontaal.
Vertaling: Traditionele ML-modellen dekken 61 goed ondersteunde taalparen. Voor de overige 47 talen (Yoruba, Amharic, Lao, Myanmar en andere) handelt een lokaal draaiende gekwantiseerde Gemma LLM de vertaling af. Dit was de doorbraak die het aantal talen van 61 naar 108 bracht.
Camera-OCR: Twee engines. ML Kit voor snelle herkenning. PaddleOCR voor grondige herkenning van complexe schriften. Voor iOS moest ik handmatig scriptspecifieke pods toevoegen, omdat Apple standaard alleen het Latijnse model meelevert. Dat kostte een dag om te debuggen, omdat de fout volledig stil verloopt.
Groepschat: Bluetooth-mesh die tot 7 apparaten verbindt. Elke telefoon handelt zijn eigen ASR en vertaling af. Berichten worden naar alle apparaten uitgezonden. Geen server die iets coördineert.
Geheugenbeheer: De echte technische uitdaging. Drie ASR-modellen, vertaalmodellen, een LLM en OCR-engines kunnen niet allemaal tegelijk in het telefoongeheugen leven. De app heeft een geheugenbud-getplanner die modellen laadt en verwijdert op basis van wat de gebruiker op dat moment doet.
De Cijfers
- Ontwikkeltijd: Ongeveer 18 maanden van de eerste commit tot de lancering in de App Store / Play Store
- Talen: 108 (61 traditionele ML + 47 AI via Gemma)
- ASR-talen: 30 met spraakherkenning op het apparaat
- OCR-talen: 92 met cameratekstherkenning
- App-grootte: ~150MB basis + downloadbare modellen
- Prijsstelling: Gratis laag met alle kernfuncties. Premium voor $1,99/maand of $19,99/jaar voor groepschat, bestandstranscriptie en vergadersamenvattingen
- Teamgrootte: 1 persoon
Wat Ik Goed Deed
Privacy als architectuur, niet als beleid. "We delen uw gegevens niet" is een beleid. Dat kan veranderen. "Uw gegevens verlaten uw telefoon nooit, omdat er geen server is" is architectuur. Dat kan niet veranderen zonder de app opnieuw te bouwen. Gebruikers begrijpen dit onderscheid intuïtief.
Kantonees als eersteklasstaal. De meeste vertalers behandelen Kantonees als Chinees met een ander accent. Traverba heeft een speciaal ASR-model voor Kantonees. Dit resoneert sterk bij de gebruikers in Hongkong en Guangdong, die er genoeg van hebben als een bijzaak behandeld te worden.
De gratis laag is royaal. Spraakvertaling, cameravertaling, schermvertaling en tekstvertaling zijn allemaal gratis en onbeperkt. De betaalmuur geldt alleen voor groepschtfuncties, bestandstranscriptie en vergadersamenvattingen. Dit is belangrijk, omdat de mensen die het meest behoefte hebben aan vertaling — immigranten, reizigers op onbekende plaatsen, studenten — vaak geen premium-abonnementen kunnen betalen.
Offline-eerst ontwerp. Elke functie werkt zonder internet. Internet is geen degraded modus. Offline IS de modus. Dit is een sterkere waardepropositie dan "werkt ook offline."
Wat Ik Fout Deed
Onderschatten van low-end apparaten. De ontwikkeling vond plaats op toptelefoons. De eerste keer dat ik testte op een telefoon met 3GB RAM, crashte de helft van de functies. Geheugenbeheer had het eerste moeten zijn wat ik bouwde, niet iets wat achteraf werd aangepast.
Het iOS-beoordelingsproces. Apple wees de eerste inzending af omdat App Tracking Transparency (ATT) niet was geïmplementeerd. Hoewel Traverba gebruikers niet volgt, activeert de AdMob SDK de vereiste. ATT correct instellen via Flutter met de juiste timing (na het starten van de app, vóór het initialiseren van advertenties) kostte meerdere iteraties.
Niet eerder lanceren. Ik besteedde maanden aan het polijsten van functies waar gebruikers niet om hadden gevraagd, voordat ik lanceerde. De feedback die ik na de lancering ontving, ging over volledig andere dingen dan ik had verwacht. Vroeg uitleveren, luisteren, itereren. Iedereen zegt dit. Ik trapte er toch in.
De Marktkans
De vertaalmarkt is meer dan $40 miljard waard en groeit. Maar hij wordt gedomineerd door twee uitersten:
- Gratis cloud-apps (Google Translate, Apple Translate) die voor de meeste mensen goed genoeg zijn, maar privacy en offline-betrouwbaarheid opofferen
- Dure hardwareapparaten (Pocketalk $323, Timekettle $299, Vasco $350+) die internet vereisen en een probleem oplossen dat je telefoon al oplost
Het gat in het midden — een gratis/betaalbare app met volledige verwerking op het apparaat die echt werkt — is verrassend leeg. DeepL is alleen tekst. iTranslate plaatst kernfuncties achter een betaalmuur. De meeste AI-vertaaltools zijn uitsluitend cloudgebaseerd.
AI op het apparaat heeft de kwaliteitsdrempel overschreden. De modellen zijn goed genoeg. De telefoons zijn snel genoeg. De frameworks (CoreML, ONNX, sherpa-onnx, LiteRT) zijn volwassen genoeg. Het ontbrekende stuk was iemand die de productlaag er bovenop bouwt.
Wat Volgt
De directe roadmap:
- Meer ASR-talen. 30 is een goed begin, maar de talen in de lange staart hebben ook spraakherkenning nodig.
- Verbeterde LLM-vertaling. Gemma 2B is goed. Nieuwere, kleinere modellen zijn misschien beter. De architectuur ondersteunt het wisselen van modellen zonder de app te wijzigen.
- iPad- en tabletoptimalisatie. De app werkt op tablets, maar de interface is nog niet geoptimaliseerd voor grotere schermen.
- Android Vulkan-versnelling. iOS heeft Metal en CoreML voor GPU-inferentie. Het verhaal van GPU-versnelling op Android (Vulkan via whisper.cpp) behoeft nog meer werk.
De grotere visie: een wereld waarin taal geen barrière vormt voor menselijke verbinding, en waar het doorbreken van die barrière niet vereist dat je privégesprekken worden overgedragen aan de servers van een techbedrijf.
Als je zo ver bent gekomen, probeer dan de app. Hij is gratis. Ik lees elk stukje feedback.
Traverba is beschikbaar op Google Play en de App Store. Meer informatie op traverba.com. Vragen, feedback of functieverzoeken: [email protected]