Indholdsfortegnelse:

Stemmeaktiveret assistent - MAX: 10 trin
Stemmeaktiveret assistent - MAX: 10 trin

Video: Stemmeaktiveret assistent - MAX: 10 trin

Video: Stemmeaktiveret assistent - MAX: 10 trin
Video: 10 самых роскошных КРУИЗНЫХ КОРАБЛЕЙ вашей мечты 2024, Juli
Anonim
Stemmeaktiveret assistent - MAX
Stemmeaktiveret assistent - MAX

Hej i denne instruktive jeg vil tale om, hvordan man laver en chat-bot MAX (kaldte mig selv !!!)

Med en vis implementering kan du gøre denne chatbot stemmestyret eller med brug af forskellige software kan du gøre det som en stemmeassistent. Jeg her vil ikke tale om det, da alle virkelig virkelig kan foretage denne implementering let.

Så støtt mig alle …….

Min første instruerbare !!!!!!!

Føler mig nervøs for, hvad der skal ske …………….

Trin 1: Kendskab til konkurrencen

At vide om konkurrencen
At vide om konkurrencen
At vide om konkurrencen
At vide om konkurrencen

Hej ingeniører og designere ……..

Selv er jeg en datalogistudent, der elsker at spille spil og altid inspireret til computere. Jeg taler kort, jeg elsker at vide, hvordan alle disse ting i nutiden fungerer. Så derfor blev jeg ved med at kigge og google (jeg brugte faktisk også Yahoo !!! !!!) for at søge og lære tingene.

Så en dag kom jeg før skærmen af Instructables. Det morede mig virkelig gennem forskellige projekter med en række ideer om forskellige aspekter. Så fra den dag har jeg fulgt med på det. Konkurrencesiden morede mig virkelig både bekymret over præmierne og de projekter, der er blevet indsendt af forskellige mennesker rundt omkring i verden.

STEM AKTIVERET UDFORDRING er min første platform med hensyn til at skrive en instruerbar.

Præmier morede mig meget (Ja !!! For meget ……..).

Jeg ønsker også at dele min viden inden for computere og dens teknologi til andre om, hvordan forskellige ting rent faktisk fungerer.

I denne Instructable viser jeg dig, hvordan du opbygger din egen stemmeaktiverede assistent.

Da det er min første instruerbare, kan der være så mange fejl (selvom jeg tror, at alle disse er rettet), så tilgiv det.

SÅ…

Lad os starte rejsen ………………

Trin 2: Hvor vidste jeg om tingene?

Hvor vidste jeg om tingene?
Hvor vidste jeg om tingene?
Hvor vidste jeg om tingene?
Hvor vidste jeg om tingene?
Hvor vidste jeg om tingene?
Hvor vidste jeg om tingene?

Dette vil være et stort spørgsmål, jeg tror, at de fleste af jeres sind kan have været igennem ………

Jeg har en stor passion for kunstig intelligens [AI] fra min skolegang, fra det har jeg ledt meget efter ressourcer til at studere og udvikle en model på egen hånd.

I starten var det meget svært (sand tilstand), da jeg forstod, at det var et meget stort emne, der slet ikke er let at håndtere.

De bøger, der slog op, inkluderer:

  1. Kunstig intelligens en moderne tilgang
  2. Kunstig. Intelligens. I. 21. århundrede. 2. udgave
  3. Deep Learning

Det er meget gode bøger (ja helt sikkert), men det er slet ikke let at forstå de ting, der er skrevet om det. Så holdt jeg det ved siden af og søgte efter de ressourcer, der giver en kort idé om, hvad det repræsenterer virkelig og måder at komme videre til det.

Så fandt jeg en interesse i det. Gennem ferien efter skolegang begyndte jeg at lære mere om det.

På det tidspunkt lærte jeg også forskellige programmeringssprog (C ++, C, Python, Java …), hvilket også var meget interessant.

Ved at læse mere om emnet forstod jeg en vigtig ting ………………..

Programmeringssprogene ER DET GRUNDLÆGGENDE FOR HVER MASKINLÆRINGSPROCES

Machine Learning er processen med anvendelse af AI

Med en stor forståelse for programmeringssprog og forskellige ting, der kan gøres afhængigt af programmøren for at få en computer til at gøre noget for os.

Så jeg besluttede mig for at skabe et godt grundlag for de sprog, der fik mig til at forstå begreberne i bogen, som jeg allerede har nævnt

Det kan du også ……

Der er så mange websteder til stede på internettet til frit at lære programmeringssprog

Så du kan surfe på internettet for at forstå mere om det, hvis du ønsker det ………

Trin 3: Lad os starte

Mig, inden jeg begyndte at skrive Instructable, tænkte jeg på at skrive noget af den slags, der skulle forstås ved:

  1. Mennesker, der har en erfaring med kodning
  2. Mennesker uden kodningsbaggrund

Så jeg tror, jeg har gjort det uden fejl (forhåbentlig).

Så jeg har besluttet at bygge en chat -bot, der kan tale med brugeren og kan reagere i henhold til vores snak.

Programmet (sæt instruktioner) kan ikke tænke alene. Det har en database (et sted, hvor data er gemt) med fakta og regler, som søges på tidspunktet for at tale for at give det bedst mulige svar, der giver i forbindelse med brugeren.

Det fungerer ved at matche processen afhængigt af tingene, der er indtastet, kun i sjældne tilfælde matches en hel sætning til en komplet sætning.

Trin 4: Hvordan fungerer det egentlig?

Trin 1:

MAX finder ud af, om brugeren har givet nul -input. Hvis brugeren får input på en sådan måde, tager det faktum fra den statiske database at svare.

Åh undskyld ……

Jeg glemte at sige

Statisk database: Det sted, hvor indbyggede svar er gemt. Svar som:

1. Når MAX ikke forstår, hvad brugeren taler om.

2. Når brugeren gentager sig selv.

3. Til hilsenerklæringer.

4. Når brugeren ikke skriver noget og bare bliver ved med at trykke på Enter.

Nøgleord: ord med særlig betydning.

Trin 2:

Der er nogle indbyggede svar, som MAX let og let kan genkende. Den finder tilstedeværelsen af en sådan sætning efter at have identificeret brugerens input og husker det tilhørende søgeord.

Trin 3:

Hvis der ikke findes en indbygget sætning, selv efter fragmentering af den givne sætning, søger MAX efter det specifikke søgeord for at definere konteksten. Hvis der ikke findes nogen kontekst, er det næste mål at få brugeren til at tale mere om emnet mere bevidst på en bestemt måde.

Trin 4:

Fra den statiske database, som vi allerede har talt om, vil den afhente svaret, der afhænger af, hvad brugeren har talt om.

Trin 5:

I, der er behov for at ændre ordene, det vil gøre det selv (f.eks. Konvertering af MY til DIT osv.).

Trin 5: Lad os kode …………

Jeg bruger Turbo C IDE 3.0, da dette er IDE [Integreret udviklingsmiljø]

Før kodningen, lad os se strukturen af en eksempeldatafil.

MAX genkender visse søgeord.

Hvis disse søgeord findes i input fra brugeren, vælges et tilsvarende svar fra datafilen og vælges og vises på skærmen.

Et søgeord adskilles i datafilen fra svarene med @ KWD @ token.

Token er en mindste del af alle programmeringsaspekter.

Dette token angiver, at den næste linje er et søgeord og ikke et svar.

@ KWD@ HEJ

HEJ HVORDAN GÅR DET

HEJ SKAT !

JEG HAR DET GODT

HVORDAN VAR DIT JOBB?

HVOR GAMMEL ER DU?

JEG VIL

DET VIL DU GØRE. DET TROR JEG OGSÅ…

VIL DU KUNNE DET?

VIL DU STOLE PÅ MIG?

JA

ER DU SIKKER ?

HVORDAN KAN DU VÆRE SIKKER?

INGEN

DU synes at være meget pessimistisk.

SIG ALDRIG NEJ…

ALDRIG SIG ALDRIG

VÆR ALDRIG UHØF

ALDRIG VÆRE ARROGANT !!!!

SIG ALDRIG, JEG KAN IKKE GØRE DETTE

VÆR ALDRIG OPTIMISTISK

COMPUTER

Jeg VED HVORDAN MAN ARBEJDER PÅ COMPUTER.

DU BRUGER I øjeblikket EN COMPUTER. RET ?

For eksempel 'Hej' fra ovenstående ordbog vil MAX give et af følgende svar:

HEJ, HVORDAN ER DUHELLO KÆRE!

JEG HAR DET GODT

HVORDAN VAR DIT JOBB?

HVOR GAMMEL ER DU?

Trin 6: Klasser

Når denne ting er klar, lad os nu definere de datastrukturer, vi vil bruge.

Vi opretter to klasser:

progstr - Dette bruges til at gemme brugerens inputrelaterede oplysninger.

resp - Dette bruges til at gemme oplysningerne om de forskellige svar

klasse progstr {

offentlig:

char userip [MAX_USER_INPUT];

char søgeord [30];

int nøglefund;

int keyno;

int nullip;

// konstruktør

progstr () {keyno = -1; nullip = 0; nøglefund = 0;

}

} ip;

klasse hhv

{

int tot_resp;

int last_resp;

char svarer [MAX_RESP_NO] [MAX_RESP_LEN];

tegnord [MAX_KWD_LEN];

offentlig:

// konstruktør

resp ()

{

tot_resp = 0;

sidste_resp = -1;

}

int getcount ()

{

return last_resp;

}

ugid addword (char str [MAX_KWD_LEN])

{

strcpy (ord, str);

}

char * getword ()

{

returord;

}

ugid addresp (char str [MAX_RESP_LEN])

{

strcpy (svar [++ last_resp], str);

}

// defineret senere

void display_resp (int num);

void quit_display_resp (int num);

};

Ser man på første klasse, Tegn array userip bruges til at gemme den sætning, som brugeren har givet.

Et andet array -søgeord bruges til at gemme søgeordet, hvis det findes, i dette input. Hvis der findes et søgeord, laver vi int nøglefund til 1 andet, det forbliver 0, da det initialiseres til 0 i konstruktøren.

keyno gemmer det tilsvarende nøglenummer for det tilsvarende søgeord.

nullip angiver, om brugeren har givet noget Null -input, dvs. at han bare trykker på enter uden at gøre noget andet.

Lad os nu komme til anden klasse, hhv.

Det første datamedlem, tot_resp angiver antallet af samlede svar for et givet søgeord.

Svarene lagres faktisk i svar [MAX_RESP_NO] [MAX_RESP_LEN], og det tilsvarende søgeord gemmes i array -ordet.

Konstruktør: Dette bruges til at initialisere det samlede antal svar til 0. Hvorfor last_resp initialiseres til -1 vil være klart, når du ser på funktionen add_resp.

int getcount ():

Denne funktion bruges til at få en optælling af, hvor mange svar der er for et givet søgeord.

ugid addword (char str [MAX_KWD_LEN]):

Dette bruges til at tilføje et søgeord.

char * getword ():

Bruges til at returnere søgeordet for et bestemt objekt i klasse hhv.

void addresp (…):

Dette bruges til at tilføje et svar, der svarer til et givet søgeord.

void display_resp (int):

Dette bruges til at vise svaret til brugeren svarende til et givet indeksnummer for svarene. (faktisk gør det mere end det!).

void quit_display_resp (int):

Forskellen mellem denne funktion og ovenstående funktion er, at den bruges i sidste ende, når brugeren afslutter. Så det returnerer ikke prompten til brugeren.

Trin 7: Funktioner

void initialize_global ()

{

strcpy (wordin [0], "ER");

strcpy (wordout [0], "AM");

strcpy (wordin [1], "AM");

strcpy (wordout [1], "ER");

strcpy (wordin [2], "VAR");

strcpy (wordout [2], "WAS");

strcpy (wordin [3], "WAS");

strcpy (wordout [3], "VAR");

strcpy (wordin [4], "YOU");

strcpy (wordout [4], "ME");

strcpy (wordin [5], "I");

strcpy (wordout [5], "YOU");

strcpy (wordin [6], "DIN");

strcpy (wordout [6], "MY");

strcpy (wordin [7], "MY");

strcpy (wordout [7], "DIN");

strcpy (wordin [8], "I'VE");

strcpy (wordout [8], "YOU'VE");

strcpy (wordin [9], "YOU'VE");

strcpy (wordout [9], "I'VE");

strcpy (wordin [10], "I'M");

strcpy (wordout [10], "DU ER");

strcpy (wordin [11], "DU ER");

strcpy (wordout [11], "I'M");

strcpy (wordin [12], "ME");

strcpy (wordout [12], "DU");

strcpy (wordin [13], "YOU");

strcpy (wordout [13], "ME");

}

Lad os nu skrive en funktion til visning af svarene til brugeren. Den første if-sætning i for-loop bruges til at lave en bevidst tastefejl for at få den til at se mere menneskelig ud;-). Et tegn vælges tilfældigt til tastefejl. Særlige tilfælde som New Line og Backspace behandles separat. (Tænk hvorfor?). Nu introducerer jeg noget nyt. En særlig karakter - *. Char * repræsenterer al den tekst, der findes efter det identificerede søgeord, og før et af følgende tegnsætningstegn.

Overvej f.eks. Brugerinput

AMIT> KAN JEG GÅ TIL INDORE I MORGEN?

MAX> HVAD HVIS DU IKKE GÅR TIL INDORE MORGEN?

Den understregede del er ikke gemt i ordbogen, den er snarere taget fra brugerinput. I filen MAX. Dat gemmer vi disse oplysninger som

KAN JEG

HVAD HVIS DU IKKE GØR *

Star (*) beder programmet om blot at kopiere det, der er skrevet efter søgeordet (her CAN I) i brugerinput, som det er. Jeg håber, at nu er funktionen * som et særligt søgeord klar. Så lad os overveje en mere kompliceret sag.

AMIT> KAN JEG GÅ TIL SHOPPING?

MAX> HVAD HVIS DU IKKE GÅR TIL SHOPPING?

Vi skal også foretage en vis transformation. Når vi tænker på transformation, bliver sætningen opdelt i de følgende 3 sektioner:

  • Tekst før Transposition Word. (her, GÅ TIL HANDLING MED)
  • Transponeret søgeord. (her, DIN, i stedet for MIN)
  • Tekst efter transponering søgeord. (her jeg ?)

Trin 8: Sagerne kan håndteres af ………

Trin 9: Søgning efter et søgeord i brugerens input

MAX_KEY angiver antallet af søgeord i DAT -filen.

Vi søger her blot om søgeordet er til stede i brugerens input.

Trin 10: Konklusion

Det er alt ………

Du har gjort det !!!!!!!

Jeg tror, at alle forstod tingene klart ……

Anbefalede: