E.V.A. aspirante assistente virtuale in python
Ho migrato questo sito dal'italiano all'inglese, questo è uno dei primi articoli scritti in italiano, che ho deciso di mantenere. Se preferisci leggere la versione in inglese la trovi qui.
Credo nell'imparare facendo, così quando ho iniziato a studiare python ho dato subito vita al mio primo progetto, E.V.A., Elementary Virtual Assistant.
C'era una volta
All'inizio si trattava di un loop che attendeva input nel terminale, potevo chiedere l'ora - sì, molto utile - ed il meteo del giorno.
Dopo la lezione sulla lettura dei file, ho inserito la possibilità di salvare delle note in un file txt, di stamparle nel terminale e di poterle rimuovere.
Sono passato poi ad un'interfaccia grafica che sfruttava le notifiche di sistema per dare informazioni sui compleanni in arrivo, sulle mail arrivate, sulle notifiche meteo, con una rubrica interna che mi dava la possibilità di cercare informazioni sui contatti.
Mi sono divertito a fare tutto questo e ho messo le basi per la nuova versione a cui sto lavorando, riscritta da zero come molte delle precedenti. Ora la "V." non significa più solo "virtuale" ma anche "vocale" - un'assistente vocale, un'idea pionieristica -.
Per aspera ad astra
Non voglio reinventare la ruota, ci sono diverse soluzioni open source - il primo link che ho trovato - commerciali e non, fatte da persone molto più competenti di me, in alcuni casi con team numericamente capaci di fornire assistenza e proporre roadmap realistiche.
Il mio obiettivo, oltre imparare e divertirmi, è creare un software per me, in italiano, che giri in locale, capace di eseguire offline i passaggi di speech-to-text e text-to-speech. Questo sia per un discorso di indipendenza da una connessione internet, sia per una questione di proprietà dei dati, che vorrei mantenere il più possibile centralizzati nel dispositivo.
Farò girare tutto in un raspberry, una soluzione abbastana diffusa.
Sto dedicando un po' di tempo per organizzare il lavoro, creare il progetto su Trello e studiare i dettagli necessari per costruire la struttura portante del progetto, ma già non vedo l'ora di poter lavorare sulle varie skill.
L'organizzazione
La cosa più sfidante sarà proprio l'organizzazione, dovrò riuscire a dedicarmi con costanza al progetto.
Sto definendo la milestone, individuo le caratteristiche che saranno presenti e cerco di identificare i passaggi necessari per implementarle. Divido poi tutto in task brevi, per renderli il più possibile lavorabili in slot di tempo ridotto.
Ogni task concluso deve aggiungere un tassello stabile, dal quale partire per le nuove integrazioni.
Come ho scritto sopra uso Trello per l'organizzazione, non padroneggio la metodologia Kanban ma, per quanto ne so, la trovo flessibile per gestire progetti in singolo.
- Limito a due i task in lavorazione, cerco di non farlo ma mi concedo la possibilità di lavorare a due task in parallelo, per poter spezzare quando mi blocco su qualcosa.
- Non avendo sprint posso gestire in maniera flessibile le priorità dei task in backlog.
- Non assegno scadenze ai task, voglio comunque che sia un divertimento.
Comunque vada, sarà un successo
Riorganizzo un po' le idee e metto giù un programma di lavoro realistico. Spero di avere presto qualche novità da raccontare.
Intanto grazie per essere passato e aver letto fin qui, ci sentiamo alla prossima.