Proudly debugging the system since 1981

Tag: software (Pagina 1 di 4)

Audio To Text arriva alla 1.0.0: ecco che cosa è cambiato

Dal post di fine agosto è successo parecchio. L’ultima volta vi raccontavo della versione 0.6.3 e dell’avvio del closed testing su Google Play; oggi Audio To Text (ex phone-whisper) è arrivato alla 1.0.0, una release stabile pronta per la fase di test. In questi mesi il lavoro è stato enorme, soprattutto su interfaccia e affidabilità. Vi riassumo i punti principali.

Un’interfaccia tutta nuova

La novità più visibile è la riscrittura completa dell’interfaccia con Jetpack Compose e Material 3. Fino a qualche mese fa la UI era costruita con le classiche View di Android, ora è tutta basata su Compose: tema chiaro/scuro che riusa la palette esistente, animazioni e componenti moderni.

A cambiare è anche la navigazione: al posto dei vecchi bottoni è arrivata una barra di navigazione fissa in basso con tre sezioni — Home, Catalogo e Maggiori informazioni — ognuna con la sua icona (Material Symbols Outlined). La voce attiva è in azzurro, le altre in grigio, e la barra resta sempre visibile. L’onboarding resta una schermata separata, senza barra, con il solo pulsante “Chiudi”.

Un dettaglio che in orizzontale faceva la differenza: nella schermata principale titolo e testo informativo restano fissi, mentre stato e modelli installati scorrono verticalmente. Ora anche con il telefono ruotato tutto funziona come deve.

Download che non si interrompono

Prima, se chiudevi il catalogo mentre uno scaricamento era in corso, il download si fermava. Ora i modelli si scaricano tramite un foreground service: la scaricamento continua in background anche dopo aver premuto Indietro, con una notifica che mostra il progresso. A fine installazione la lista dei modelli installati e il catalogo si aggiornano da soli. È stato anche corretto un bug che, premendo il tasto Indietro durante un download, poteva congelare l’app (ANR).

Catalogo modelli più ricco e gestibile

Il catalogo è cresciuto e ora è più pratico:

  • Nuovi modelli, tra cui Kroko Italiano, dedicato alla trascrizione dell’italiano, scaricato come file singoli direttamente da Hugging Face.
  • Rimozione dei modelli: i modelli installati si possono eliminare (con conferma) per liberare spazio; il modello attivo, se rimosso, viene riselezionato automaticamente con il primo installato rimasto.
  • Nomi più chiari: ogni modello indica la lingua di destinazione (es. “Whisper Base – English”, “Parakeet 0.6B – Multilanguage”).
  • Supporto per modelli compressi e non, e per fonti di download diverse.

Onboarding e piccoli grandi fix

Alla prima apertura ora compare una guida introduttiva con tre schermate scaricabili che spiegano come scaricare il modello, attendere l’installazione e trascrivere un messaggio; si può rivedere in qualsiasi momento dalla sezione “Maggiori informazioni”, dove i link GitHub e Issues sono tornati attivi e aprono correttamente il browser.

Sono stati sistemati anche il crash di Kroko al caricamento (era un modello streaming, ora caricato con il riconoscitore giusto) e il progresso di download per i modelli compressi, che prima saltava da 0% a 100% senza valori intermedi. Le icone del download e del cestino usano ora gli icon set Material Symbols, decisamente più pulite.

Piattaforma

Sotto il cofano: target SDK 36 (Android 16), supporto a tutti gli ABI (arm64, arm, x86, x86_64) per una compatibilità più ampia, e interfaccia multilingua italiano/inglese.

Changelog in breve (0.6.3 → 1.0.0)

  • v1.0.0 — Prima release stabile per il closed testing: consolida tutta la serie 0.9.x.
  • v0.9.x — Migrazione Jetpack Compose Material 3, barra di navigazione in basso, download in background (foreground service), fix ANR/auto-riselezione/link/scroll orizzontale, icone Material Symbols, fix Kroko, progresso download compressi, chiarezza catalogo, nuovi modelli (Kroko Italiano), onboarding e indicatori.
  • v0.8.x — Rimozione modelli installati, supporto a tutti gli ABI, promozioni al closed testing.
  • v0.7.0 — Promozione al closed testing.
  • v0.6.4–0.6.6 — Target SDK 36, schermata “Maggiori informazioni”, fix UI e contrasto.

Come provarla

La 1.0.0 è pronta per il closed testing su Google Play. Per partecipare basta iscriversi al gruppo dei tester (accesso libero, nessuna mail): https://groups.google.com/g/testers-community/ . Serve solo un dispositivo Android e, se trovi qualcosa che non va — crash, modelli che non si scaricano, traduzioni imprecise — segnalalo pure via Issues o nel gruppo.

La trascrizione resta completamente locale e on-device, con modelli sherpa-onnx: nessuna dipendenza dal cloud. Grazie a chi sta testando e continua a segnalare problemi: è ciò che rende l’app migliore.

Audio To Text in closed testing su Google Play

Con la versione 0.6.3 di Audio To Text (ex phone-whisper) è partita la fase di closed testing su Google Play. È il passaggio successivo dopo il rebrand e la rimozione delle funzionalità cloud raccontati nel post precedente.

Cos’è il closed testing

Google Play richiede una fase di test con un gruppo ristretto di utenti prima di poter aprire l’app al pubblico. È un passaggio utile anche a prescindere dall’obbligo: permette di verificare il funzionamento su dispositivi e versioni di Android diverse dalla mia, cosa che da solo non riesco a coprire.

L’app è visibile alla pagina Google Play di Audio To Text, ma per installarla in questa fase è necessario essere inseriti nella lista dei tester.

Come partecipare

Chi vuole provarla lo può fare iscrivendosi al gruppo dei tester su google group: https://groups.google.com/g/testers-community/ . Il gruppo è ad accesso libero e non manda nessuna mail. Non serve nessuna competenza particolare, solo un dispositivo Android e la disponibilità a segnalare eventuali problemi — crash, modelli che non si scaricano correttamente, traduzioni imprecise o altro.

Cosa trovare nell’app

La versione in test corrisponde a quella descritta nel post precedente: trascrizione locale con modelli sherpa-onnx, nessuna dipendenza cloud, interfaccia in italiano o inglese in base alla lingua del dispositivo.

Changelog

v0.6.3 (2026-08-27)

Da phone-whisper a Audio To Text: rebrand, local-only e UI più chiara

C’è stato un cambiamento importante: nasce Audio To Text

Ad aprile avevo raccontato la nascita di phone-whisper, l’app Android per trascrivere audio offline sul dispositivo usando sherpa-onnx (potete rileggere il post originale). Da allora il progetto è cresciuto, e con la versione 0.6.1 arriva un cambiamento che va oltre il semplice numero di release: l’app cambia nome e diventa Audio To Text.

Cosa cambia davvero

Il progetto nasceva già con un forte focus sulla privacy, ma manteneva un’integrazione opzionale con OpenAI per la trascrizione cloud e il post-processing del testo. Con la 0.6.0 questa parte è stata rimossa completamente: niente più chiamate cloud, niente API key da gestire, nessun dato che lascia il telefono. L’app oggi funziona esclusivamente con i modelli sherpa-onnx scaricati e installati in locale, il che significa anche una base di codice più semplice da mantenere — sono stati eliminati interi componenti come TranscriberClient, PostProcessor e WavWriter, insieme ai relativi test.

Questa scelta ha richiesto anche una riscrittura della privacy policy, per rimuovere ogni riferimento alla gestione delle chiavi API e alle modalità cloud che non esistono più.

Il rebrand: da phone-whisper a Audio To Text

Il nome phone-whisper aveva senso quando il progetto era ancora legato all’idea di Whisper e a un’integrazione cloud. Ora che l’app è diventata a tutti gli effetti uno strumento locale, ho deciso di rinominarla Audio To Text, un nome più diretto e descrittivo di quello che fa realmente. Il cambiamento non è solo estetico: il package dei sorgenti è stato spostato da com.kafkasl.phonewhisper a net.b0sh.audiotext, con la cronologia Git preservata grazie a un git mv mirato invece di una semplice riscrittura dei file.

Miglioramenti all’esperienza utente

Con la 0.6.0 e la 0.6.1 ho lavorato molto anche su come l’app comunica il proprio stato all’utente:

  • Durante l’installazione di un modello, ora viene mostrato il progresso di estrazione con numero di file completati e file corrente in lavorazione, così sai esattamente a che punto è il processo.
  • È stata aggiunta una sezione informativa sullo stato del modello nella schermata principale, per capire a colpo d’occhio se un modello è installato, pronto o ancora da scaricare.
  • Con la 0.6.1 arriva il supporto multilingua dell’interfaccia: l’app segue automaticamente la lingua del dispositivo tra inglese e italiano. Nome dell’app e nomi dei modelli restano invariati, per evitare ambiguità.

Perché questo cambiamento

L’obiettivo originale di phone-whisper era offrire una trascrizione privata e locale, ma la presenza di un’opzione cloud era in qualche modo in contrasto con quella filosofia. Rimuoverla non è stata solo una semplificazione tecnica: è stata anche una scelta di coerenza. Audio To Text è oggi un’app che fa una cosa sola, la fa completamente offline, e non ha bisogno di chiedere permessi di rete o gestire credenziali di terzi.

Changelog completo

v0.6.1 (2026-08-25)

  • Interfaccia multilingua: supporto inglese e italiano, in base alla lingua del dispositivo. Nome app e nomi modelli non tradotti.
  • Aggiornamento versione: 0.6.0 → 0.6.1 (versionCode 8).

v0.6.0 (2026-08-25)

  • Rimossa l’integrazione OpenAI: eliminate trascrizione cloud e post-processing. L’app supporta ora solo la trascrizione locale con modelli sherpa-onnx scaricati.
  • Rebrand: l’app è stata rinominata Audio To Text, package spostato in net.b0sh.audiotext.
  • Aggiornamento versione: 0.5.0 → 0.6.0 (versionCode 7).

Link utili

Audio To Text resta un progetto piccolo, ma ora è coerente al 100% con la sua promessa iniziale: nessun dato lascia il tuo telefono, mai.

Coding agent con Ollama + Qwen3 + Continue – Parte 2

Alla fine l’ho provato, ottenendo sicuramente risultati migliori che i semplici completamenti di testo offerti da altri plugin.

Rispetto alla configurazione proposta ho utilizzato Qwen3:14b invece del MOE, anche per limiti di memoria a disposizione. Inoltre ho utilizzato Intellij IDEA in una macchina diversa da quella su cui risiede ollama. Cioè in realtà fisicamente sono la stessa ma una è una VM e l’altra è il ferro vero. Per rendere tutto piu divertente ho fatto passare le richiesta dal proxy di OpenWebUI, che è esposto su rete pubblica e che quindi richiede un token di autenticazione.

Rimaneggiata un po la configurazione:

Chiedo all’agente di generarmi una nuova semplice applicazione Spring Boot.

E lui parte a generarmi tutto perfettamente integrato con la IDE e scrivendo direttamente i file.

Dopodiché chiedo di cambiare il sistema di build da Maven a Gradle e di aggiungermi Swagger.

E dopo un paio di altri prompt per sistemare le cose ecco online il backend di una applicazione avendo scritto solo prompt e accettato il risultato:

Si tratta ovviamente di una micro applicazione, senza business logic rilevante e senza, al momento una UI. Farò altre prove in contesti un po più sfidanti ma per ora sono comunque abbastanza impressionato.

Il problema non è la velocità, ma il caos

Il tema non mi è nuovo, aumento di complessità, stack che diventano troppo profondi, impossibilità di conoscere tutto, almeno ad un livello di efficienza lavorativa in tempi accettabili e conseguente frustrazione, frammentazione dei framework, dei linguaggi e delle metodologie.

Sono incappato in una riflessione e conseguente proposta/lancio di un software per risolvere il problema dello sviluppo software (sembra un gioco di parole).

Le riflessioni sono interessanti.

“Every team’s setup is a unique snowflake. Even within the same programming language ecosystem, different teams will set up their dev process completely differently. Completely different build, test, packaging logic. Completely different runtime versions. Completely different eng culture. So on and so forth. This craziness is now the norm.”

“You can’t have strong innovation without freedom. You can’t have high-quality engineering and security without standardization.”

https://earthly.dev/blog/lunar-launch

Che poi la soluzione passi attraverso una verifica automatica ho qualche dubbio.

Gli sviluppatori junior vanno in burn-out prima di diventare senior?

Credo ci siano una serie di condizioni che spingono verso questa fine:

  • L’ossesione per la ricerca del nuovo
  • La facilita’ nel trovare soluzioni pronte senza necessita di apprendere
  • La tendenza a ridurre il tempo in cui si riesce a rimanere attenti e focalizzati

Segnalo questo articolo che tratta due di questi tre argomenti.

Why Junior Developers Are Burning Out Before They Bloom: Surviving Tech’s Obsession With ‘New’

Un estratto:

Tattica 2: Il gioco del “Perché?”
La prossima volta che utilizzi una funzionalità di un framework, chiediti:

  • “Quale problema risolve questa funzionalità?”
  • “Come implementerei questa funzionalità senza il framework?”
  • “Quali sono i compromessi in termini di prestazioni/memoria?”

I metodi di sviluppo software

Spiegati come se l’ obbiettivo fosse andare su Marte.

Nota 1: si sono vecchio.

Nota 2: si è irrilevante perché tanto tra un po’ non svilupperà più nessuno. O forse proprio per questo il metodo sarà ancora più importante.

Plugin gradle per la migrazione da javax a jakarta

Il plugin si trova qua : https://plugins.gradle.org/plugin/com.netflix.nebula.jakartaee-migration

La spiegazione su cosa puo fare e come si usa qua : https://github.com/nebula-plugins/gradle-jakartaee-migration-plugin

Lo scenario in cui l’ho utilizzato e’ quando si devono usare due librerie o framework, una con dipendenze “vecchie” sotto javax e una con dipendenze “nuove” sotto jakarta su un application server “nuovo”.

Il plugin aggiorna automaticamente le dipendenze vecchie, al momento della compilazione, rendendo tutto funzionante e interoperabile.

Un sentito ringraziamento a chi ha reso necessario il cambio di nome.

llamafile v0.6

Mi segno e segnalo questa release che ho trovato impressionate : https://github.com/Mozilla-Ocho/llamafile/releases

Si tratta di un sistema per rendere facilmente accessibili modelli di linguaggio e praticamente funziona su tutti i sistemi operativi (window, linux, mac, etc) sfruttando CPU anche ARM, GPU anche multiple, anche AMD.

Si scarica il modello. Su linux gli si da il permesso di esecuzione, su windows lo si rinomina in .exe e lo si avvia.

Ho scaricato il modello llava e funziona con prestazioni accettabili anche usando solo una CPU non nuovissima (intel i7 11 generazione).

« Articoli meno recenti

© 2026 b0sh.net

Tema di Anders NorenSu ↑