INHOUDSOPGAWE:
- Stap 1: Hoe om 'n AI deel 2 te maak
- Stap 2: Ontwerp u stelsel:
- Stap 3: Funksies wat in die programmeertaal ingebou is:
- Stap 4: Kombineer ingeboude funksies om u eie funksies te skep
- Stap 5: Wat doen die modules? "Invoerverwerker"
- Stap 6: “AI -verwerker”
- Stap 7: Die tabel "uitset en tellings"
- Stap 8: “Uitsetverwerker”
- Stap 9: Hou aan werk daaraan
Video: Hoe om 'n A.I. Deel 2: 9 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Dit is deel 2 oor stappe wat ek geneem het om 'n AI op 'n Windows -rekenaar te bou, met behulp van 'n gratis databasis, programmeer -ontwikkelingshulpmiddel en die gratis ingeboude TTS -enjin wat by Windows kom.
Die woord "Windows" behoort aan Microsoft.
Die woord "draak" behoort aan Nuance.
Stap 1: Hoe om 'n AI deel 2 te maak
Kies 'n programmeertaal en kry hulpmiddels
Daar is baie programmeertale. Sommige spesialiseer in A. I. My gunsteling is Visual Basic, so dit is wat ek gebruik het. Ek werk ook met SQL -bedienerdatabasisse, so ek het dit ook gebruik.
U kan hierdie weergawes gratis aflaai van die Microsoft -webwerf. Soek net 'EXPRESS' op die Microsoft -webwerf. [Visual Studio Express en SQL server Express]
Ander tale wat u vir ons wil hê, is: Python, C#, C ++, Java, Prolog, Lisp, IPL
en vele ander. AIML is 'n 'opmaaktaal' wat baie interessant is.
Ek wou 'n beter 'spraakherkenning' -program hê as die wat by Windows kom, so ek het die DRAGON -sagteware gekoop. Ek gebruik die standaard 'Teks-na-spraak'-program wat by Windows kom.
Stap 2: Ontwerp u stelsel:
Verdeel u groot projekte in 'n klomp kleiner projekte. Ek het my programkode in modules verdeel.
Ek het my kode in verskillende modules verdeel sodat 'n spesifieke funksie makliker gevind kan word.
Ek het modules met die naam "Prosesinvoer", "Proses AI", "Prosesuitvoer", "Gebruikerskoppelvlak" en 'n paar ander. Sommige van my funksies moet toeganklik wees vir al die ander kode modules, so ek plaas die funksies in 'n 'gewone' module waar alles gedeel word
Stap 3: Funksies wat in die programmeertaal ingebou is:
Verskillende tale kan verskillende name hiervoor hê, maar alle tale op hoë vlak het soortgelyke funksies.
LCase of ToLower: Skakel 'n string om na alle kleinletters. Ek omskep alles in kleinletters voordat ek 'n databasis-soektog doen-alhoewel die meeste dinge 'hooflettergevoelig' is-net vir ingeval.
Vervang: Vervang 'n string in 'n string in 'n ander string. U kan 'n string vervang deur 'n leë string "" om daarvan ontslae te raak. Ek raak ontslae van punte, vraagtekens, kommas en ander leestekens.
Split: Verdeel 'n string in individuele stukke en plaas dit in 'n array. Hierdie funksie verdeel 'n string op enige karakter, of "Skeidingsteken". Ek verdeel 'n sin oor 'n 'spasie -karakter' '' 'om 'n verskeidenheid woorde te maak. Dit word deur die AI Gurus 'Tokenizing' genoem.
Ek gebruik die individuele woorde om navrae te bou wat gebruik word om in die databasis te soek. (Meer hieroor in my volgende artikel)
Stap 4: Kombineer ingeboude funksies om u eie funksies te skep
Dit is 'n 'visuele basiese' voorbeeld. Gebruik u programmeertaal om so iets te bou.
U moet natuurlik baie kode skryf en baie funksies bou met behulp van die programmeertaal van u keuse.
Stap 5: Wat doen die modules? "Invoerverwerker"
Daar kan honderd verskillende maniere wees om dieselfde vraag aan die AI te stel. Byvoorbeeld; "Hoe laat is dit?", "Het u tyd?" "Weet u hoe laat dit is?", "Kan u my die huidige tyd van die dag vertel?" Aangesien die gebruiker net die tyd vra, omskakel ek enige van hierdie insette na 'n enkele uitset genaamd "Soektyd" met behulp van 'n databasis "opsoek" -tabel.
U kan kode skryf om deur 'n tabel te loop totdat dit 'n pasmaat vind, of as u 'n SQL -databasis gebruik, kan u 'n SQL -navraag skryf, soos …
'Kies Uitvoer uit tabelnaam waar Invoer =' 'wat ook al' '
… En dan stuur ek die uitset, “Soektyd”, na die volgende kode module; "Verwerk AI"
Behalwe vrae, is daar baie maniere om 'Hallo' te sê
Hallo, hallo, wat gaan aan, hallo, hoe gaan dit ?, groete, welkom, groete, groete …
Al hierdie is verminder tot "Groet"
As die AI -verwerker 'Groet' sien, stuur dit 'Groet' na die uitvoerverwerker, wat 'n ewekansige groet uit 'n databasistabel haal en dit hardop uitspreek.
Stap 6: “AI -verwerker”
Proses AI is die grootste kode module. Dit is so groot dat ek dit ook in afdelings verdeel het.
Die invoer word nagegaan om te sien of die gebruiker 'n opdrag spreek of 'n vraag stel. Die AI kan ook in een van die verskillende "modusse" wees, wat beteken dat die "Process AI" -kode van die gebruiker verwag om 'n vraag te beantwoord in plaas van 'n vraag te vra.
As die gebruiker nie 'n opdrag uitgespreek het nie en die AI nie in 'n spesiale 'modus' is nie, bou en voer 'n klomp navrae uit kombinasies van die woorde in die 'woordereeks'. Al die navraagresultate word in 'n tabel gestoor, en elke navraagresultaat kry 'n "telling" oor hoe noukeurig die resultaat pas by wat die gebruiker gespreek het. Die tabel word gesorteer volgens die telling, en die resultaat met die hoogste telling word na die uitset gestuur as dit 'n sekere drempel oorskry. As al die tellings onder die drempel is, reageer die AI moontlik met 'Ek weet nie' of 'Dit bereken nie'
Stap 7: Die tabel "uitset en tellings"
Die KI se weergawe van my insette "Wat het die hoender gedoen?"
Stap 8: “Uitsetverwerker”
Dit doen verskillende 'onverwante' dinge, maar dit het alles te doen met die ontvangs van die teks van die AI -verwerker aan die gebruiker.
Hier is 'n lys.
1. Die teks uit die databasis kan in kleinletters wees en geen leestekens bevat nie.. Subroutines maak 'n hoofletter en plaas 'n punt of 'n vraagteken aan die einde.
2. 'n Ander subprogram sal apostrofe weer in kontraksies plaas, of kontraksies in volle woorde omskakel (dit wil sê: "cant" word vervang deur "can not")
3. Die teks-na-spraak-enjin spreek sommige woorde nie uit soos ek wil nie, dus vervang die 'Output Processor' die woorde met 'n fonetiese spelling. in die "invoerverwerker"
4. As die AI nie 'n geskikte antwoord in die databasis kry nie, kan dit sê "ek weet nie", maar ek wil nie hê dat dit dit oor en oor en oor moet sê nie. Regte mense wissel hul reaksies. Daar is dus 'n tabel met 'Common Output' frases en 'n funksie wat een willekeurig kies (en nooit dieselfde een twee keer in 'n ry sal kies nie.)
5. Die gratis 'teks-na-spraak'-enjin (TTS) -enjin bied 'n programmeerder nie baie opsies vir die manier waarop sinne uitgespreek word nie, maar u het 'n bietjie beheer oor die toonhoogte en die snelheid van foneme. Die term hiervoor is "Prosody". Ek het 'n paar 'prosody' -kodes in die teks in my databasis gevoeg, en as die' Output Processor 'dit sien, pas dit die toonhoogte en spoed in die TTS -enjin aan soos elke woord gespreek word.
6. Soms is die TTS net moeilik om te verstaan, dus behalwe om hardop woorde te sê, vertoon ek dit ook in groot letters op my rekenaarskerm. Hierdie deel van die 'Gebruikerskoppelvlak' is 'n rooster wat die laaste 6 reëls van 'n gesprek (gebruikersinvoer en AI -uitset) wys en na bo rol soos nuwe reëls bygevoeg word.
Stap 9: Hou aan werk daaraan
My insette was "Moenie vir iemand vertel nie"
Ek werk nog steeds aan my AI -stelsel, en dit sal waarskynlik nooit werklik gedoen word nie. Namate ek meer funksies byvoeg, sal ek meer artikels skryf.
Miskien sal sommige van my idees u inspireer om 'n AI te bou wat beter is as myne
Aanbeveel:
Hoe om dit te doen-E-INK E-PAPIER-WEERGAVE-MODULE-Deel 2 - Invoer Pas prent aan: 4 stappe
Hoe om dit te doen-E-INK E-PAPIER-WEERGAVE-MODULE-Deel 2 | Invoer Pas prent aan: In hierdie tutoriaal vir Deel 2 van Hoe-E-INK E-PAPER DISPLAY MODULE | Import Customize Image, ek gaan met u deel hoe u die prentjie waarvan u hou, kan invoer en dit op die E-Ink Display Module kan vertoon. Dit is baie eenvoudig met die hulp van 'n paar sekondes
Hoe om 'n A.I. Deel 4: 3 stappe
Hoe om 'n A.I. Deel 4: Die ander dag het ek met my AI gepraat, en ek het gesê: 'Ek gaan na die ete, ons eet 'n STEAK'. Die sagteware vir spraakherkenning (SR) interpreteer dit egter as '… ons eet STAKE 'Ek het 'n soortgelyke (maar verskillende) probleemoor raakgeloop
Hoe om 'n A.I. Deel 1: 5 stappe
Hoe om 'n A.I. Deel 1: Begin met 'n rekenaar met spraakherkenning en ook 'n teks-na-spraak-omskakelaar. U moet rekenaarprogramme kan skryf wat toegang tot die spraakherkenning en die teks-na-spraak-omskakelaar het. en
Hoe kan u u kamer outomatiseer met Arduino? Deel 1: 5 stappe
Hoe kan u u kamer outomatiseer met Arduino? Deel 1: Ek wou altyd my kamer op afstand beheer, so ek het besluit om 'n stelsel te skep waarmee ek dit kon doen. As u wil leer hoe? dan nooi ek u uit om die stappe hieronder te volg
Hoe om 'n PCB tuis te maak, deel 1: 4 stappe
Hoe om PCB by die huis te maak Deel 1: Tans kan ons maklik 'n hoë kwaliteit drukbaan skep, nie eers 'n professionele kwaliteit nie, maar 'n goeie kwaliteit vir stokperdjieprojekte. tuis sonder spesiale materiaal. Wat is PCB? 'N Printplaat (PCB) ondersteun meganies en elektries