Kazalo:

Kako narediti AI 2. del: 9 korakov
Kako narediti AI 2. del: 9 korakov

Video: Kako narediti AI 2. del: 9 korakov

Video: Kako narediti AI 2. del: 9 korakov
Video: DIY Дракон из бумаги из Тик Ток | DIY Paper Dragon Puppet TikTok 2024, Julij
Anonim
Kako narediti AI 2. del
Kako narediti AI 2. del

To je drugi del o korakih, ki sem jih naredil za izdelavo AI na računalniku z operacijskim sistemom Windows z uporabo brezplačne baze podatkov, orodja za programiranje in brezplačnega vgrajenega motorja TTS, ki je priložen sistemu Windows.

Beseda "Windows" pripada Microsoftu.

Beseda "Zmaj" pripada Nuanceu.

1. korak: Kako narediti AI 2. del

Kako narediti AI 2. del
Kako narediti AI 2. del

Izberite programski jezik in pridobite nekaj orodij

Programskih jezikov je veliko. Nekateri so specializirani za A. I. Moj najljubši je Visual Basic, zato sem ga uporabil. Delam tudi z bazami podatkov strežnika SQL, zato sem uporabil tudi to.

Brezplačne različice teh lahko prenesete z Microsoftovega spletnega mesta. Samo poiščite »EXPRESS« na Microsoftovem spletnem mestu. [Visual Studio Express in strežnik SQL Express]

Drugi jeziki, ki jih morda želite, so: Python, C#, C ++, Java, Prolog, Lisp, IPL

in mnogi drugi. AIML je "jezik označevanja", ki je zelo zanimiv.

Želel sem boljši program za prepoznavanje govora od tistega, ki je priložen sistemu Windows, zato sem kupil programsko opremo DRAGON. Uporabljam standardni program »Besedilo v govor«, ki je priložen sistemu Windows.

2. korak: Oblikujte svoj sistem:

Oblikujte svoj sistem
Oblikujte svoj sistem

Razdelite svoje velike projekte v kup manjših projektov. Programsko kodo sem razdelil na module.

Kodo sem razdelil na različne module, tako da je določeno funkcijo lažje najti.

Imam module z imenom "Process Input", "Process AI", "Process Output", "User Interface" in nekaj drugih. Nekatere moje funkcije morajo biti dostopne vsem drugim kodnim modulom, zato sem te funkcije postavil v »skupni« modul, kjer je vse v skupni rabi

3. korak: Funkcije, ki so vgrajene v programski jezik:

Funkcije, ki so vgrajene v programski jezik
Funkcije, ki so vgrajene v programski jezik

Različni jeziki imajo lahko različna imena, vendar imajo vsi jeziki na visoki ravni podobne funkcije.

LCase ali ToLower: Pretvori niz v vse male črke. Preden iščem bazo podatkov, vse pretvarjam v male črke-čeprav je večina stvari "ne glede na male črke"-za vsak slučaj.

Zamenjaj: Zamenjaj niz v nizu v drug niz. Niz lahko zamenjate s praznim nizom »«, da se ga znebite. Znebim se pik, vprašajev, vej in drugih ločil.

Razdeli: razdeli niz na posamezne kose in jih postavi v matriko. Ta funkcija bo razdelila niz na kateri koli znak ali "Delimiter". Stavek sem razdelil na "vesoljski znak" "", da naredim niz besed. Guruji AI to imenujejo "označevanje".

Posamezne besede uporabljam za gradnjo poizvedb, ki se uporabljajo za iskanje po zbirki podatkov. (Več o tem v naslednjem članku)

4. korak: Združite vgrajene funkcije, da ustvarite lastne funkcije

To je "vizualni osnovni" primer. Za izdelavo česa takega uporabite svoj programski jezik.

Seveda boste morali napisati veliko kode in zgraditi številne funkcije z uporabo programskega jezika po vaši izbiri.

5. korak: Kaj počnejo moduli? "Vhodni procesor"

Kaj počnejo moduli? "Vhodni procesor"
Kaj počnejo moduli? "Vhodni procesor"

Morda obstaja sto različnih načinov, kako AI postaviti isto vprašanje. Na primer; "Koliko je ura?", "Ali imate čas?" "Ali veste, koliko je ura?", "Ali mi lahko poveste trenutni čas dneva?" Ker uporabnik samo prosi za čas, pretvorim katerega koli od teh vhodov v en izhod, imenovan »Čas poizvedbe«, z uporabo tabele »poišči« zbirke podatkov.

Kodo lahko zapišete po tabeli, dokler ne najde ujemanja, ali če uporabljate bazo podatkov SQL, lahko napišete poizvedbo SQL, na primer …

"Izberite Output iz TableName, kjer je Input =" "karkoli""

… In potem pošljem izhod, "Query Time", v naslednji kodni modul; "Proces AI"

Poleg vprašanj obstaja veliko načinov, kako reči "Pozdravljeni"

Živjo, zdravo, kaj je, hej, hola, kako si ?, pozdrav, dobrodošel, pozdrav, pozdrav …

Vse to se zmanjša na "pozdrav"

Ko procesor AI vidi "Pozdrav", pošlje "Pozdrav" izhodnemu procesorju, ki izbere naključni pozdrav iz tabele baze podatkov in ga izgovori na glas.

6. korak: "Procesor AI"

"Procesor AI"
"Procesor AI"

Procesna inteligenca je največji kodni modul. Tako velik je, da sem ga razdelil tudi na odseke.

Vnos se preveri, če je uporabnik izgovoril ukaz ali zastavil vprašanje. Prav tako je lahko AI v katerem koli od več »načinov«, kar pomeni, da koda »Process AI« pričakuje, da bo uporabnik ODGOVORIL na vprašanje, namesto da bi VPRAŠAL VPRAŠANJE.

Če uporabnik ni izgovoril ukaza in AI ni v posebnem "načinu", potem iz kombinacije besed v "nizu besed" ustvari in izvede kup poizvedb. Vsi rezultati poizvedbe so shranjeni v tabeli in vsak rezultat poizvedbe dobi "oceno" glede na to, kako blizu se rezultat ujema z besedami uporabnika. Tabela je razvrščena po rezultatih, rezultat z najvišjo oceno pa se pošlje na izhod, če preseže določen prag. Če so vse ocene pod pragom, se lahko AI odzove z "ne vem" ali "to se ne izračuna"

7. korak: Tabela "rezultati in rezultati"

The
The

Rezultat AI iz mojega vnosa "Kaj je naredil piščanec?"

8. korak: "Izhodni procesor"

"Izhodni procesor"
"Izhodni procesor"

To naredi več stvari, ki niso povezane, vendar so vse povezane s prenosom besedila iz procesorja AI uporabniku.

Tukaj je seznam.

1. Besedilo iz zbirke podatkov je lahko z malimi črkami in brez ločil.. Podprogrami pišejo prvo črko z veliko začetnico, na koncu pa piko ali vprašaj.

2. Druga podprogram bo apostrofe vrnila v kontrakcije ali pa kontrakcije spremenila v polne besede (tj. "Cant" se nadomesti z "can not")

3. Motor za pretvorbo besedila v govor nekaterih besed ne izgovarja tako, kot mi je všeč, zato “Output Processor” te besede nadomesti s fonetičnim črkovanjem. v "vhodnem procesorju"

4. Če AI v zbirki podatkov ne najde ustreznega odgovora, lahko reče "ne vem", vendar nočem, da to ponavlja vedno znova. Resnični ljudje se različno odzivajo. Tako obstaja tabela s stavki »Common Output« in funkcija, ki izbere enega naključno (in nikoli ne bo izbrala istega dvakrat zapored.)

5. Brezplačni mehanizem »besedila v govor« (TTS) programerju ne daje veliko možnosti za način izgovarjanja stavkov, vendar imate malo nadzora nad višino in hitrostjo fonemov. Izraz za to je "prozodija". V besedilo v svoji zbirki podatkov sem dodal nekaj kod "prozodije", in ko jih "Output Processor" vidi, prilagodi višino in hitrost v motorju TTS, ko se izgovori vsaka beseda.

6. Včasih je TTS preprosto težko razumeti, zato jih poleg tega, da glasno govorim, prikažem tudi z velikimi črkami na zaslonu računalnika. Ta del »Uporabniškega vmesnika« je mreža, ki prikazuje zadnjih 6 vrstic pogovora (uporabniški vnos in izhod AI) in se pomika navzgor, ko se dodajo nove vrstice.

9. korak: Nadaljujte z delom

Nadaljujte z delom
Nadaljujte z delom

Moj prispevek je bil "Nikomur ne povej"

Še vedno delam na svojem sistemu AI in verjetno verjetno nikoli ne bo "končan". Ko bom dodal več funkcij, bom napisal več člankov.

Morda vas bo nekaj mojih idej navdihnilo za izdelavo AI, ki je boljša od moje

Priporočena: