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
suiend_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
- evita i valori
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.