Skip to content

AI Pronunciation Trainer

In questo articolo presento progetto a cui sto lavorando attualmente: AI Pronunciation Trainer (online qui), uno strumento progettato per aiutarvi a migliorare la vostra pronuncia utilizzando la potenza dell'intelligenza artificiale. Questo progetto è un refactor dell'originale AI Pronunciation Trainer di Thiagohgl a cui ho fatto diversi miglioramenti per rendere lo strumento più efficace e facile da usare.

Cos'è e cosa fa

AI Pronunciation Trainer è uno strumento che utilizza l'intelligenza artificiale per valutare la vostra pronuncia e fornire feedback, aiutandovi a migliorare e a essere compresi più chiaramente. Utilizza i modelli Silero STT / TTS, openai whisper e faster whisper per le funzionalità di speech-to-text (Silero permette anche di fare text-to-speech), garantendo una valutazione della pronuncia accurata e affidabile.

Refactor: aggiornamento delle Librerie Frontend e Backend

A proposito del backend:

  • PyTorch è adesso alla versione 2.6.x
  • aggiornato il modello Silero tedesco di Speech-to-Text per risolvere un bug che impediva l'utilizzo di PyTorch successivo alla versione 1.13.x.
  • Migliorati i test di backend python usando la mutation test suite Cosmic Ray
  • Risolto un bug per cui whisper non leggeva correttamente il timestamp finale for l'ultima parola nella registrazione (alla fine ho risolto usando il pacchetto pip openai whisper)
  • Aggiunto supporto per il pacchetto pip faster whisper:
    • evita i valori None sui end_ts timestamp nell'ultima parola della registrazione al contrario dell'output dell'output di whisper creato con la pipeline HuggingFace
    • permette di individuare momenti di silenzio prolungato tramite silero-vad

Inoltre, per quanto riguarda il frontend:

  • Aggiornate le librerie javascript utilizzando le versioni più recenti di jQuery (3.7.1) e Bootstrap (5.3.3)
  • Nuovo frontend basato su Gradio 5.x
  • Aggiunti test E2E con Playwright
  • Aggiunta la possibilità di scrivere, leggere ed ovviamente valutare una frase a scelta libera
  • Tour guidato per i nuovi utenti con driver.js ed css/javascript custom dentro ai Gradio blocks
  • Riproduzione delle singole parole nella registrazione seguite dalla pronuncia 'ideale' della stessa parola letta dal motore Text-to-Speech
  • Aggiunto anche una funzionalità di Text-to-Speech in-browser (su Windows 11 funziona solo nel caso siano installati i pacchetti linguistici inglesi e tedesco)
  • Frontend custom webApp - migliorato lo stile CSS su dispositivi mobile

Versione online: la demo su HuggingFace

Potete provare online il mio progetto sul mio HuggingFace Space. Questa demo online vi permette di sperimentare le capacità dello strumento senza alcuna installazione o configurazione. Lo spazio HuggingFace fornisce un modo conveniente e accessibile per testare AI Pronunciation Trainer e vedere come può aiutarvi a migliorare la vostra pronuncia. Si prega di essere pazienti, a volte è un po' lento oppure in sleeping nel caso non sia utilizzato da nessuno da un po' (localmente è molto più veloce, soprattutto se avete un computer potente). Ecco una versione embedded dello spazio HuggingFace:

Sviluppi Futuri

Pur funzionando piuttosto bene, ci sono ovviamente margini di miglioramento. Ecco alcuni dei miglioramenti futuri che intendo implementare:

  • Ricevere feedback dall'autore del progetto originale (Thiago Lobato) sulla mia documentazione e sulle modifiche
  • Chiedere all'autore del lavoro originale alcune spiegazioni sulle scelte architetturali e funzionali che ha fatto
  • Valutare il passaggio da PyTorch a onnxruntime (se possibile)
  • Aggiungere nuovamente il container docker (se possibile)

Conclusione

AI Pronunciation Trainer è uno strumento utile per chiunque desideri migliorare in autonomia la propria pronuncia. Con la potenza dell'IA ed i miglioramenti apportati durante il refactor, questo strumento fornisce feedback accurati e affidabili per aiutarvi a parlare in modo più chiaro e sicuro. Vi invito a provare la demo HuggingFace Space e capire come questo progetto possa aiutarvi nel vostro percorso verso una migliore pronuncia.