Satura rādītājs:

Balss aktivizēts palīgs - MAX: 10 soļi
Balss aktivizēts palīgs - MAX: 10 soļi

Video: Balss aktivizēts palīgs - MAX: 10 soļi

Video: Balss aktivizēts palīgs - MAX: 10 soļi
Video: Xiaomi Mi Smart Clock - Глобальная версия с Google Assistant. Озвучка событий в Home Assistant 2024, Jūlijs
Anonim
Balss aktivizēts palīgs - MAX
Balss aktivizēts palīgs - MAX

Hei, šajā pamācībā es runāšu par to, kā izveidot tērzēšanas robotu MAX (nosaucu sevi !!!)

Ar zināmu ieviešanu jūs varat padarīt šo tērzēšanas robotu vadāmu ar balsi vai, izmantojot dažādu programmatūru, to var padarīt par balss palīgu. Es šeit nerunāšu par to, jo ikviens patiešām var viegli īstenot šo ieviešanu.

Tāpēc visi, lūdzu, atbalstiet mani ….

Mans pirmais pamācāms !!!!!!!

Nervozitāte par notiekošo …………….

1. darbība. Informācija par konkursu

Zinot par konkursu
Zinot par konkursu
Zinot par konkursu
Zinot par konkursu

Sveiki, inženieri un dizaineri ….

Es pats, datorzinātņu students, mīlu spēlēt spēles un vienmēr iedvesmojos datoros. Īsi runājot, man patīk zināt, kā darbojas visas šīs lietas. Tāpēc es turpināju meklēt, meklēt Google (patiesībā es arī izmantoju Yahoo!) !!!) lietu meklēšanai un apgūšanai.

Tātad kādu dienu es nonācu pie Instructables ekrāna. Tas mani patiešām uzjautrināja dažādos projektos ar dažādām idejām par dažādiem aspektiem. Tad no tās dienas es turpinu sekot līdzi. Konkursa lapa mani patiešām uzjautrināja gan par balvām, gan par projektiem, kurus iesnieguši dažādi cilvēki visā apkārtnē. pasaule.

VOICE ACTIVATED CHALLENGE ir mana pirmā platforma attiecībā uz Instructable rakstīšanu.

Balvas mani ļoti uzjautrināja (jā !!! Pārāk daudz ……..).

Tāpat es vēlos citiem dalīties savās zināšanās datoru un tās tehnoloģiju jomā par to, kā dažādas lietas patiesībā darbojas.

Šajā pamācībā es jums parādīšu, kā izveidot savu balss aktivizēto palīgu.

Tā kā šī ir mana pirmā pamācība, var būt tik daudz kļūdu (lai gan es domāju, ka tās visas ir novērstas), tāpēc piedodiet par to.

TĀDĀ …

Sāksim ceļojumu ………………

2. solis: Kur es zināju par lietām?

Kur es zināju par lietām?
Kur es zināju par lietām?
Kur es zināju par lietām?
Kur es zināju par lietām?
Kur es zināju par lietām?
Kur es zināju par lietām?

Tas būs svarīgs jautājums, manuprāt, lielākajai daļai jūsu prātu var būt gājis cauri ………

Skolas laikā man ir liela aizraušanās ar mākslīgo intelektu [AI], tāpēc esmu daudz meklējis, meklējot resursus, lai mācītos un patstāvīgi izstrādātu modeli.

Sākotnēji tas bija ļoti grūti (patiess stāvoklis), jo es sapratu, ka tā ir ļoti plaša tēma, ar kuru nemaz nav viegli rīkoties.

Uzmeklētās grāmatas ietver:

  1. Mākslīgais intelekts - mūsdienīga pieeja
  2. Mākslīgais intelekts 21. gadsimtā. 2. izdevums
  3. Dziļa mācīšanās

Šīs ir ļoti labas grāmatas (jā, protams), taču nav viegli saprast lietas, kas par to ir uzrakstītas. Tad es to atstāju malā un turpinu meklēt resursus, kas sniedz īsu priekšstatu par to, kas tas patiešām atspoguļo un veidus, kā to panākt.

Tad es atklāju interesi par to. Pēc atvaļinājuma pēc skolas es sāku to dziļāk uzzināt.

Tajā laikā es arī iemācījos dažādas programmēšanas valodas (C ++, C, Python, Java …), kas pārāk interesanti.

Lasot vairāk par šo tēmu, es sapratu vienu svarīgu lietu ………………..

Programmēšanas valodas ir KATRA MAŠĪNAS MĀCĪBU PROCESA PAMATS

Mašīnmācīšanās ir AI pielietošanas process

Ar lielisku izpratni par programmēšanas valodām un dažādām lietām, ko programmētājs var darīt, lai dators kaut ko darītu mūsu vietā.

Tāpēc es nolēmu izveidot labu pamatu valodām, kas man lika saprast manis jau minētos grāmatas jēdzienus

Arī tu to vari izdarīt ……

Tīmeklī ir tik daudz vietņu, kurās var brīvi mācīt programmēšanas valodas

Tātad, ja vēlaties, varat sērfot internetā, lai uzzinātu vairāk par to ……

3. darbība: sāksim

Pirms sākt rakstīt pamācību, es domāju uzrakstīt kaut ko tādu, kas būtu saprotams šādi:

  1. Cilvēki, kuriem ir pieredze kodēšanā
  2. Cilvēki bez kodēšanas fona

Tāpēc es domāju, ka esmu darījis šo lietu bez kļūdām (cerams).

Tāpēc esmu nolēmis izveidot tērzēšanas robotu, kas var runāt ar lietotāju un var atbildēt saskaņā ar mūsu sarunu.

Programma (instrukciju kopums) nevar domāt pati par sevi. Tam ir datu bāze (vieta, kur tiek glabāti dati) ar faktiem un noteikumiem, kas tiek meklēti sarunas laikā, lai sniegtu vislabāko iespējamo atbildi, kas tiek sniegta saistībā ar lietotāju.

Tas darbojas, saskaņojot procesu atkarībā no ievadītajām lietām, tikai retos gadījumos viss teikums tiek saskaņots ar pilnu teikumu.

4. darbība. Kā tas faktiski darbojas?

1. darbība:

MAX noskaidro, vai lietotājs ir ievadījis nulles ievadi. Ja lietotājs ievada šādā veidā, tas atbild no statiskās datu bāzes.

Vai, piedod ……

Es aizmirsu pateikt,

Statiskā datu bāze: vieta, kur tiek saglabātas iebūvētās atbildes. Atbildes, piemēram:

1. Kad MAX nesaprot, par ko lietotājs runā.

2. Kad lietotājs atkārtojas.

3. Apsveikuma paziņojumiem.

4. Kad lietotājs neko neraksta un vienkārši turpina nospiest taustiņu Enter.

Atslēgvārds: vārdi ar īpašu nozīmi.

2. darbība:

Ir dažas iebūvētas atbildes, kuras MAX var viegli un viegli atpazīt. Pēc lietotāju ievades noteikšanas tā konstatē jebkura šāda teikuma klātbūtni un atceras saistīto atslēgvārdu.

3. darbība:

Ja pat pēc dotā teikuma sadrumstalotības netiek atrasts iebūvēts teikums, MAX meklē konkrēto atslēgvārdu, lai definētu kontekstu. Ja konteksts netiek atrasts, nākamais mērķis ir likt lietotājam konkrētāk runāt par šo tēmu.

4. solis:

No statiskās datu bāzes, par kuru mēs jau runājām, tā saņems atbildi, kas ir atkarīga no tā, par ko lietotājs ir runājis.

5. darbība:

Man ir jāmaina vārdi, ko tā darīs pati (piemēram, MANA pārveidošana par SAVU utt.).

5. darbība. Ļaujiet mums kodēt …………

Es izmantoju Turbo C IDE 3.0, jo šī ir IDE [integrēta attīstības vide]

Pirms kodēšanas apskatīsim datu faila parauga struktūru.

MAX atpazīst noteiktus atslēgvārdus.

Ja šie atslēgvārdi tiek atrasti lietotāja ievadītajā ievadē, tad no datu faila tiek izvēlēta atbilstoša atbilde, kas tiek izvēlēta un parādīta ekrānā.

Atslēgvārdu datu failā no atbildēm atdala @ KWD @ marķieris.

Žetons ir mazākā daļa no visiem programmēšanas aspektiem.

Šis marķieris norāda, ka nākamā rinda ir atslēgvārds, nevis atbilde.

@ KWD@ Sveicināti

SVEIKS, KĀ TEV IET

SVEIKA DĀRGĀ !

MAN IR LABI

KĀ JŪSU DARBS?

CIK TEV GADU?

ES BŪŠU

TU TĀ DARĪSI. PAT TICU,…

VAI TU VARĒSI TĀ DARĪT?

VAI TICĒSIETIES MAN?

VAI TU ESI PĀRLIECINĀTS ?

KĀ JŪS VARAT būt tik pārliecināts?

Jūs uzskatāt, ka esat ļoti pesimistisks.

NEKAD NESAKI NĒ…

NEKAD NESAKI NEKAD

NEKAD NEDRĪKST

NEKAD NEDRĪKST !!!!

NEKAD nesaki, ka es to nevaru

NEKAD NEESIET OPTIMISTISKS

DATORS

ES ZINU, KĀ STRĀDĀT DATORĀ.

Šobrīd jūs izmantojat datoru. TAISNĪBA ?

Piemēram, “Labdien” no iepriekš minētās vārdnīcas, MAX sniegs vienu no šīm atbildēm:

ČAU, KĀ JŪS SVEIKI, MĪĻIE!

MAN IR LABI

KĀ JŪSU DARBS?

CIK TEV GADU?

6. solis: nodarbības

Kad šī lieta ir skaidra, tagad definēsim datu struktūras, kuras mēs izmantosim.

Mēs izveidojam divas klases:

progstr - to izmanto, lai saglabātu lietotāja ievadīto informāciju.

resp - to izmanto, lai uzglabātu informāciju par dažādām atbildēm

klases progstr {

publiski:

lietotāja simbols [MAX_USER_INPUT];

char atslēgvārds [30];

int keyfound;

int keyno;

int nullip;

// konstruktors

progstr () {keyno = -1; nullip = 0; atslēgas atrasts = 0;

}

} ip;

klase resp

{

int tot_resp;

int last_resp;

rakstzīmju atbildes [MAX_RESP_NO] [MAX_RESP_LEN];

simbolu vārds [MAX_KWD_LEN];

publiski:

// konstruktors

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

atgriezt last_resp;

}

nederīgs papildvārds (simbols [MAX_KWD_LEN])

{

strcpy (vārds, str);

}

char * getword ()

{

atgriešanās vārds;

}

tukša adrese (char str [MAX_RESP_LEN])

{

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

}

// definēts vēlāk

void display_resp (int numurs);

void quit_display_resp (int numurs);

};

Skatoties uz pirmo klasi, Rakstzīmju masīvs userip tiek izmantots, lai saglabātu lietotāja sniegto teikumu.

Cits masīva atslēgvārds tiek izmantots, lai saglabātu šajā ievadē atrasto atslēgvārdu, ja tāds ir. Ja tiek atrasts atslēgvārds, mēs taustiņu int atrodam 1 citam, tas paliek 0, jo tas tiek inicializēts uz 0 konstruktorā.

keyno saglabā atbilstošā atslēgvārda atbilstošo atslēgas numuru.

nullip norāda, vai lietotājs ir ievadījis nulles ievadi, ti, viņš tikai nospiež enter, nedarot neko citu.

Tagad nonāksim otrajā klasē, resp.

Pirmais datu dalībnieks tot_resp norāda konkrētā atslēgvārda kopējo atbilžu skaitu.

Atbildes faktiski tiek glabātas atbildēs [MAX_RESP_NO] [MAX_RESP_LEN], un atbilstošais atslēgvārds tiek saglabāts masīva vārdā.

Konstruktors: tas tiek izmantots, lai inicializētu kopējo atbilžu skaitu uz 0. Kāpēc pēdējais_resp tiek inicializēts uz -1, būs skaidrs, aplūkojot funkciju add_resp.

int getcount ():

Šo funkciju izmanto, lai saskaitītu, cik atbilžu ir konkrētam atslēgvārdam.

nederīgs papildvārds (char str [MAX_KWD_LEN]):

To izmanto atslēgvārda pievienošanai.

char * getword ():

Izmanto, lai atgrieztu atslēgvārdu konkrētam klases objektam resp.

tukša adrese (…):

To izmanto, lai pievienotu atbildi, kas atbilst dotajam atslēgvārdam.

void display_resp (int):

To izmanto, lai parādītu lietotājam atbildi, kas atbilst norādītajam atbilžu indeksa numuram. (patiesībā tas dara vairāk nekā tas!).

void quit_display_resp (int):

Atšķirība starp šo funkciju un iepriekš minēto funkciju ir tā, ka tā tiek izmantota beigās, kad lietotājs pamet. Tātad, tas neatgriež uzvedni lietotājam.

7. solis: funkcijas

void initialize_global ()

{

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

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

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

strcpy (vārds [1], "IR");

strcpy (wordin [2], "BŪT");

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

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

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

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

strcpy (vārds [4], "ME");

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

strcpy (vārds [5], "JŪS");

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

strcpy (vārds [6], "MANS");

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

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

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

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

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

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

strcpy (wordin [10], "ESMU");

strcpy (wordout [10], "YOU'RE");

strcpy (wordin [11], "YOU'RE");

strcpy (vārds [11], "ESMU");

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

strcpy (vārds [12], "TU");

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

strcpy (vārds [13], "ME");

}

Tagad uzrakstīsim funkciju atbilžu parādīšanai lietotājam. Pirmais if paziņojums cilpā for tiek izmantots, lai pieļautu apzinātu drukas kļūdu, lai tas izskatītos cilvēcīgāks;-). Rakstīšanas kļūdai nejauši tiek izvēlēta viena rakstzīme. Īpaši gadījumi, piemēram, New Line un Backspace, tiek izskatīti atsevišķi. (Padomā, kāpēc?). Tagad es iepazīstinu ar kaut ko jaunu. Īpašs raksturs - *. Char * apzīmē visu tekstu, kas atrasts PĒC identificētā atslēgvārda un pirms vienas no šīm pieturzīmēm.

Piemēram, ņemiet vērā lietotāja ievadīto informāciju

AMIT> VAI RĪT VARU IEKĻŪT?

MAKS.

Pasvītrotā daļa vārdnīcā netiek saglabāta, tā tiek ņemta no lietotāja ievadītās informācijas. Failā MAX. Dat mēs šo informāciju glabājam kā

VAI ES VARU

KAS, JA NEDRĪKST *

Zvaigzne (*) lūdz programmu vienkārši nokopēt visu, kas lietotāja ievadē ir ierakstīts pēc atslēgvārda (šeit CAN I). Es ceru, ka tagad * kā īpaša atslēgvārda funkcija ir skaidra. Tātad, aplūkosim sarežģītāku gadījumu.

AMIT> Vai es varu doties iepirkties?

MAX> KAS, JA NEIET IEPIRKTIES?

Mums ir jāveic arī neliela pārveidošana. Kad mēs domājam par transformāciju, teikums tiek sadalīts šādās 3 sadaļās:

  • Teksts pirms transponēšanas Word. (šeit, IET IEPIRKTIES AR)
  • Transponētais atslēgvārds. (šeit, JŪSU, MANA vietā)
  • Teksts pēc transponēšanas atslēgvārds. (šeit, es?)

8. solis: lietas var risināt ………

9. darbība. Atslēgvārda meklēšana lietotāja ievadē

MAX_KEY norāda atslēgvārdu skaitu DAT failā.

Mēs šeit vienkārši meklējam, vai atslēgvārds ir lietotāja ievadē.

10. solis: Secinājums

Tas ir viss ………

Jūs to izdarījāt !!!!!!!

Es domāju, ka visi skaidri saprata lietas ……

Ieteicams: