Christian Tolloi

Founder Starter

Come ho costruito un' AI in tre giorni partendo da zero...e come puoi farlo anche tu!

2019-08-05 20:58:19

"La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta." -Asimov. Non c'è citazione più azzeccata per introdurre tale topic ed invitarvi alla lettura della mia guida verso questo nuovo orizzonte digitale.

Introduzione all' AI e preparativi

La prima cosa che viene da pensare quando si legge Intelligenza artificiale sono quei super robot quasi umani che vengono proposti dalla cinematografia e dai romanzi. 

In realtà l' intelligenza artificiale è un settore dell'informatica che si occupa della programmazione e progettazione di sistemi software ed hardware capaci di interagire sia attivamente che passivamente con l'ambiente circostante e con gli input del mondo esterno. 

La parola intelligenza deriva proprio dal fatto che al nostro sistema vengono forniti dei sensori o dei moduli capaci di raccogliere dati e poi elaborarli a seconda di come è stato impostato, per ottenere infine un risultato vantaggioso all'essere umano.

Si potrebbe parlare per ore di questo argomento, che sarà sicuramente materia di prossimi articoli; ma ora addentriamoci nel vivo di un' AI per programmarla con le nostre mani!

Parliamo la lingua delle macchine

Se pensate di non essere abbastanza digitali per fare una cosa del genere, dovete ricredervi, in poche ore sarete in grado di programmare un assistente che starà ai vostri ordini, ancor meglio di Google Assistant, Siri o Alexa.


Una cosa certa è che lui/lei non avrà problemi a capirvi, ma voi sarete in grado di capirlo?

Per questo il primo passo che consiglio di fare per chi vuole intraprendere questo percorso è quello di studiare per bene le basi della programmazione.

Per programmare un'AI esistono decine di linguaggi specifici ed avanzati, ma il più semplice e comune è il Python.

Questo linguaggio è molto vasto ed usato in tutto il mondo e per un gran numero di impieghi, impararlo vi richiederà una serata al massimo per l'utilizzo che ne dovremo fare noi. (Per ottenerne una conoscenza avanzata offro corsi privati via Cam.TV)

Di cosa abbiamo bisogno e dove procurarselo

  • Python 3: Python download link, questo download permetterà al nostro computer di "capire" il nostro linguaggio di programmazione, cioè il python. Dovrete solo scaricarlo
  • Pycharm: Pycharm download link, Questo invece sarà il nostro IDE, cioè ambiente di sviluppo. E' proprio qui che scriveremo il nostro codice e daremo vita al nostro amico virtuale
  • Tutorial video Python: Guida italiana All'interno di questa guida troverete un intero corso in italiano da brevi e chiari video sul linguaggio, come detto in 1/2 ore saprete parlare il computerese. 
  • Tutorial ufficiale Python: Raccolta guide per novizi Il sito ufficiale di Python mette a disposizione un' immensa serie d guide da libri a video per imparare questo potentissimo strumento



Basta preparativi, passiamo all'azione

Se siete arrivati fin qui, siete prossimi ad ottenere un lavoro alla Google. Ma il bello arriva proprio ora. 

Il corpo fondamentale del nostro amico virtuale è la comunicazione uomo-macchina.

Ed ecco che subentrano i primi moduli o librerie. Per questo progetto useremo il modulo gTTS (Google Text To Speech) ed sr (Speech_Recognition).

  1. gTTS: Questa libreria permetterà alla vostra AI di parlare, sarete voi gli artefici del suo destino, in quanto essendo un sistema semplice, essa non saprà parlare fin quando non imposterete delle frasi da farvi dire. Link modulo (download ed info), anche qua, non spaventatevi, in 3 righe di numero avrete già creato la vostra prima AI, 30 secondi? Se va male! 

La banalità di questo progetto è incredibile, riporto il codice in grassetto con i relativi commenti:


from gtts import gTTS
import os

talk = gTTS(text = 'Hello World', lang = 'en', slow = False)
talk.save('Hello.mp3')
os.system("Hello.mp3")


La prima riga importa nel codice il modulo per il linguaggio che dovreste aver scaricato dai prerequisiti, successivamente import os, allega i comandi già presenti del sistema operativo...voi non lo sapete ma il vostro computer potrebbe portarvi sulla luna.


il comando gTTS, il vero e proprio decodificatore della voce, questo comando al suo interno vi chiederà il testo che l'AI dovrà riprodurre, la lingua (in italiano sarà it) e la velocità di riproduzione.


Per far parlare l'assistente non c'è molto più semplice degli audio, per questo salviamo all'interno di una variabile la codifica, e salviamo il tutto come un file .mp3, che nel video si vede che viene generato automaticamente dall'AI.


A questo punto non rimane che chiedere al computer di riprodurre questo audio, con l'ultimo comando potrete riprodurre qualsiasi file .mp3, purchè corrisponda il nome del file, e così in pochissimi secondi avrete dato la vita alla vostra AI

     2. sr (Speech_recognition): Questo modulo inizia già ad essere particolarmente                 traviante per gli inesperti, quindi vi consiglio di prenderlo con calma e cercare di            capirlo un passaggio alla volta.

           Download and info sr, è importante avere molta molta pazienza quando si                     programma, addentriamoci nel vivo della nostra AI


Completiamo ora il codice con il riconoscimento vocale ed un esempio di interazione uomo-macchina in cui l'AI riconosce il comando vocale 'Hello' e risponde di conseguenza salutandoci.

Qua sotto il codice completo di esempio:


FINE CODICE.


la parte complicata qua sta nella definizione della funzione myCommand(), tale funzione quando viene chiamata, inizializza in automatico l'ascolto dell'utente, calibrando le pause e il filtro per l'ambiente circostante come parametri iniziali. 

Successivamente avvia l'ascolto chiamando la funzione .Microphone() che ricerca la sorgente di ascolto del proprio pc e all'interno dell'ascolto, salva in un audio ciò che diciamo, grazie alla funzione .listen(source) che appunto attinge alla nostra sorgente uditiva digitale.


Qui si aprono due funzioni, se il commando che abbiamo impartito vocalmente è stato compreso e riconosciuto (TRY:) secondo la lingua impostata (occhio ai dialetti!) allora il sistema salverà all'interno del comando command ciò che abbiamo detto.

Altrimenti (EXCEPT:) il sistema ripeterà l'ascolto, e ciò avviene soprattutto quando non state parlando, infondo anche la nostra AI vuole capire noi.


Il tutto si conclude restituendo la variabile contenente il nostro comando al sistema.


SBIZZARRITEVI!!!

Da qui in poi la AI sarà al vostro pieno comando, non ci sono limiti a ciò che può dire o fare, in men che non si dica avete un assistente dal potenziale infinito, non vi basterà altro che implementare i vari blocchettini di funzioni e far si che sia l'AI ad estrarre il pieno potenziale di se stessa.


Con ciò concludo la guida con cui spero di avervi intrattenuti ed attratti un pò di più nel mondo dell'ingegneria e delle tecnologie emergenti.

Se ciò piacerà e verrà richiesto, implementerò le decine e decine di funzioni che la mia AI già svolge ogni giorno, permettendomi di limitare l'uso delle mani praticamente solo per scrivere i post su Cam.TV :D


Cari saluti Camers,

Christian