Satura rādītājs:
- 1. darbība. Informācija par konkursu
- 2. solis: Kur es zināju par lietām?
- 3. darbība: sāksim
- 4. darbība. Kā tas faktiski darbojas?
- 5. darbība. Ļaujiet mums kodēt …………
- 6. solis: nodarbības
- 7. solis: funkcijas
- 8. solis: lietas var risināt ………
- 9. darbība. Atslēgvārda meklēšana lietotāja ievadē
- 10. solis: Secinājums
Video: Balss aktivizēts palīgs - MAX: 10 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
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
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?
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:
- Mākslīgais intelekts - mūsdienīga pieeja
- Mākslīgais intelekts 21. gadsimtā. 2. izdevums
- 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:
- Cilvēki, kuriem ir pieredze kodēšanā
- 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?
JĀ
VAI TU ESI PĀRLIECINĀTS ?
KĀ JŪS VARAT būt tik pārliecināts?
NĒ
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:
Balss palīgs ar Arduino: 3 soļi
Balss palīgs ar Arduino: Ciao a tutti! Con questo progetto and affronta to tema theme dell'intelligenza artificiale. Vai ir iespējams realizēt un asistente vocale ar Arduino? La risposta è si! Ma scopriremo che da solo non può gestire tutto il compito. Con assistente vocale infatti
Personīgais angļu treneris - AI balss palīgs: 15 soļi
Personīgais angļu valodas treneris - AI balss palīgs: Šis projekts palīdzēs studentiem, kuri gatavojas jebkuram valodas eksāmenam, kur viņus var apmācīt, mijiedarbojoties ar Snips AI
Balss aktivizēts BT: 3 soļi (ar attēliem)
Balss aktivizēts BT: Balss kontrolēta mājas automatizācija, izmantojot Arduino: Šajā projektā es izmantoju balss funkciju, lai kontrolētu mājas ierīces. Šis projekts ir daļa no manas mājas automatizācijas sērijas. Šo projektu ir ļoti viegli izmantot reālajā dzīvē. Jebkura vecuma cilvēki var kontrolēt
Balss aktivizēts releja slēdzis (Arduino): 6 soļi (ar attēliem)
Balss aktivizēts releja slēdzis (Arduino): Sveiki visiem! Šajā projektā es jums parādīšu, kā īstenot balss komandas jūsu Arduino projektiem. Izmantojot balss komandas, es parādīšu, kā kontrolēt releja slēdža moduli
Balss aktivizēts RoBoT: 5 soļi
Balss aktivizēts RoBoT: Balss kontrolēts robots, izmantojot Arduino: Sveiki, es ceru, ka jums viss ir kārtībā un jums iet labi. Šodien mēs sāksim projektus, kas saistīti ar robotiku, izmantojot Arduino. Šodien mēs runāsim par balss kontrolētu robotu, izmantojot Arduino un android ap