विषयसूची:

आवाज सक्रिय सहायक - अधिकतम: 10 कदम
आवाज सक्रिय सहायक - अधिकतम: 10 कदम

वीडियो: आवाज सक्रिय सहायक - अधिकतम: 10 कदम

वीडियो: आवाज सक्रिय सहायक - अधिकतम: 10 कदम
वीडियो: Accessibility Settings Band Kaise Karen | How To Turn Off Voice Assistant TalkBack Double Tap Click 2024, नवंबर
Anonim
आवाज सक्रिय सहायक - MAX
आवाज सक्रिय सहायक - MAX

अरे इस निर्देशयोग्य में मैं बात करने जा रहा हूँ कि कैसे एक चैट-बॉट MAX बनाया जाए (खुद का नाम !!!)

कुछ कार्यान्वयन के साथ आप इस चैटबॉट आवाज को नियंत्रित कर सकते हैं या विभिन्न सॉफ्टवेयर के उपयोग से आप इसे वॉयस असिस्टेंट के रूप में बना सकते हैं। मैं यहां इसके बारे में बात नहीं करने जा रहा हूं क्योंकि हर कोई वास्तव में इस कार्यान्वयन को आसानी से कर सकता है।

तो सभी लोग मेरा समर्थन करें…….

मेरी पहली शिक्षाप्रद !!!!!!!

जो होने वाला है उस पर नर्वस महसूस करना …………….

चरण 1: प्रतियोगिता के बारे में जानना

प्रतियोगिता के बारे में जानना
प्रतियोगिता के बारे में जानना
प्रतियोगिता के बारे में जानना
प्रतियोगिता के बारे में जानना

हाय इंजीनियर्स एंड डिज़ाइनर्स……..

मैं खुद एक कंप्यूटर साइंस का छात्र हूं जो खेल खेलना पसंद करता है और हमेशा कंप्यूटर पर प्रेरित होता है। संक्षेप में बात करते हुए मुझे यह जानना अच्छा लगता है कि ये सभी चीजें वर्तमान में कैसे काम करती हैं। इसलिए एक कारण के रूप में मैं देखता रहा, गुगलिंग (वास्तव में मैं याहू का भी उपयोग करता था !!! !!!) चीजों को खोजने और सीखने के लिए।

इसलिए एक दिन मैं इंस्ट्रक्शंस की स्क्रीन के सामने आया। इसने विभिन्न परियोजनाओं के माध्यम से विभिन्न पहलुओं पर विभिन्न विचारों के साथ वास्तव में मुझे खुश किया। फिर उस दिन से मैं इसके साथ ट्रैक पर रहा। प्रतियोगिता पृष्ठ ने वास्तव में मुझे पुरस्कारों और परियोजनाओं के बारे में चिंतित किया, जो विभिन्न लोगों द्वारा प्रस्तुत किए गए हैं। दुनिया।

वॉयस एक्टिवेटेड चैलेंज एक इंस्ट्रक्शनल लिखने के संबंध में मेरा पहला प्लेटफॉर्म है।

पुरस्कारों ने मेरा बहुत मनोरंजन किया (हाँ !!! बहुत अधिक……..)।

इसके अलावा, मैं कंप्यूटर और इसकी तकनीक के क्षेत्र में अपने ज्ञान को दूसरों के साथ साझा करना चाहता हूं कि वास्तव में विभिन्न चीजें कैसे काम करती हैं।

इस निर्देशयोग्य में मैं आपको दिखाता हूं कि अपनी आवाज सक्रिय सहायक कैसे बनाएं।

चूँकि यह मेरा पहला निर्देश है, इसलिए बहुत सारी गलतियाँ हो सकती हैं (भले ही मुझे लगता है कि ये सभी ठीक हो गए हैं), इसलिए उसके लिए क्षमा करें।

इसलिए…

चलिए यात्रा शुरू करते हैं………………

चरण 2: मुझे चीजों के बारे में कहां पता चला?

मुझे चीजों के बारे में कहां पता चला?
मुझे चीजों के बारे में कहां पता चला?
मुझे चीजों के बारे में कहां पता चला?
मुझे चीजों के बारे में कहां पता चला?
मुझे चीजों के बारे में कहां पता चला?
मुझे चीजों के बारे में कहां पता चला?

यह एक प्रमुख प्रश्न होगा जो मुझे लगता है कि आपके अधिकांश दिमाग से गुजरे होंगे ………

मुझे अपनी स्कूली शिक्षा से आर्टिफिशियल इंटेलिजेंस [एआई] के लिए बहुत जुनून है, इससे मैंने अध्ययन करने और अपने दम पर एक मॉडल विकसित करने के लिए संसाधनों की तलाश में बहुत कुछ खोजा है।

शुरू में यह बहुत कठिन (सच्ची स्थिति) थी क्योंकि मैं समझ गया था कि यह एक बहुत बड़ा विषय है जिसे संभालना बिल्कुल भी आसान नहीं है।

जिन पुस्तकों को देखा गया उनमें शामिल हैं:

  1. कृत्रिम बुद्धिमत्ता एक आधुनिक दृष्टिकोण
  2. आर्टिफिशियल.इंटेलिजेंस.in.the.21st. Sentury.2nd. Edition
  3. ध्यान लगा के पढ़ना या सीखना

ये बहुत अच्छी किताबें हैं (हाँ ज़रूर) लेकिन उस पर लिखी गई बातों को समझना बिल्कुल भी आसान नहीं है। फिर मैंने इसे एक तरफ रख दिया और उन संसाधनों की खोज करने के लिए आगे बढ़ गया जो इस बारे में एक संक्षिप्त विचार देता है। यह वास्तव में प्रतिनिधित्व करता है और इसे प्राप्त करने के तरीके।

तब मुझे उसमें दिलचस्पी दिखाई दी। स्कूली शिक्षा के बाद छुट्टी के दौरान मैंने इसके बारे में और गहराई से सीखना शुरू किया।

उस समय मैंने विभिन्न प्रोग्रामिंग भाषाएँ (C++, C, Python, Java….) भी सीखी थीं, जो बहुत ही रोचक थीं।

विषय पर और पढ़ने पर मुझे एक महत्वपूर्ण बात समझ में आई ………………..

प्रोग्रामिंग भाषाएं हर मशीन सीखने की प्रक्रिया का आधार हैं।

मशीन लर्निंग एआई के आवेदन की प्रक्रिया है।

प्रोग्रामिंग भाषाओं और विभिन्न चीजों पर एक महान समझ के साथ जो प्रोग्रामर द्वारा हमारे लिए कुछ भी करने के लिए कंप्यूटर बनाने के लिए किया जा सकता है।

इसलिए मैंने उन भाषाओं पर एक अच्छा आधार बनाने का फैसला किया, जिससे मुझे किताब में दी गई अवधारणाओं को समझने में मदद मिली, जिसका मैंने पहले ही उल्लेख किया है।

आप भी ऐसा कर सकते हैं……

प्रोग्रामिंग भाषाओं को स्वतंत्र रूप से सिखाने के लिए वेब में बहुत सारी वेबसाइटें मौजूद हैं।

तो आप चाहें तो इसके बारे में और अधिक समझने के लिए इंटरनेट पर सर्फ कर सकते हैं ………

चरण 3: चलिए शुरू करते हैं

मुझे इंस्ट्रक्शनल लिखने के बारे में शुरू करने से पहले मैंने कुछ ऐसा लिखने के बारे में सोचा, जिसे इस तरह समझा जा सके:

  1. जिन लोगों को कोडिंग का अनुभव है
  2. बिना किसी कोडिंग बैकग्राउंड वाले लोग

इसलिए मुझे लगता है कि मैंने यह काम बिना किसी गलती के किया है (उम्मीद है)।

इसलिए मैंने एक चैट बॉट बनाने का फैसला किया है जो उपयोगकर्ता से बात कर सकता है और हमारी बात के अनुसार प्रतिक्रिया दे सकता है।

कार्यक्रम (निर्देशों का सेट) अपने आप नहीं सोच सकता। इसमें तथ्यों और नियमों का एक डेटाबेस (एक स्थान जहां डेटा संग्रहीत किया गया है) है, जिसे उपयोगकर्ता के संबंध में सर्वोत्तम संभव प्रतिक्रिया देने के लिए बात करते समय खोजा जाता है।

यह दर्ज की गई चीजों के आधार पर मिलान प्रक्रिया द्वारा काम करता है, केवल दुर्लभ मामलों में एक संपूर्ण वाक्य का एक पूर्ण वाक्य से मिलान किया जाता है।

चरण 4: यह वास्तव में कैसे काम करता है?

चरण 1:

MAX पता लगाता है कि उपयोगकर्ता ने कोई शून्य इनपुट दिया है या नहीं। यदि उपयोगकर्ता इस तरह से इनपुट प्रदान करता है, तो यह प्रतिक्रिया देने के लिए स्थिर डेटाबेस से तथ्य लेता है।

मुझे माफ करें ……

मैं कहना भूल गया,

स्टेटिक डाटाबेस: वह स्थान जहां अंतर्निर्मित प्रतिक्रियाएं संग्रहित की जाती हैं। प्रतिक्रियाएँ जैसे:

1. जब MAX को यह समझ में नहीं आता कि उपयोगकर्ता किस बारे में बात कर रहा है।

2. जब उपयोगकर्ता खुद को दोहराता है।

3. ग्रीटिंग स्टेटमेंट के लिए।

4. जब यूजर कुछ भी टाइप नहीं करता है और सिर्फ एंटर दबाता रहता है।

कीवर्ड: विशेष अर्थ वाले शब्द।

चरण 2:

कुछ अंतर्निहित प्रतिक्रियाएं हैं जिन्हें MAX आसानी से और आसानी से पहचान सकता है। यह उपयोगकर्ताओं के इनपुट की पहचान करने के बाद ऐसे किसी भी वाक्य की उपस्थिति का पता लगाता है और संबंधित कीवर्ड को याद रखता है।

चरण 3:

यदि दिए गए वाक्य के विखंडन के बाद भी कोई अंतर्निहित वाक्य नहीं मिलता है, तो MAX संदर्भ को परिभाषित करने के लिए विशिष्ट कीवर्ड की खोज करता है। यदि कोई संदर्भ नहीं मिल रहा है तो इसका अगला उद्देश्य उपयोगकर्ता को विषय के बारे में एक विशिष्ट तरीके से अधिक जानबूझकर बात करने के लिए बनाना है।

चरण 4:

स्टेटिक डेटाबेस से, जिसके बारे में हम पहले ही बात कर चुके हैं, यह उस प्रतिक्रिया को उठाएगा जो इस बात पर निर्भर करती है कि उपयोगकर्ता ने किस बारे में बात की है।

चरण 5:

मुझे उन शब्दों को बदलने की कोई आवश्यकता है जो यह स्वयं करेगा (जैसे कि MY का आपके आदि में रूपांतरण…।)

चरण 5: आइए कोड …………

मैं टर्बो सी आईडीई 3.0 का उपयोग कर रहा हूं क्योंकि यह आईडीई है [एकीकृत विकास पर्यावरण]

कोडिंग से पहले, आइए हम एक नमूना डेटा फ़ाइल की संरचना देखें।

MAX कुछ खोजशब्दों को पहचानता है।

यदि ये कीवर्ड उपयोगकर्ता द्वारा प्रदान किए गए इनपुट में पाए जाते हैं, तो डेटा फ़ाइल से संबंधित प्रतिक्रिया को चुना जाता है और स्क्रीन पर चुना जाता है और प्रदर्शित किया जाता है।

डेटा फ़ाइल में एक कीवर्ड को @KWD@ टोकन द्वारा प्रतिक्रियाओं से अलग किया जाता है।

टोकन हर प्रोग्रामिंग पहलू का सबसे छोटा हिस्सा है।

यह टोकन दर्शाता है कि अगली पंक्ति एक कीवर्ड है और प्रतिक्रिया नहीं है।

नमस्ते, आप कैसे हैं

हैलो प्रिय !

मैं ठीक हूं

आपकी नौकरी कैसी थी?

आपकी उम्र क्या है?

मे लूँगा

आप ऐसा करेंगे। मुझे भी विश्वास है…

क्या आप ऐसा कर पाएंगे ?

क्या आप मुझ पर विश्वास करेंगे?

हां

क्या आपको यकीन है ?

आप इतने निश्चित रूप से कैसे कह सकते हैं ?

नहीं

आप बहुत निराशावादी लगते हैं।

कभी ना मत कहो…

नेवर से नेवर

कभी भी कठोर न हों

कभी अहंकारी मत बनो !!!!

कभी मत कहो कि मैं यह नहीं कर सकता

कभी आशावादी मत बनो

संगणक

मैं कंप्यूटर पर काम करना जानता हूँ।

आप वर्तमान में कंप्यूटर का उपयोग कर रहे हैं। अधिकार ?

उदाहरण के लिए, उपरोक्त शब्दकोश से 'हैलो', मैक्स निम्नलिखित में से एक प्रतिक्रिया देगा:

नमस्ते, आप कैसे हैं प्रिय!

मैं ठीक हूं

आपकी नौकरी कैसी थी?

आपकी उम्र क्या है?

चरण 6: कक्षाएं

एक बार यह बात स्पष्ट हो जाने के बाद, आइए अब हम उन डेटा संरचनाओं को परिभाषित करें जिनका हम उपयोग करेंगे।

हम दो वर्ग बनाते हैं:

progstr - इसका उपयोग उपयोगकर्ता की इनपुट संबंधी जानकारी को संग्रहीत करने के लिए किया जाता है।

resp - इसका उपयोग विभिन्न प्रतिक्रियाओं के बारे में जानकारी संग्रहीत करने के लिए किया जाता है

क्लास प्रोगस्ट्र {

सह लोक:

चार उपयोगकर्तारिप [MAX_USER_INPUT];

चार कीवर्ड [30];

इंट कीफाउंड;

इंट कीनो;

इंट नलिप;

// कंस्ट्रक्टर

प्रोगस्ट्र () {कीनो = -1; नल = 0; कीफाउंड = 0;

}

}आईपी;

वर्ग सम्मान

{

int tot_resp;

इंट लास्ट_रेस्प;

चार जवाब [MAX_RESP_NO][MAX_RESP_LEN];

चार शब्द [MAX_KWD_LEN];

सह लोक:

// कंस्ट्रक्टर

सम्मान ()

{

tot_resp=0;

last_resp=-1;

}

इंट गेटकाउंट ()

{

last_resp वापसी;

}

शून्य ऐडवर्ड (चार str[MAX_KWD_LEN])

{

strcpy (शब्द, str);

}

चार * गेटवर्ड ()

{

वापसी शब्द;

}

शून्य पता (चार str [MAX_RESP_LEN])

{

strcpy (उत्तर [++ last_resp], str);

}

// बाद में परिभाषित

शून्य display_resp (int num);

शून्य छोड़ें_डिस्प्ले_रेस्प (इंट संख्या);

};

प्रथम श्रेणी को देखते हुए, उपयोगकर्ता द्वारा प्रदान किए गए वाक्य को संग्रहीत करने के लिए वर्ण सरणी उपयोगकर्तारिप का उपयोग किया जाता है।

एक अन्य सरणी कीवर्ड का उपयोग उस इनपुट में पाए जाने वाले कीवर्ड, यदि कोई हो, को संग्रहीत करने के लिए किया जाता है। यदि कोई कीवर्ड मिलता है, तो हम int keyfound को 1 और बना देते हैं, यह 0 रहता है, क्योंकि इसे कंस्ट्रक्टर में 0 से इनिशियलाइज़ किया जाता है।

keyno संबंधित कीवर्ड की संबंधितकुंजी संख्या को संग्रहीत करता है।

नलिप इंगित करता है कि क्या उपयोगकर्ता ने कोई नल इनपुट दिया है यानी, वह कुछ और किए बिना बस एंटर दबा रहा है।

अब हम द्वितीय श्रेणी पर आते हैं, आदर।

पहला डेटा सदस्य, tot_resp किसी दिए गए कीवर्ड के लिए कुल प्रतिक्रियाओं की संख्या को इंगित करता है।

उत्तरों को वास्तव में उत्तरों में संग्रहीत किया जाता है [MAX_RESP_NO][MAX_RESP_LEN] और संबंधित कीवर्ड को सरणी शब्द में संग्रहीत किया जाता है।

कंस्ट्रक्टर: इसका उपयोग प्रतिक्रियाओं की कुल संख्या को 0 से प्रारंभ करने के लिए किया जाता है। last_resp को -1 से प्रारंभ क्यों किया जाता है, जब आप फ़ंक्शन add_resp को देखते हैं तो यह स्पष्ट हो जाएगा।

इंट गेटकाउंट ():

इस फ़ंक्शन का उपयोग किसी दिए गए कीवर्ड के लिए कितनी प्रतिक्रियाएं हैं, इसकी गणना करने के लिए किया जाता है।

शून्य ऐडवर्ड (चार str [MAX_KWD_LEN]):

इसका उपयोग कीवर्ड जोड़ने के लिए किया जाता है।

चार * गेटवर्ड ():

वर्ग सम्मान की किसी विशेष वस्तु के लिए कीवर्ड वापस करने के लिए प्रयुक्त होता है।

शून्य पता (…):

इसका उपयोग किसी दिए गए कीवर्ड से संबंधित प्रतिक्रिया जोड़ने के लिए किया जाता है।

शून्य display_resp (int):

इसका उपयोग प्रतिक्रियाओं के लिए दिए गए इंडेक्स नंबर के अनुरूप उपयोगकर्ता को प्रतिक्रिया प्रदर्शित करने के लिए किया जाता है। (वास्तव में यह उससे कहीं अधिक करता है!)

शून्य छोड़ें_डिस्प्ले_रेस्प (इंट):

इस फ़ंक्शन और उपरोक्त फ़ंक्शन के बीच अंतर यह है कि इसका उपयोग अंत में किया जाता है जब उपयोगकर्ता छोड़ रहा होता है। इसलिए, यह उपयोगकर्ता को संकेत वापस नहीं करता है।

चरण 7: कार्य

शून्य इनिशियलाइज़_ग्लोबल ()

{

strcpy (वर्डिन [0], "हैं");

strcpy (वर्डआउट [0], "एएम");

strcpy (वर्डिन [1], "एएम");

strcpy (वर्डआउट [1], "हैं");

strcpy (वर्डिन [2], "WERE");

strcpy (वर्डआउट [2], "WAS");

strcpy (वर्डिन [3], "WAS");

strcpy (वर्डआउट [3], "WER");

strcpy (वर्डिन [4], "आप");

strcpy (वर्डआउट [4], "एमई");

strcpy (वर्डिन [5], "मैं");

strcpy (वर्डआउट [5], "आप");

strcpy (वर्डिन [6], "आपका");

strcpy (वर्डआउट [6], "मेरा");

strcpy (वर्डिन [7], "माई");

strcpy (वर्डआउट [7], "आपका");

strcpy (वर्डिन [8], "आई'वीई");

strcpy (वर्डआउट [8], "आपने");

strcpy (वर्डिन [9], "आपने");

strcpy (वर्डआउट [9], "आई'वीई");

strcpy (वर्डिन [10], "आई'एम");

strcpy (वर्डआउट [10], "यू आर");

strcpy (वर्डिन [11], "यू आर");

strcpy (वर्डआउट [11], "आई'एम");

strcpy (वर्डिन [12], "एमई");

strcpy (वर्डआउट [12], "आप");

strcpy (वर्डिन [13], "आप");

strcpy (वर्डआउट [13], "एमई");

}

आइए अब उपयोक्ता को प्रतिक्रियाएँ प्रदर्शित करने के लिए एक फलन लिखें। लूप के लिए पहले if स्टेटमेंट का उपयोग जानबूझकर टाइपिंग त्रुटि करने के लिए किया जाता है ताकि इसे और अधिक मानवीय दिखाई दे;-)। टाइपिंग त्रुटि के लिए एक वर्ण को यादृच्छिक रूप से चुना जाता है। न्यू लाइन और बैकस्पेस जैसे विशेष मामलों पर अलग से विचार किया जाता है। (सोचो क्यों?) अब मैं कुछ नया परिचय देता हूं। एक विशेष पात्र -*. चार * पहचाने गए कीवर्ड के बाद और निम्नलिखित विराम चिह्नों में से एक से पहले पाए गए सभी टेक्स्ट का प्रतिनिधित्व करता है।

उदाहरण के लिए, उपयोगकर्ता इनपुट पर विचार करें

अमित > क्या मैं कल इंदौर जा सकता हूँ ?

मैक्स > क्या होगा यदि आप कल इंदौर नहीं जाते ?

रेखांकित भाग को शब्दकोश में संग्रहीत नहीं किया जाता है, बल्कि इसे उपयोगकर्ता इनपुट से लिया जाता है। फ़ाइल MAX. Dat में, हम इस जानकारी को इस रूप में संग्रहीत करते हैं

क्या मैं

क्या होगा यदि आप नहीं *

स्टार (*) प्रोग्राम को यूजर इनपुट में कीवर्ड (यहां CAN I) के बाद जो कुछ भी टाइप करता है, उसे कॉपी करने के लिए कहता है। मुझे उम्मीद है कि अब एक विशेष कीवर्ड के रूप में * का कार्य स्पष्ट हो गया है। तो, आइए अधिक जटिल मामले पर विचार करें।

अमित > क्या मैं खरीदारी के लिए जा सकता हूँ ?

MAX > क्या होगा यदि आप खरीदारी के लिए नहीं जाते हैं?

हमें कुछ परिवर्तन भी करना चाहिए। जब हम परिवर्तन के बारे में सोचते हैं, तो वाक्य निम्नलिखित 3 खंडों में विभाजित हो जाता है:

  • ट्रांसपोज़िशन वर्ड से पहले टेक्स्ट। (यहां, खरीदारी के लिए जाएं)
  • ट्रांसपोज़्ड कीवर्ड। (यहाँ, तुम्हारा, मेरे स्थान पर)
  • ट्रांसपोज़िशन कीवर्ड के बाद टेक्स्ट। (यहां मैं ?)

चरण 8: मामलों से निपटा जा सकता है ………

चरण 9: उपयोगकर्ता के इनपुट में एक कीवर्ड खोजना

MAX_KEY DAT फ़ाइल में कीवर्ड की संख्या को इंगित करता है।

हम यहां केवल यह खोजते हैं कि कीवर्ड उपयोगकर्ता के इनपुट में मौजूद है या नहीं।

चरण 10: निष्कर्ष

बस इतना ही ………।

आपने इसे किया है !!!!!!!

मुझे लगता है कि हर कोई चीजों को स्पष्ट रूप से समझ गया ……

सिफारिश की: