In queste ultime settimane sto collaborando con i miei amici del Arc-Team sul possibile utilizzo di un’assistente vocale (VUI) nell’ambito dei Beni Culturali (Cultural Heritage). Abbiamo deciso quindi di iniziare con un project manager che possa aiutare l’archeologo durante il lavoro sul campo.
1 – Apri Arc Team manager
Per capire perché una Vocal User Interface (VUI) è di grande aiuto in archeologia dobbiamo comprendere che i progetti possono essere suddivisi in quattro categorie:
1 – Scavi (probabilmente il 70% del lavoro)
2 – Sondaggi ed esplorazioni
3 – Valorizzazione del patrimonio culturale
4 – Studi principalmente ricerche su specifici argomenti archeologici e storici.
Dal punto di vista logistico i progetti più critici sono quelli relativi a scavi e rilievi, soprattutto se eseguiti in condizioni estreme come nel caso di archeologia glaciale, delle alte montagne, subacquea, speleoarcheologia, ecc
Le operazioni sul campo sono soggette ad errori, specialmente se molte persone lavorano allo stesso progetto da un’area diversa (ad esempio, un errore comune sta dando lo stesso codice a diversi strati o manufatti).
Un modo per cercare di evitare errori consiste nell’utilizzare database e GIS direttamente sul campo, ma questa soluzione presenta alcuni punti deboli, principalmente legati ai dispositivi su cui viene eseguito questo software e alla necessità di trovare una posizione comoda per inserire i dati (anche se temporanei).
Grazie alla copertura sempre più ampia di Internet e degli smartphone di nuova generazione, ora è più semplice inserire i dati in un server attraverso un DBMS con un’interfaccia ben progettata anche se per GIS è ancora meglio lavorare con un laptop robusto.
Queste operazioni richiedono molto tempo e tengono occupato l’archeologo per un po’, con tutte le difficoltà derivanti dall’uso di un touch-screen (guanti, mani sporche, pioggia, ecc …).
Per questo motivo un project manager basato su comandi vocali potrebbe migliorare il lavoro sul campo, evitando errori dovuti ai fattori di stress come i tempi brevi, condizioni meteorologiche, più persone che lavorano contemporaneamente, ecc.
2 – Prototipo
Il prototipo è ancora in una fase molto precoce, ma l’abbiamo già modificato un paio di volte. Ad esempio all’inizio ci siamo basati su google sheet e abbiamo utilizzato la libreria pygsheets per accedere ai dati:
1 |
pip install pygsheets |
Su suggerimento dell’archeologo Giuseppe Naponiello siamo passati ad una soluzione con PostgreSQL notando un notevole miglioramento nell’accedere ai dati considerando che Alexa va in errore dopo pochi millisecondi se non trova una risposta. Per accedere al database postgres stiam utilizzando la libreria psycopg:
1 |
pip install psycopg2 |
Il video seguente mostra un’anteprima di come aprire un progetto.
1 2 |
apri progetto Castel Penede openProjects(NAM) |
Questa soluzione è stata più che sufficiente per gestire l’elenco dei codici delle unità stratigrafiche, manufatti, campionamenti, documentazioni (in 3D e 2D), con anche la possibilità di mantenere controllato il budget e l’orario di lavoro.
Annotazione linguistica
1 |
apri il progetto Castel Penede |
Questo si traduce per l’interaction model di Alexa nell’intent openProject e nell’entity NAM per definire il nome del progetto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ “name”:“openProject”, “slots”:[ { “name”:“NAM”, “type”:“NAM” } ], “samples”:[ “apri il progetto {NAM}”, “aprimi il progetto {NAM}”, “puoi aprire il progetto {NAM} “, “per favore apri il progetto {NAM} “, “apri il {NAM}” ] } |
Attualmente stiamo sviluppando più opzioni, come la possibilità di chiedere al project manager la lista dei progetti a cui abbiamo lavorato durante una data specifica.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ “name”:“listProjects”, “slots”:[ { “name”:“DAT”, “type”:“AMAZON.DATE” } ], “samples”:[ “desidero i progetti”, “dammi la lista dei progetti”, “dammi i progetti del {DAT}”, “dammi i progetti di {DAT}”, “dammi la lista dei progetti del mese di {DAT}”, “vorrei i progetti del {DAT}” ] } |
3 – Alexa
Nonostante la nostra decisione di lavorare con FLOSS (Free Libre Open Source Software), per questo primo esperimento con un’assistente vocale abbiamo deciso di iniziare con Alexa di Amazon, per diversi motivi:
1 2 3 |
1 – Lo sforzo di Amazon nello sviluppo di Alexa 2 – La diffusione tra gli utenti di Alexa 3 – Il supporto per l‘italiano |
4 – Vocal Rasa Interface
Appena avremo un primo prototipo, prevediamo di testare e sviluppare anche una soluzione vocal open source utilizzando il framework di Rasa integrandola con Mozilla DeepSpeech e Mozilla TTS.
Tutto il codice verrà rilasciato al più presto, con licenze open source, in questo repository pubblico su GitLab.
Sitografia
[1] Luca Bezzi, Archaeology, Alexa and NLP, Arc-Team Blog, 20/12/2019
[2] Justina Petraityte, How to build a voice assistant with open source Rasa and Mozilla tools, Rasa Blog, 27/08/2019