Discordia è in pausa: intanto su questo dominio c'è il mio portfolio.

Tutti i progetti
su GitHub

Vetro

Traduce quello che hai sullo schermo e quello che dici, fra italiano, inglese, russo e ucraino, tutto offline.

Cosa fa

Vetro legge quello che c’è sullo schermo — WhatsApp, Telegram, i commenti di YouTube, TikTok, X — e ci dipinge sopra la traduzione al suo posto: stesso fumetto, stesso colore, stessa dimensione, orari intatti. Ascolta anche il microfono e scrive quello che dici in un registro tradotto, così puoi parlare in italiano e copiare il testo in russo.

Gira tutto in locale: nessun account, nessuna chiave API, nessun traffico di rete dopo il primo download dei modelli.

Perché sembra giusto

Quasi tutti i traduttori di schermo coprono la finestra con un blocco di testo e rovinano l’impaginazione. Vetro è costruito per non farlo. Raggruppa le righe in messaggi prima di tradurle, così una frase che va a capo resta una frase. Toglie orari, spunte, link e menzioni prima della traduzione e li rimette identici dopo. Campiona i colori di ogni fumetto e adatta il carattere allo spazio che sostituisce, senza mai uscire dal fumetto.

Perché tiene il passo

Rifare lettura e traduzione a ogni fotogramma sarebbe lentissimo. Prima Vetro si fa tre domande che costano poco: è cambiato qualcosa? È solo uno scorrimento? Questa riga l’ho già letta? Uno schermo fermo costa circa un millisecondo, uno scorrimento sposta subito la traduzione già fatta, e le traduzioni restano in una cache SQLite anche dopo il riavvio.

Scelte tecniche

Python con interfaccia PySide6. Il testo si trova e si legge con i modelli PP-OCRv5 in formato ONNX, uno per l’alfabeto latino e uno per il cirillico. La traduzione usa NLLB-200, che passa direttamente da una lingua all’altra senza fare tappa nell’inglese; la voce usa faster-whisper. Se serve una traduzione più naturale, può passare da un modello linguistico locale con LM Studio.

Stato

Finito, per Windows e Linux; potrei aggiornarlo più avanti. Su Linux la parte schermo funziona con X11, non con Wayland. Il codice è sotto licenza MIT, i modelli hanno le loro: NLLB-200 è solo per uso non commerciale.