Talaan ng mga Nilalaman:

Voice Activated Assistant - MAX: 10 Hakbang
Voice Activated Assistant - MAX: 10 Hakbang

Video: Voice Activated Assistant - MAX: 10 Hakbang

Video: Voice Activated Assistant - MAX: 10 Hakbang
Video: How to Enable Voice Assistant on Oculus Quest 2 2024, Hulyo
Anonim
Voice Activated Assistant - MAX
Voice Activated Assistant - MAX

Hey sa Instructable na ito ay pag-uusapan ko tungkol sa kung paano gumawa ng chat-bot MAX (pinangalanan ang aking sarili !!!)

Sa ilang pagpapatupad maaari mong kontrolin ang chatbot na boses na ito o sa paggamit ng iba't ibang software maaari mo itong gawin bilang isang katulong sa boses. Hindi ko ito pag-uusapan tungkol dito dahil ang bawat isa ay maaaring tunay na makagawa ng pagpapatupad na ito nang madali.

Kaya't lahat ng tao mangyaring suportahan ako …….

Ang aking unang Makatuturo !!!!!!!

Nararamdamang Kinakabahan sa kung ano ang mangyayari …………….

Hakbang 1: Pag-alam Tungkol sa Paligsahan

Pag-alam Tungkol sa Paligsahan
Pag-alam Tungkol sa Paligsahan
Pag-alam Tungkol sa Paligsahan
Pag-alam Tungkol sa Paligsahan

Kumusta mga inhinyero at taga-disenyo ……..

Ako mismo ay isang mag-aaral ng Agham sa Computer na gustong maglaro at palaging inspirasyon sa mga computer. Pakikipag-usap nang maikling gusto kong malaman kung paano gumagana ang lahat ng mga bagay na ito. Kaya't bilang isang dahilan na patuloy akong tumingin, googling (infact ginamit ko rin ang Yahoo !!! !!!) para sa paghahanap at pag-aaral ng mga bagay.

Kaya't isang araw ay dumating ako bago ang screen ng Mga Instructable. Talagang nilibang ako sa pamamagitan ng iba`t ibang mga proyekto na may iba't ibang mga ideya sa iba't ibang mga aspeto. Pagkatapos mula sa araw na iyon ay patuloy akong sumusunod. Ang pahina ng paligsahan ay talagang naaliw sa akin na parehong nag-aalala sa mga premyo at mga proyekto na naisumite ng iba't ibang mga tao sa paligid ng mundo

Ang VOICE ACTIVATED CHALLENGE ay ang aking unang plataporma tungkol sa pagsulat ng isang Maituturo.

Ang mga premyo ay nalibang sa akin ng marami (Yeah !!! Sobra ……..).

Gayundin nais kong ibahagi ang aking kaalaman sa larangan ng Computers at ito ay teknolohiya sa iba tungkol sa kung paano gumagana ang iba't ibang mga bagay.

Sa Instructable na ito ipinapakita ko sa iyo kung paano Bumuo ng iyong sariling katulong na pinapagana ng boses.

Dahil ito ang aking unang Makatuturo maaaring mayroong maraming mga pagkakamali (kahit na sa tingin ko lahat ng mga ito ay naayos na), kaya't patawarin iyon.

KAYA….

Simulan natin ang paglalakbay ………………

Hakbang 2: Saan Ko Nalaman ang Tungkol sa Mga Bagay?

Saan Ko Nalaman ang Tungkol sa Mga Bagay?
Saan Ko Nalaman ang Tungkol sa Mga Bagay?
Saan Ko Nalaman ang Tungkol sa Mga Bagay?
Saan Ko Nalaman ang Tungkol sa Mga Bagay?
Saan Ko Nalaman ang Tungkol sa Mga Bagay?
Saan Ko Nalaman ang Tungkol sa Mga Bagay?

Ito ay magiging isang pangunahing tanong sa palagay ko ang karamihan sa iyong mga isip ay maaaring napagdaanan ………

Mayroon akong labis na pagkahilig para sa Artipisyal na Intelihensiya [AI] mula sa aking pag-aaral, mula doon ay naghanap ako ng maraming pagtingin sa mga mapagkukunan upang mag-aral at bumuo ng isang modelo sa aking sarili.

Sa una ito ay napakahirap (totoong kalagayan) dahil naintindihan ko na ito ay isang napakalawak na paksa na hindi talaga madali hawakan.

Ang mga librong tiningnan ay may kasamang:

  1. Artipisyal na Katalinuhan Isang Modernong Diskarte
  2. Artipisyal. Intelligence.in.the.21st. Century.2nd. Edisyon
  3. Malalim na Pag-aaral

Napakaganda ng mga libro (oo tiyak) ngunit hindi madali upang maunawaan ang mga bagay na nakasulat doon. Pagkatapos ay itinabi ko ito sa isang tabi at nagpatuloy upang maghanap para sa mga mapagkukunan na nagbibigay ng isang maikling ideya tungkol sa kung ano ito ay talagang kumakatawan at mga paraan upang makarating dito.

Pagkatapos ay nahanap ko ang isang interes doon. Sa pamamagitan ng bakasyon pagkatapos ng pag-aaral nagsimula akong malaman tungkol dito nang mas malalim.

Sa oras na iyon natutunan ko din ang iba't ibang mga wika ng pagprograma (C ++, C, Python, Java….), Na masyadong nakakainteres.

Sa pagbabasa nang higit pa sa paksang naiintindihan ko ang isang Mahalagang Bagay ………………..

Ang mga wika sa pagprograma AY ANG BATAYAN PARA SA BAWAT MOSINA PROSESO NG Pagkatuto

Ang Machine Learning ay ang proseso ng aplikasyon ng AI

Na may isang mahusay na pag-unawa sa mga wika ng programa at iba't ibang mga bagay na maaaring magawa depende sa programmer na gumawa ng isang computer upang gumawa ng anumang bagay para sa amin.

Kaya't nagpasya akong lumikha ng isang mahusay na batayan sa mga wika na nagpapaunawa sa akin ng mga konseptong ibinigay sa aklat na nabanggit ko na

Maaari mo ring gawin iyon …….

Napakaraming mga website na naroroon sa web upang malayang magturo sa mga wika ng programa

Kaya maaari kang mag-surf sa internet upang maunawaan ang tungkol dito kung nais mo ………

Hakbang 3: Magsimula Tayo

Ako bago simulan ang tungkol sa pagsusulat ng Maituturo na naisip kong magsulat ng isang bagay na maunawaan ng:

  1. Ang mga taong may karanasan sa pag-coding
  2. Mga taong walang background sa pag-coding

Kaya sa palagay ko nagawa ko na ang bagay nang walang anumang pagkakamali (sana).

Kaya't nagpasya akong bumuo ng isang chat bot na maaaring makipag-usap sa gumagamit at maaaring tumugon alinsunod sa aming usapan.

Ang programa (hanay ng mga tagubilin) ay hindi maaaring mag-isip nang mag-isa. Mayroon itong isang database (isang lugar kung saan naimbak ang data) ng mga katotohanan at panuntunan, na hinanap sa oras ng pakikipag-usap upang mabigyan ang pinakamahusay na posibleng tugon na ginagawa kaugnay sa gumagamit.

Gumagana ito sa pamamagitan ng pagtutugma ng proseso depende sa mga bagay na ipinasok, sa mga bihirang kaso lamang ang isang buong pangungusap ay naitugma sa isang kumpletong pangungusap.

Hakbang 4: Paano Ito Totoong Gumagana?

Hakbang 1:

Nalaman ni MAX kung ang gumagamit ay nagbigay ng anumang null input. Kung ang gumagamit kapag binigyan ng pag-input sa isang paraan, kinakailangan ng katotohanan mula sa static na database upang tumugon.

Pasensya na …….

Nakalimutan kong Sabihin,

Static Database: Ang lugar kung saan naka-imbak ang mga built-in na tugon. Mga tugon tulad ng:

1. Kapag hindi maintindihan ng MAX ang tungkol sa kung ano ang pinag-uusapan ng gumagamit.

2. Kapag inuulit ng gumagamit ang kanyang sarili.

3. Para sa mga pahayag sa pagbati.

4. Kapag ang gumagamit ay hindi nagta-type ng anuman at patuloy lamang sa pagpindot sa Enter.

Keyword: mga salitang may espesyal na kahulugan.

Hakbang 2:

Mayroong ilang mga nakapaloob na tugon na madaling makilala ng MAX nang madali at madali. Mahahanap nito ang pagkakaroon ng anumang naturang pangungusap pagkatapos makilala ang input ng mga gumagamit at naaalala ang nauugnay na keyword.

Hakbang 3:

Kung walang nahanap na nakapaloob na pangungusap kahit na matapos ang pagkakawatak-watak ng ibinigay na pangungusap, pagkatapos ay naghahanap ang MAX ng tukoy na keyword upang tukuyin ang konteksto. Kung walang nahanap na konteksto pagkatapos ay susunod na layunin na gawing mas pinag-uusapan ng gumagamit ang paksa sa isang tukoy na pamamaraan.

Hakbang 4:

Mula sa Static Database na napag-usapan na namin, kukunin nito ang tugon na nakasalalay sa kung ano ang pinag-usapan ng gumagamit.

Hakbang 5:

Mayroon akong anumang pangangailangan ng pagbabago ng mga salitang gagawin nito mismo (tulad ng Conversion of MY sa IYONG atbp ….)

Hakbang 5: Let Us Code …………

Gumagamit ako ng Turbo C IDE 3.0 dahil ito ang IDE [Integrated Developmental Environment]

Bago ang pag-coding, tingnan natin ang istraktura ng isang sample na File File.

Kinikilala ng MAX ang ilang mga keyword.

Kung ang mga keyword na ito ay matatagpuan sa input na ibinigay ng gumagamit, pagkatapos ang isang kaukulang tugon ay napili mula sa file ng data at napili at ipinapakita sa screen.

Ang isang keyword ay pinaghiwalay sa file ng data mula sa mga tugon ng @ KWD @ token.

Ang token ay isang pinakamaliit na bahagi ng bawat aspeto ng programa.

Ang token na ito ay nagpapahiwatig ng susunod na linya ay isang keyword at hindi isang tugon.

@ KWD @ HELLO

HI, kumusta ka

HELLO MAHAL!

AYOS LANG AKO

PAANO ANG TRABAHO MO?

ILANG TAON KA NA?

@ KWD @

GAGAWIN KO

GAGAWIN MO Ganon. NANINIWALA AKO NGAYON…

MAAARI KANG GAWIN?

MAGtiwala ka ba sa akin?

@ KWD @

Oo

SIGURADO KA BA ?

PAANO KAYO MAGIGING SIGURADO?

@ KWD @

HINDI

TINGING NAPAKA PessIMISTIC KA.

HUWAG HIHINDI…

HINDI NA SABIHIN HINDI

HINDI MAGING Bastos

HINDI MAGING ARROGANT !!!!

NEVER SAY SABI HINDI KO KAYA ITO

HINDI MAGING OPTIMISTIC

@ KWD @

KOMPUTER

ALAM KO PAANO MAG TRABAHO SA KOMPUTER.

KUMAGAMIT KA NGAYON SA KASAYSAYAN. TAMA?

Halimbawa, 'Kamusta', mula sa diksyunaryong nasa itaas, bibigyan ng MAX ang isa sa mga sumusunod na tugon:

HI, PAANO KA MAHAL SA MAHAL!

AYOS LANG AKO

PAANO ANG TRABAHO MO?

ILANG TAON KA NA?

Hakbang 6: Mga Klase

Kapag malinaw na ang bagay na ito, tukuyin natin ngayon ang Mga Structure ng Data na gagamitin namin.

Lumilikha kami ng dalawang klase:

progstr - Ginagamit ito upang maiimbak ang impormasyong nauugnay sa pag-input ng gumagamit.

resp - Ginagamit ito upang maiimbak ang impormasyon tungkol sa iba't ibang mga tugon

klase ng progstr {

pampubliko:

char userip [MAX_USER_INPUT];

char keyword [30];

int keyfound;

int keyno;

int nullip;

// konstruktor

progstr () {keyno = -1; nullip = 0; keyfound = 0;

}

} ip;

respeto ng klase

{

int tot_resp;

int last_resp;

mga tugon ng char [MAX_RESP_NO] [MAX_RESP_LEN];

salitang char [MAX_KWD_LEN];

pampubliko:

// konstruktor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

ibalik ang huling_resp;

}

walang bisa na addword (char str [MAX_KWD_LEN])

{

strcpy (salita, str);

}

char * getword ()

{

ibalik ang salita;

}

void addresp (char str [MAX_RESP_LEN])

{

strcpy (tumugon sa [++ last_resp], str);

}

// natukoy sa paglaon

walang bisa ang display_resp (int num);

void quit_display_resp (int num);

};

Tumingin sa unang klase, Ginagamit ang character array userip upang maiimbak ang pangungusap na ibinigay ng gumagamit.

Ang isa pang array keyword ay ginagamit upang maiimbak ang keyword, kung mayroon man, na matatagpuan sa input na iyon. Kung ang isang keyword ay natagpuan, gumawa kami ng int keyfound sa 1 iba pa, mananatili itong 0, dahil isinisimulan ito sa 0 sa Consonstror.

Iniimbak ni keyno ang numero ng correspondingkey ng kaukulang keyword.

Ipinapahiwatig ng nullip kung ang gumagamit ay nagbigay ng anumang Null input ibig sabihin, pinipindot lamang niya ang enter nang hindi gumagawa ng anupaman.

Ngayon, puntahan natin ang pangalawang klase, resp.

Ang unang kasapi ng data, ang tot_resp ay nagpapahiwatig ng bilang ng kabuuang mga tugon para sa isang naibigay na keyword.

Ang mga tugon ay aktwal na nakaimbak sa mga tugon [MAX_RESP_NO] [MAX_RESP_LEN] at ang kaukulang keyword ay nakaimbak sa hanay ng salita.

Tagabuo: Ginagamit ito upang mapasimulan ang kabuuang bilang ng mga tugon sa 0. Kung bakit ang last_resp ay gawing -1 ay magiging malinaw kapag tiningnan mo ang pagpapaandar na add_resp.

int getcount ():

Ang pagpapaandar na ito ay ginagamit upang makakuha ng bilang ng kung gaano karaming mga tugon ang naroroon para sa isang naibigay na keyword.

walang bisa na addword (char str [MAX_KWD_LEN]):

Ginagamit ito upang magdagdag ng isang keyword.

char * getword ():

Ginamit upang ibalik ang keyword para sa isang partikular na bagay ng respeto ng klase.

void addresp (…):

Ginagamit ito upang magdagdag ng tugon na naaayon sa isang naibigay na keyword.

walang bisa ang display_resp (int):

Ginagamit ito upang maipakita ang tugon sa gumagamit na naaayon sa isang naibigay na numero ng index para sa mga tugon. (Tunay na higit pa rito ang ginagawa!).

void quit_display_resp (int):

Ang pagkakaiba sa pagitan ng pagpapaandar na ito at sa itaas na pag-andar ay ginagamit ito sa huli kapag ang gumagamit ay humihinto. Kaya, hindi nito ibabalik ang prompt sa gumagamit.

Hakbang 7: Mga Pag-andar

void initialize_global ()

{

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

strcpy (wordout [10], "IKAW");

strcpy (wordin [11], "IKAW");

strcpy (wordout [11], "AKO");

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

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

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

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

}

Sumulat tayo ngayon ng isang pagpapaandar para sa pagpapakita ng mga tugon sa gumagamit. Ang una kung ang pahayag sa para sa loop ay ginagamit upang makagawa ng isang sinadya na error sa pagta-type upang maipakita itong mas katulad ng tao;-). Isang character ang sapalarang napili para sa error sa pag-type. Ang mga espesyal na kaso tulad ng New Line at Backspace ay hiwalay na isinasaalang-alang. (Isipin kung bakit?). Ngayon ay nagpapakilala ako ng bago. Isang espesyal na tauhan - *. Kinakatawan ng Char * ang lahat ng nahanap na teksto MATAPOS ang natukoy na keyword, at bago ang isa sa mga sumusunod na bantas.

Halimbawa, isaalang-alang ang input ng gumagamit

AMIT> MAAARI NA PO BA AKONG PUMUNTA SA INDORE?

MAX> ANO KUNG AYAW KA SA INDORE BUKAS?

Ang naka-salungguhit na bahagi ay hindi nakaimbak sa diksyunaryo, sa halip ay kinuha ito mula sa pag-input ng gumagamit. Sa file MAX. Dat, iniimbak namin ang impormasyong ito bilang

PWEDE BA

ANO KUNG HINDI MO *

Hinihiling ng Star (*) sa programa na kopyahin lamang ang anumang na-type pagkatapos ng keyword (dito MAAARI AKO) sa input ng gumagamit, tulad nito. Inaasahan kong malinaw na ngayon ang pagpapaandar ng * bilang isang espesyal na keyword. Kaya, isaalang-alang natin ang isang mas kumplikadong kaso.

AMIT> MAAARI BA PO AKONG MAGPunta sa SHOPPING?

MAX> ANO KUNG AYAW KA SA SHOPPING?

Kailangan din nating magsagawa ng pagbabago. Kapag naisip namin ang pagbabago, ang pangungusap ay nahahati sa mga sumusunod na 3 seksyon:

  • Text Bago Salita ng Transposisyon. (dito, PUMUNTA SA SHOPPING WITH)
  • Ang Transposed keyword. (narito, IYONG, bilang kapalit ng AKIN)
  • Text Pagkatapos ng Transposition Keyword. (narito, ako?)

Hakbang 8: Ang Mga Kaso ay Maaaring Masiyahan Sa pamamagitan ng ………

Hakbang 9: Paghahanap ng isang Keyword sa Input ng Gumagamit

Ipinapahiwatig ng MAX_KEY ang bilang ng mga keyword sa DAT file.

Hahanap lang namin dito kung naroroon ang keyword sa Input ng User.

Hakbang 10: Konklusyon

Iyon lang ang ………

Nagawa mo na ito !!!!!!!!

Sa palagay ko malinaw na naintindihan ng lahat ang mga bagay ……

Kung ang sinuman ay may pag-aalinlangan tungkol sa anumang bagay na maaari mong huwag mag-atubiling magtanong

Inirerekumendang: