di Enzo Sorbera
A settembre, ripartirà la collaborazione di Innovazione Locale con l’Istituto Professionale di Chiusi. Un ciclo di incontri per mostrare la versatilità e le tecniche di utilizzo di strumenti come Arduino, Raspberry e Python. Il mio intervento è previsto su quest’ultimo argomento, e si incaricherà di fare divulgazione, mostrando le potenzialità del linguaggio in situazioni eterogenee. Questo è quanto mi hanno chiesto di fare, ma è un po’ come dire: parla del mare. Python, ormai, è uno strumento gigantesco, utilizzato in più ambiti: dall’amministrazione di server a quella di reti di computer, dal calcolo scientifico avanzato allo sviluppo di videogames, dal web-scraping al web-authoring, dalle applicazioni di machine learning alla robotica, dall’integrazione di software geografico (il GIS) alla crittografia, e (tanto) altro elencando.
Come si vede, sono ambiti così diversi e distanti tra loro da dover per forza selezionare una linea di presentazione che, senza sacrificare la complessità e varietà dell’argomento, ne mostri però le possibilità e la praticabilità nel momento in cui si sappia quello che si vuol fare. Per questo, considerando il tipo di destinatari, quest’anno avevo pensato di presentare le linee guida di sviluppo di un’applicazione di riconoscimento del linguaggio parlato. In pratica, presenterò un gruppo di programmi che si incaricano di riconoscere e trascrivere quanto viene detto in un device di input come un microfono. E’ chiaro che questo tipo di lavoro, quando si parte da zero, presenta alcune difficoltà piuttosto impervie: aver a che fare con il linguaggio naturale porta sempre a cacciarsi in un ginepraio che coinvolge, tra le altre discipline, linguistica, fonetica, calcolo delle probabilità, machine learning, algoritmica avanzata e modelli matematico statistici di analisi predittiva, oltre che la necessità di una conoscenza approfondita delle tecniche di programmazione. Posso rassicurare i lettori sulla qualità del mio stato attuale di sanità mentale. In realtà, il lavoro che svolgeremo punterà a presentare le basi per un’applicazione che, appoggiandosi su strumenti software già esistenti e sviluppati, consenta di impartire semplici comandi vocali a un dispositivo elettronico. Nell’ambito dell’incontro programmato con la “classe”, verrà presentato solo il progetto di massima di un riconoscitore vocale. Il software, una volta sviluppato, farà in modo che i comandi impartiti verrano “tradotti” in una serie di input per il dispositivo, cosa che ci consentirà di mettere in pratica anche quanto abbiamo visto lo scorso anno in merito a metodi e librerie di interfacciamento tra un linguaggio di alto livello come Python e un dispositivo hardware come Arduino. Dal nostro orizzonte, per il momento, escluderemo Raspberry, concentrandoci su Windows come sistema operativo ospite. Qualora ci siano degli interessati all’approfondimento, potremo strutturare una serie di incontri volti allo sviluppo finale del sistema di comando vocale a distanza. Potrebbe essere un progetto a più fasi, tale per cui via via che si acquisiranno le competenze teoriche necessarie di matematica, meccatronica, ecc., le metteremo in pratica. Nel frattempo, in attesa dell’avvio dell’anno scolastico, potremmo dare un’occhiata al materiale che ci farà da base di appoggio.
Desai, P., Python programming for Arduino, Packt Publishing;
Pant, T., Building a Virtual Assistant for Raspberry Pi, Apress;
Perkins, J., Python 3 Text Processing with NLTK 3 Cookbook, Packt Publishing;
Downey, A., DSP – Digital signal processing in Python, O’Reilly
Diciamo più 20 che 25. Infatti molto probabilmente saranno presenti alcuni dei frequentanti dell’ultimo corso che daranno una preziosa mano come tutor.
Importante precisare che la partecipazione al corso, come per i precedenti, è aperta a tutti, senza limiti di età, di sesso, di scuola o competenze. Enzo parla di classe in senso lato, riferendosi al gruppo eterogeneo che si costituirà.
Ovviamente dovremo limitare la partecipazione ad una venticinquina di persone.
Quello di Enzo (Sorbera) è un assaggio di una parte di quanto faremo. Non vorrei che un linguaggio troppo tecnico facesse pensare a una cosa difficile. Non è così, basterà l’impegno e tutti i frequentanti riusciranno a raggiungere risultati che apriranno un mondo davvero interessante. Ci faremo sentire presto.