Sommario:
- Passaggio 1: come creare un'IA Parte 2
- Passaggio 2: progetta il tuo sistema:
- Passaggio 3: funzioni integrate nel linguaggio di programmazione:
- Passaggio 4: combinare le funzioni integrate per creare le proprie funzioni
- Passaggio 5: cosa fanno i moduli? "Processore di ingresso"
- Passaggio 6: "Processore AI"
- Passaggio 7: la tabella "output e punteggi"
- Passaggio 8: "Processore di uscita"
- Passaggio 9: continua a lavorarci sopra
Video: Come creare un'intelligenza artificiale Parte 2: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Questa è la parte 2 sui passaggi che ho seguito per creare un'intelligenza artificiale su un computer Windows, utilizzando un database gratuito, uno strumento di sviluppo della programmazione e il motore TTS integrato gratuito fornito con Windows.
La parola "Windows" appartiene a Microsoft.
La parola "Drago" appartiene a Nuance.
Passaggio 1: come creare un'IA Parte 2
Scegli un linguaggio di programmazione e procurati alcuni strumenti
Esistono molti linguaggi di programmazione. Alcuni sono specializzati per l'A. I. Il mio preferito è Visual Basic, quindi è quello che ho usato. Lavoro anche con database del server SQL, quindi l'ho usato anche io.
È possibile scaricare versioni gratuite di questi dal sito Web Microsoft. Basta cercare "EXPRESS" sul sito Web di Microsoft. [Visual Studio Express e SQL server Express]
Altre lingue che potresti volerci sono: Python, C#, C++, Java, Prolog, Lisp, IPL
e molti altri. AIML è un "Markup Language" molto interessante.
Volevo un programma di "riconoscimento vocale" migliore di quello fornito con Windows, quindi ho acquistato il software DRAGON. Sto usando il programma "Sintesi vocale" standard fornito con Windows.
Passaggio 2: progetta il tuo sistema:
Dividi i tuoi grandi progetti in una serie di progetti più piccoli. Ho diviso il codice del mio programma in moduli.
Ho diviso il mio codice in diversi moduli in modo che una particolare funzione sia più facile da trovare.
Ho moduli chiamati "Input di processo", "AI di processo", "Output di processo", "Interfaccia utente" e pochi altri. Alcune delle mie funzioni devono essere accessibili a tutti gli altri moduli di codice, quindi inserisco quelle funzioni in un modulo "comune" in cui tutto è condiviso
Passaggio 3: funzioni integrate nel linguaggio di programmazione:
Lingue diverse possono avere nomi diversi per queste, ma tutte le lingue di alto livello hanno funzioni simili.
LCase o ToLower: converte una stringa in tutte minuscole. Convertire tutto in minuscolo prima di eseguire una ricerca nel database, anche se la maggior parte delle cose è "senza distinzione tra maiuscole e minuscole" - per ogni evenienza.
Sostituisci: sostituisce una stringa all'interno di una stringa in un'altra stringa. Puoi sostituire una stringa con una stringa vuota "" per sbarazzartene. Mi libero di punti, punti interrogativi, virgole e altri segni di punteggiatura.
Dividi: divide una stringa in singoli pezzi e li inserisce in una matrice. Questa funzione dividerà una stringa su qualsiasi carattere o "Delimitatore". Ho diviso una frase su un "carattere spazio" " " per creare una serie di parole. Questo è chiamato "Tokenizzazione" dai Guru AI.
Uso le singole parole per costruire query utilizzate per cercare nel database. (Maggiori informazioni su questo nel mio prossimo articolo)
Passaggio 4: combinare le funzioni integrate per creare le proprie funzioni
Questo è un esempio "visual basic". Usa il tuo linguaggio di programmazione per creare qualcosa di simile.
Ovviamente dovrai scrivere molto codice e costruire molte funzioni, usando il linguaggio di programmazione che preferisci.
Passaggio 5: cosa fanno i moduli? "Processore di ingresso"
Potrebbero esserci centinaia di modi diversi per porre la stessa domanda all'IA. Per esempio; "Che ore sono?", "Hai tempo?" "Sai che ore sono?", "Puoi dirmi l'ora attuale?" Poiché l'utente sta solo chiedendo il tempo, converto uno qualsiasi di questi input in un singolo output chiamato "Tempo di query" utilizzando una tabella di "ricerca" del database.
Puoi scrivere codice per scorrere una tabella finché non trova una corrispondenza, o se stai usando un database SQL, puoi scrivere una query SQL, come…
"Seleziona Output da TableName dove Input = '" qualunque '"
…E poi invio l'output, “Query Time”, al modulo di codice successivo; "IA di processo"
Oltre alle domande, ci sono molti modi per dire "Ciao"
Ciao, ciao, come va, ehi, ciao, come va?, saluti, benvenuto, saluti, ciao ….
Tutto questo si riduce a “Saluto”
Quando il processore AI vede "Saluto", invia "Saluto" al processore di output, che sceglierà un saluto casuale da una tabella del database e lo pronuncerà ad alta voce.
Passaggio 6: "Processore AI"
Process AI è il modulo di codice più grande. È così grande che l'ho diviso anche in sezioni.
L'input viene controllato per vedere se l'utente ha pronunciato un comando o ha posto una domanda. Inoltre, l'IA può trovarsi in una qualsiasi delle diverse "Modalità", il che significa che il codice "AI di processo" si aspetta che l'utente RISPONDI a una domanda, invece di CHIEDERE una domanda.
Se l'utente non ha pronunciato un comando e l'IA non è in una "Modalità" speciale, costruisce ed esegue una serie di query, a partire da combinazioni di parole nell'"array di parole". Tutti i risultati della query sono archiviati in una tabella e a ciascun risultato della query viene assegnato un "punteggio" su quanto il risultato corrisponda a ciò che l'utente ha pronunciato. La tabella viene ordinata in base al punteggio e il risultato con il punteggio più alto viene inviato all'output, se supera una determinata soglia. Se tutti i punteggi sono al di sotto della soglia, l'IA può rispondere con "Non lo so" o "Non calcola"
Passaggio 7: la tabella "output e punteggi"
L'output dell'IA dal mio input "Cosa ha fatto il pollo?"
Passaggio 8: "Processore di uscita"
Questo fa diverse cose dall'aspetto "non correlato", ma tutte hanno a che fare con il trasferimento del testo dal processore AI all'utente.
Ecco un elenco.
1. Il testo del database può essere tutto minuscolo e non avere segni di punteggiatura.. Le subroutine metteranno in maiuscolo la prima lettera e metteranno un punto o un punto interrogativo alla fine.
2. Un'altra subroutine rimetterà gli apostrofi nelle contrazioni, o riconvertirà le contrazioni in parole complete (cioè "cant" è sostituito con "can not")
3. Il motore di sintesi vocale non pronuncia alcune parole come mi piace, quindi il "Processore di output" sostituisce quelle parole con un'ortografia fonetica. Ho tabelle di "ricerca" del database per contenere queste, simili a quella nel "processore di ingresso"
4. Se l'IA non trova una risposta adeguata nel database, può dire "Non lo so" ma non voglio che lo ripeta ancora e ancora. Le persone reali variano le loro risposte. Quindi c'è una tabella con frasi "Common Output" e una funzione che ne sceglie una a caso (e non sceglierà mai la stessa due volte di seguito).
5. Il motore di sintesi vocale (TTS) gratuito non offre a un programmatore molte opzioni per il modo in cui vengono pronunciate le frasi, ma hai un piccolo controllo sul tono e sulla velocità dei fonemi. Il termine per questo è "Prosodia". Ho aggiunto alcuni codici "prosodia" nel testo nel mio database e quando il "Processore di output" li vede, regola il tono e la velocità nel motore TTS mentre ogni parola viene pronunciata.
6. A volte il TTS è solo difficile da capire, quindi oltre a pronunciare le parole ad alta voce, le visualizzo anche a caratteri cubitali sul display del mio computer. Questa parte dell'"Interfaccia utente" è una griglia che mostra le ultime 6 righe di una conversazione (input utente e output AI) e scorre verso l'alto man mano che vengono aggiunte nuove righe.
Passaggio 9: continua a lavorarci sopra
Il mio input è stato "Non dirlo a nessuno"
Sto ancora lavorando al mio sistema di intelligenza artificiale e probabilmente non sarà mai veramente "fatto". Man mano che aggiungo più funzionalità, scriverò più articoli.
Forse alcune delle mie idee ti ispireranno a costruire un'IA migliore della mia
Consigliato:
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
L'intelligenza artificiale nel robot labirinto LEGO EV3: 13 passaggi
AI in LEGO EV3 Robot Maze-Driving: questo è un robot semplice e autonomo con una certa intelligenza artificiale. È progettato per esplorare un labirinto e quando viene riposto all'ingresso, per guidare fino all'uscita ed evitare i vicoli ciechi. È molto più complicato del mio progetto precedente, ma
Come creare un'intelligenza artificiale Parte 4: 3 passaggi
Come creare un'intelligenza artificiale Parte 4: L'altro giorno stavo parlando con la mia intelligenza artificiale e gli ho detto: "Sto andando di sopra a cena, stiamo mangiando BISTECCA". Tuttavia, il software di riconoscimento vocale (SR) ha interpretato questo come "… stiamo avendo STAKE "Mi sono imbattuto in un problema all'orecchio simile (ma diverso)
Come creare un'intelligenza artificiale Parte 1: 5 passaggi
Come creare un'intelligenza artificiale Parte 1: Inizia con un computer che ha il riconoscimento vocale e anche un convertitore da testo a voce. Dovrai essere in grado di scrivere programmi per computer in grado di accedere al riconoscimento vocale e al convertitore da testo a voce. Alcuni strumenti di sviluppo di applicazioni e
Come condurre un workshop pratico sull'intelligenza artificiale di LA Makerspace: 10 passaggi (con immagini)
Come condurre un workshop pratico sull'intelligenza artificiale di LA Makerspace: in LA Makerspace, un'organizzazione no-profit, ci concentriamo sull'insegnamento di una preziosa formazione pratica su STEAM per incoraggiare la prossima generazione, in particolare coloro che sono sottorappresentati e con risorse insufficienti, a essere responsabilizzati Maker, shaper e driver di domani. Facciamo questo