Da progetto personale a traduttore in 108 lingue: perché ho creato Traverba

Ho creato un'app per la traduzione che funziona interamente sul tuo telefono. Nessun cloud. Nessuna chiamata API. Nessun dato che lascia il dispositivo. 108 lingue. Voce, fotocamera, traduzione dello schermo e conversazioni di gruppo offline via Bluetooth.

È iniziato perché non riuscivo a trovare quello di cui avevo bisogno, e si è trasformato in qualcosa di più grande di quanto mi aspettassi.

Il problema

Vivo a Hong Kong. La mia vita quotidiana coinvolge il cantonese, il mandarino, l'inglese e occasionalmente il giapponese. La famiglia del mio partner parla cantonese. Il mio lavoro è in inglese. I moduli governativi sono in cinese tradizionale. I menu dei ristoranti del quartiere sono spesso in cinese semplificato o giapponese.

Ho provato ogni traduttore sul mercato:

Google Translate funziona abbastanza bene online, ma la qualità offline cala drasticamente. Inoltre raggruppa il cantonese nel generico "cinese", il che — per chi parla cantonese — è come raggruppare il portoghese nella voce "spagnolo". Condividono i caratteri, ma non la pronuncia, la grammatica né il vocabolario.

Pocketalk costa $323 e necessita di internet per ogni traduzione. Non posso usarlo nella MTR (la metropolitana di Hong Kong), dove metà delle stazioni non ha segnale.

Apple Translate ha un design bellissimo e una buona elaborazione sul dispositivo, ma supporta circa 20 lingue. Nessun cantonese. In una città in cui il 95% della popolazione parla cantonese. Questo la dice lunga su come le grandi aziende tech stabiliscano le priorità linguistiche.

iTranslate mette le funzioni principali dietro un abbonamento da $50/anno. DeepL non supporta nemmeno la voce o la fotocamera.

Nessuno di essi era in grado di gestire una cena con la famiglia del mio partner in cui le persone passano da cantonese a mandarino a inglese nel mezzo della conversazione. Nessuno riusciva a tradurre i messaggi vocali in cantonese che ricevo su WhatsApp. Nessuno funzionava in modo affidabile in zone con scarsa connettività.

Così ho iniziato a costruire.

La prima versione era pessima

Il primo prototipo era un'app Flutter con un singolo modello ASR (Whisper, eseguito sul dispositivo tramite sherpa-onnx) e una traduzione NMT di base. Gestiva forse 15 lingue. Il riconoscimento vocale era lento. Le traduzioni erano mediocri. L'interfaccia era brutta.

Ma funzionava offline. E questo singolo fatto — che potevo tradurre una frase in cantonese in inglese su un aereo senza WiFi — mi ha tenuto andare avanti.

Il labirinto dell'architettura

Una volta che ti impegni con l'AI sul dispositivo, finisci in un labirinto profondo.

ASR (riconoscimento vocale): Un solo modello non va bene per tutte le lingue. Alla fine ne ho integrati tre: Parakeet (ottimizzato per l'inglese, incluso nell'app), Whisper.cpp (multilingue ampio, scaricabile) e Qwen3-ASR (ottimizzato per le lingue CJK, scaricabile). L'app instrada automaticamente verso il modello migliore in base alla lingua sorgente.

Traduzione: I modelli ML tradizionali coprono 61 coppie di lingue ben supportate. Per le restanti 47 lingue (yoruba, amarico, lao, birmano e altre), la traduzione viene gestita da un LLM Gemma quantizzato eseguito localmente. Questo è stato il passo decisivo che ha portato il numero di lingue da 61 a 108.

OCR con fotocamera: Due motori. ML Kit per il riconoscimento rapido. PaddleOCR per il riconoscimento accurato di scritture complesse. Su iOS ho dovuto aggiungere manualmente i pod specifici per ogni sistema di scrittura, perché Apple include di default solo il modello latino. Ci è voluto un giorno intero per fare il debug, perché l'errore è completamente silenzioso.

Chat di gruppo: Rete mesh Bluetooth che collega fino a 7 dispositivi. Ogni telefono gestisce il proprio ASR e la propria traduzione. I messaggi vengono trasmessi a tutti i dispositivi. Nessun server coordina nulla.

Gestione della memoria: La vera sfida ingegneristica. Tre modelli ASR, modelli di traduzione, un LLM e motori OCR non possono coesistere simultaneamente nella RAM del telefono. L'app ha un pianificatore del budget di memoria che carica ed espelle i modelli in base a quello che l'utente sta facendo in quel momento.

I numeri

  • Tempo di sviluppo: Circa 18 mesi dal primo commit al lancio su App Store / Play Store
  • Lingue: 108 (61 ML tradizionale + 47 AI tramite Gemma)
  • Lingue ASR: 30 con riconoscimento vocale sul dispositivo
  • Lingue OCR: 92 con riconoscimento del testo tramite fotocamera
  • Dimensione app: ~150MB base + modelli scaricabili
  • Prezzi: Livello gratuito con tutte le funzionalità principali. Premium a $1,99/mese o $19,99/anno per chat di gruppo, trascrizione di file e riassunti di riunioni
  • Dimensione del team: 1 persona

Cosa ho fatto bene

La privacy come architettura, non come politica. "Non condividiamo i tuoi dati" è una politica. Può cambiare. "I tuoi dati non lasciano mai il tuo telefono perché non esiste un server" è architettura. Non può cambiare senza ricostruire l'app. Gli utenti capiscono istintivamente questa distinzione.

Il cantonese come lingua di prima classe. La maggior parte dei traduttori tratta il cantonese come cinese con un accento diverso. Traverba ha un modello ASR dedicato al cantonese. Questo ha risuonato fortemente con la base di utenti di Hong Kong e del Guangdong, stanchi di essere trattati come un ripensamento.

Il livello gratuito è generoso. La traduzione vocale, la traduzione con fotocamera, la traduzione dello schermo e la traduzione testuale sono tutte gratuite e illimitate. Il paywall blocca solo le funzionalità di chat di gruppo, trascrizione di file e riassunti di riunioni. Questo è importante perché le persone che hanno più bisogno della traduzione — immigrati, viaggiatori in luoghi sconosciuti, studenti — spesso non possono permettersi abbonamenti premium.

Design offline-first. Ogni funzionalità funziona senza internet. Internet non è una modalità degradata. Offline È la modalità. Questa è una proposta di valore più forte di "funziona anche offline."

Cosa ho sbagliato

Sottovalutare i dispositivi di fascia bassa. Lo sviluppo è avvenuto su telefoni top di gamma. La prima volta che ho testato su un telefono con 3GB di RAM, metà delle funzionalità andava in crash. La gestione della memoria avrebbe dovuto essere la prima cosa che costruivo, non un intervento successivo.

Il processo di revisione iOS. Apple ha rifiutato la prima submission per non aver implementato l'App Tracking Transparency (ATT). Anche se Traverba non traccia gli utenti, l'SDK AdMob attiva il requisito. Far funzionare correttamente l'ATT tramite Flutter con i tempi giusti (dopo il lancio dell'app, prima dell'inizializzazione degli annunci) ha richiesto diverse iterazioni.

Non aver lanciato prima. Ho trascorso mesi a perfezionare funzionalità che gli utenti non avevano chiesto prima del lancio. Il feedback ricevuto dopo il lancio riguardava cose completamente diverse da quelle che mi aspettavo. Lancia presto, ascolta, itera. Lo dicono tutti. Ci sono caduto comunque.

L'opportunità di mercato

Il mercato della traduzione vale oltre $40 miliardi ed è in crescita. Ma è dominato da due estremi:

  1. App cloud gratuite (Google Translate, Apple Translate) che vanno bene per la maggior parte delle persone ma sacrificano privacy e affidabilità offline
  2. Dispositivi hardware costosi (Pocketalk $323, Timekettle $299, Vasco $350+) che richiedono internet e risolvono un problema che il tuo telefono già risolve

Il divario nel mezzo — un'app gratuita/accessibile con elaborazione completamente sul dispositivo che funziona davvero — è sorprendentemente vuoto. DeepL è solo testo. iTranslate mette le funzioni principali dietro un paywall. La maggior parte degli strumenti di traduzione AI è solo cloud.

L'AI sul dispositivo ha superato la soglia di qualità. I modelli sono abbastanza buoni. I telefoni sono abbastanza veloci. I framework (CoreML, ONNX, sherpa-onnx, LiteRT) sono abbastanza maturi. Il pezzo mancante era qualcuno che costruisse il livello prodotto sopra di essi.

Cosa c'è dopo

La roadmap immediata:

  • Più lingue ASR. 30 è un buon inizio, ma anche le lingue di nicchia hanno bisogno del riconoscimento vocale.
  • Traduzione LLM migliorata. Gemma 2B è buono. Modelli più nuovi e più piccoli potrebbero essere migliori. L'architettura supporta la sostituzione dei modelli senza modificare l'app.
  • Ottimizzazione per iPad e tablet. L'app funziona sui tablet ma l'interfaccia non è ancora ottimizzata per gli schermi più grandi.
  • Accelerazione Android Vulkan. iOS ha Metal e CoreML per l'inferenza GPU. La storia dell'accelerazione GPU su Android (Vulkan tramite whisper.cpp) ha bisogno di ulteriore lavoro.

La visione più grande: un mondo in cui la lingua non è una barriera alla connessione umana, e dove abbattere quella barriera non richiede di affidare le proprie conversazioni private ai server di una grande azienda tech.

Se sei arrivato fin qui, prova l'app. È gratuita. Leggo ogni feedback.


Traverba è disponibile su Google Play e App Store. Scopri di più su traverba.com. Domande, feedback o richieste di funzionalità: [email protected]