sabato, 6 maggio 2006

Il mio primo contributo software al mondo open source

Usando uno strumento per la grafica 3D come Blender prima o poi si ha la necessità di far parlare i personaggi delle proprie animazioni coordinando audio e movimenti del viso. Ebbene in Blender è presente lo script Python BlenderLipSynchro che crea automaticamente le curve IPO sulla base di files, contenenti le parole suddivise in fonemi, creati grazie ad uno strumento esterno. Questo strumento nel mio caso si chiama Papagayo. Si tratta di un software diventato open source e free e scritto in Python.
Papagayo giunto alla versione 1.1 permette automaticamente di suddividere, sulla base di un file audio, un testo in fonemi prestabiliti. Ogni lingua naturalmente ha le sue regole di pronuncia e in Papagayo sono attualmente previste due lingue: inglese e spagnolo. La suddivisione nella lingua spagnola è contenuta in un modulo Python a parte che ho attentamente analizzato. Dopo aver capito come funziona il meccanismo di base, mi sono buttato nella creazione di un modulo analogo per la lingua italiana. Pur non avendo grande esperienza in Python ci sono riuscito e oggi ho potuto inviare il mio modulo via e-mail alla ditta che distribuisce Papagayo.

Da quando mi sono convertito a Linux si tratta per me di una prima assoluta. Finora infatti mi ero limitato a partecipare a vari forum degli utilizzatori, apprendendo molto e contribuendo qualche volta. Mai però avevo avuto l'occasione di creare un pezzo di software da consegnare alla grande comunità dell'open source. È vero che non ho scritto da zero il mio modulo, ma che ho usato quello spagnolo come modello, ma d'altra parte la filosofia e la forza dell'open source stanno proprio qui: sfruttare quello che c'è già per migliorare e ampliare; eventualmente aprire nuove vie se proprio non esiste ancora nulla di ciò che abbiamo bisogno.

Per il modulo della lingua spagnola che ho usato come modello devo ringraziare Myles Strous che ha aperto la strada delle lingue aggiuntive in Papagayo.

Chi fosse interessato al mio modulo lo può scaricare direttamente qui. Finché la lingua italiana non è implementata in una nuova versione di Papagayo, è necessario modificare un altro modulo Python in modo da sostituire il richiamo della lingua spagnola con quella italiana quando si preme il pulsante "Spanish" nell'interfaccia di Papagayo. Il modulo da modificare è LipsyncDoc.py al quale bisogna aggiugere la seguente riga di codice:
import italian_breakdown
e infine inibire la lingua spagnola e attivare quella italiana
# pronunciation = spanish_breakdown.breakdownSpanishWord(text)
pronunciation = italian_breakdown.breakdownItalianWord(text)

buon divertimento!

Nessun commento: