Indholdsfortegnelse:
- Trin 1: Sådan laver du en AI del 2
- Trin 2: Design dit system:
- Trin 3: Funktioner, der er indbygget i programmeringssproget:
- Trin 4: Kombiner indbyggede funktioner for at oprette dine egne funktioner
- Trin 5: Hvad gør modulerne? "Inputprocessor"
- Trin 6: "AI -processor"
- Trin 7: "Output og Scores" -tabellen
- Trin 8: "Outputprocessor"
- Trin 9: Bliv ved med at arbejde på det
Video: Sådan laver du en A.I. Del 2: 9 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Dette er del 2 om trin, jeg tog for at bygge en AI på en Windows -computer, ved hjælp af en gratis database, programmeringsudviklingsværktøj og den gratis indbyggede TTS -motor, der følger med Windows.
Ordet "Windows" tilhører Microsoft.
Ordet "Dragon" tilhører Nuance.
Trin 1: Sådan laver du en AI del 2
Vælg et programmeringssprog og få nogle værktøjer
Der er mange programmeringssprog. Nogle er specialiseret til A. I. Min favorit er Visual Basic, så det er det, jeg brugte. Jeg arbejder også med SQL -serverdatabaser, så jeg brugte det også.
Du kan downloade gratis versioner af disse fra Microsofts websted. Bare søg efter "EXPRESS" på Microsofts websted. [Visual Studio Express og SQL server Express]
Andre sprog, du måske vil have til os, er: Python, C#, C ++, Java, Prolog, Lisp, IPL
og mange andre. AIML er et "Markup Language", der er meget interessant.
Jeg ville have et bedre "talegenkendelse" -program end det, der følger med Windows, så jeg købte DRAGON -softwaren. Jeg bruger standardprogrammet "Tekst til tale", der fulgte med Windows.
Trin 2: Design dit system:
Opdel dine store projekter i en flok mindre projekter. Jeg opdelte min programkode i moduler.
Jeg opdelte min kode i forskellige moduler, så en bestemt funktion er lettere at finde.
Jeg har moduler med navnet "Process Input", "Process AI", "Process Output", "User Interface" og et par andre. Nogle af mine funktioner skal være tilgængelige for alle de andre kodemoduler, så jeg placerer disse funktioner i et "fælles" modul, hvor alt deles
Trin 3: Funktioner, der er indbygget i programmeringssproget:
Forskellige sprog kan have forskellige navne til disse, men alle sprog på højt niveau har lignende funktioner.
LCase eller ToLower: Konverterer en streng til alle små bogstaver. Jeg konverterer alt til små bogstaver, før jeg foretager en databasesøgning-selvom de fleste ting er "store og små ufølsomme"-bare i tilfælde.
Erstat: Udskift en streng inde i en streng i en anden streng. Du kan erstatte en streng med en tom streng “” for at slippe af med den. Jeg slipper for perioder, spørgsmålstegn, kommaer og andre tegnsætningstegn.
Split: Opdeler en streng i individuelle stykker og sætter dem i en matrix. Denne funktion vil opdele en streng på et hvilket som helst tegn, eller “Afgrænser”. Jeg delte en sætning på et "mellemrumstegn" "" for at lave en række ord. Dette kaldes "Tokenizing" af AI Gurus.
Jeg bruger de enkelte ord til at bygge forespørgsler, der bruges til at søge i databasen. (Mere om dette i min næste artikel)
Trin 4: Kombiner indbyggede funktioner for at oprette dine egne funktioner
Dette er et "visuelt grundlæggende" eksempel. Brug dit programmeringssprog til at bygge sådan noget.
Selvfølgelig skal du skrive en masse kode og opbygge mange funktioner ved hjælp af det valgte programmeringssprog.
Trin 5: Hvad gør modulerne? "Inputprocessor"
Der kan være hundrede forskellige måder at stille AI det samme spørgsmål på. For eksempel; "Hvad er klokken?", "Har du tid?" "Ved du hvad klokken er?", "Kan du fortælle mig det aktuelle tidspunkt på dagen?" Da brugeren bare beder om tiden, konverterer jeg et hvilket som helst af disse input til et enkelt output kaldet "forespørgsels tid" ved hjælp af en database "slå op" -tabel.
Du kan skrive kode for at gå gennem en tabel, indtil den finder et match, eller hvis du bruger en SQL -database, kan du skrive en SQL -forespørgsel, som …
"Vælg Output fra TableName, hvor Input = '" uanset' '
… Og så sender jeg output, “Forespørgselstid”, til det næste kodemodul; "Process AI"
Udover spørgsmål er der mange måder at sige “Hej”
Hej, Hej, hvad sker der, hej, hola, hvordan har du det ?, hilsener, velkommen, hilsner, hej ….
Alle disse er reduceret til "Hilsen"
Når AI -processoren ser “Hilsen” sender den “Hilsen” til outputprocessoren, som vælger en tilfældig hilsen fra en databasetabel og taler den højt.
Trin 6: "AI -processor"
Process AI er det største kodemodul. Det er så stort, at jeg også har delt det i sektioner.
Inputtet kontrolleres for at se, om brugeren talte en kommando eller stillede et spørgsmål. AI kan også være i en hvilken som helst af flere "tilstande", hvilket betyder, at "Process AI" -koden forventer, at brugeren SVARER et spørgsmål, i stedet for at SPØRGE et spørgsmål.
Hvis brugeren ikke talte en kommando, og AI ikke er i en særlig "tilstand", bygger og udfører den en masse forespørgsler ud af kombinationer af ordene i "ordmatrix". Alle forespørgselsresultaterne gemmes i en tabel, og hvert forespørgselsresultat får en "score" om, hvor tæt resultatet svarer til det, brugeren havde talt. Tabellen sorteres efter scoren, og resultatet med den højeste score sendes til output, hvis den overskrider en bestemt tærskel. Hvis alle scoringer er under tærsklen, svarer AI muligvis med "Jeg ved det ikke" eller "Det beregner ikke"
Trin 7: "Output og Scores" -tabellen
AI'ens output fra mit input "Hvad lavede kyllingen?"
Trin 8: "Outputprocessor"
Dette gør flere "ikke -relaterede" ting, men de har alle at gøre med at få teksten fra AI -processoren til brugeren.
Her er en liste.
1. Tekst fra databasen kan være i små bogstaver og ikke have nogen tegnsætning.. Subroutiner vil markere det første bogstav og sætte en punktum eller et spørgsmålstegn i slutningen.
2. En anden underprogram vil sætte apostrofer tilbage i sammentrækninger eller konvertere sammentrækninger tilbage til fulde ord (dvs. "cant" erstattes med "kan ikke")
3. Tekst-til-tale-motoren udtaler ikke nogle ord, som jeg kan lide, så "Output Processor" erstatter disse ord med en fonetisk stavemåde. Jeg har database "slå op" -tabeller for at holde disse, svarende til den ene i "inputprocessoren"
4. Hvis AI ikke finder et passende svar i databasen, kan det sige "jeg ved det ikke", men jeg vil ikke have det til at sige dette igen og igen og igen. Rigtige mennesker varierer deres svar. Så der er en tabel med "Common Output" -fraser og en funktion, der vælger en tilfældigt (og vil aldrig vælge den samme to gange i træk.)
5. Den gratis "tekst-til-tale" -motor (TTS) giver ikke en programmør mange muligheder for den måde, sætninger tales på, men du har lidt kontrol over tonehøjden og hastigheden af fonemer. Betegnelsen for dette er "Prosody". Jeg tilføjede nogle "prosody" -koder til teksten i min database, og når "Output Processor" ser disse, justerer den tonehøjde og hastighed i TTS -motoren, efterhånden som hvert ord bliver talt.
6. Nogle gange er TTS bare svært at forstå, så udover at tale ord højt, viser jeg dem også med store bogstaver på min computerskærm. Denne del af "Brugergrænsefladen" er et gitter, der viser de sidste 6 linjer i en samtale (Brugerindgang og AI -output) og ruller op, når nye linjer tilføjes.
Trin 9: Bliv ved med at arbejde på det
Mit input var "Fortæl det ikke til nogen"
Jeg arbejder stadig på mit AI -system, og det vil sandsynligvis aldrig rigtig blive "gjort". Når jeg tilføjer flere funktioner, vil jeg skrive flere artikler.
Måske vil nogle af mine ideer inspirere dig til at bygge en AI, der er bedre end min
Anbefalede:
Sådan laver du en trådløs dåse-telefon! (Arduino Walkie Talkie): 7 trin (med billeder)
Sådan laver du en trådløs dåse-telefon! (Arduino Walkie Talkie): Lige forleden var jeg midt i et meget vigtigt telefonopkald, da min banantelefon holdt op med at fungere! Jeg var så frustreret. Det er sidste gang, jeg savner et opkald på grund af den dumme telefon! (Set i bakspejlet er jeg måske blevet lidt for sur i
Sådan laver du en A.I. Del 4: 3 trin
Sådan laver du en A.I. Del 4: Forleden talte jeg med min AI, og jeg sagde til den: "Jeg går ovenpå til middag, vi spiser STEAK". Imidlertid fortolkede Speech Recognition (SR) softwaren dette som "… vi har STAKE”Jeg stødte på et lignende (men anderledes) problemøre
Sådan laver du en A.I. Del 1: 5 trin
Sådan laver du en A.I. Del 1: Start med en computer, der har talegenkendelse og også en tekst-til-tale-konverter. Du skal være i stand til at skrive computerprogrammer, der har adgang til talegenkendelse og tekst-til-tale-konverter. Nogle applikationsudviklingsværktøjer og
Sådan laver du PCB derhjemme Del 1: 4 trin
Sådan laver du printkort derhjemme Del 1: I dag kan vi let oprette et trykt kredsløb af høj kvalitet, ikke engang en professionel kvalitet, men en god kvalitet til hobbyprojekter. derhjemme uden noget særligt materiale. Hvad er printkort? Et printkort (PCB) understøtter mekanisk og elektrisk
Sådan laver du en delt skærmvideo med fire trin: 4 trin (med billeder)
Sådan laver du en delt skærmvideo med fire trin: Vi ser ofte en samme person vise sig i en scene to gange i et tv -afspilning. Og så vidt vi ved, har skuespilleren ikke en tvillingebror. Vi har også set, at to sangvideoer er sat på en skærm for at sammenligne deres sangevner. Dette er kraften i spl