সুচিপত্র:

ইভ, আরডুইনো চ্যাটবট: 14 টি ধাপ (ছবি সহ)
ইভ, আরডুইনো চ্যাটবট: 14 টি ধাপ (ছবি সহ)

ভিডিও: ইভ, আরডুইনো চ্যাটবট: 14 টি ধাপ (ছবি সহ)

ভিডিও: ইভ, আরডুইনো চ্যাটবট: 14 টি ধাপ (ছবি সহ)
ভিডিও: 4s Bms / Battery monitoring system for lipo4, li-ion using Arduino nano 2024, অক্টোবর
Anonim
Image
Image
ইভ, আরডুইনো চ্যাটবট
ইভ, আরডুইনো চ্যাটবট
ইভ, আরডুইনো চ্যাটবট
ইভ, আরডুইনো চ্যাটবট

হ্যালো DIYrs, এমন ঘটনা আছে যখন আপনি সত্যিই কারো সাথে আপনার অনুভূতি শেয়ার করতে চেয়েছিলেন এবং কোন বিশ্বস্ত কেউ ছিল না? আজকের ব্যস্ত বিশ্বে, এটি একটি সাধারণ উদাহরণ। ভাল, একটি চ্যাটবট আপনাকে আরও ভাল বোধ করতে সাহায্য করতে পারে। এবং এটি ইভের পরিচিতির দিকে নিয়ে যায় ইভ একটি সুন্দর ছোট চ্যাটবট। যেমন সবাই জানে, চ্যাটারবট বা চ্যাটবট একটি কম্পিউটার প্রোগ্রাম বা ডিভাইস যা পাঠ্য বা শ্রবণ পদ্ধতির উপর ভিত্তি করে মানুষের সাথে কথোপকথন পরিচালনা করে। গ্রাহক পরিষেবা কল বা ব্যাঙ্ক লাইনে আপনি যে স্বয়ংক্রিয় কণ্ঠস্বর শুনতে পান তা একটি চ্যাটবটের উদাহরণ। তিনি এটা ভাল অভিজ্ঞ। যেহেতু এটি একটি চ্যাটবটের সবচেয়ে গুরুত্বপূর্ণ কাজ, সেই ব্যক্তিকে খুশি মনে করুন। ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (এনএলইউ) এবং কৃত্রিম বুদ্ধিমত্তার একটি প্রাথমিক উদাহরণ, ইভ আপনি তাকে যে কোন প্রশ্নের উত্তর দিতে সক্ষম। এমন নয় যে সে শুধু একটি নির্দিষ্ট সংখ্যক প্রশ্নের উত্তর দিতে পারে। তিনি গান গাইতে পারেন, আপনাকে রসিকতা বলতে পারেন, গল্প করতে পারেন এবং এমন কিছু করতে পারেন যা আপনাকে ভাল মনে করে। এমনকি সে জানে যে তার একই উত্তর এবং আড্ডার পুনরাবৃত্তি করা উচিত নয়, যাতে কথোপকথন বিরক্তিকর না হয় সহজ, সস্তা উপাদান এবং মৌলিক প্রোগ্রামিংয়ের উপর ভিত্তি করে, সে সত্যিই অনেক বেশি স্মার্ট আচরণ করতে পারে। আরও এলসিডি চোখ যা তার আছে তা দেখায় যে আপনি যখন কিছু বলেন তখন তিনি কেমন অনুভব করেন। প্রোগ্রামিং অংশ অনেক দেখায়? চিন্তা করবেন না, এটি যাত্রায় বেশ আকর্ষণীয় হবে। আপনি উপরের রোবটের ডেমো দেখতে পারেন, অথবা এই লিঙ্কে: [ভিডিও চালান]

ধাপ 1: চ্যাটবটের সংজ্ঞা

চ্যাটবটের সংজ্ঞা
চ্যাটবটের সংজ্ঞা
চ্যাটবটের সংজ্ঞা
চ্যাটবটের সংজ্ঞা
চ্যাটবটের সংজ্ঞা
চ্যাটবটের সংজ্ঞা

উপরে উল্লিখিত হিসাবে, একটি চ্যাটবট এমন একটি প্রোগ্রাম যা মানুষের সাথে কথোপকথন পরিচালনা করে। এগুলি আজকাল এত সাধারণ যে এর অজানা খুব কমই আছে। ভার্চুয়াল অ্যাসিস্ট্যান্ট, সিরি এবং গুগল অ্যাসিস্ট্যান্ট থেকে শুরু করে, মিতসুকু এবং ইভি রয়েছে যার সাথে আপনি আপনার অনুভূতি শেয়ার করতে পারেন উপরে উল্লিখিত হিসাবে, চ্যাটবটগুলি পাঠ্য বা শ্রবণ পদ্ধতির উপর ভিত্তি করে এবং তাই দুটি ভাগে ভাগ করা যায়। পাঠ্য পদ্ধতিতে কথোপকথনগুলি হোয়াটসঅ্যাপের মতো লিখিত পাঠ্যের আকারে থাকে। যেখানে শ্রবণ পদ্ধতিতে, কথোপকথন মৌখিকভাবে একজন বাস্তব মানুষের সাথে করা হয়। আমার মনে হয় কারো সাথে কথা বলার মাধ্যমে তার সাথে কথোপকথন করা আরও উত্তেজনাপূর্ণ শুধু তাকে টেক্সট করার পরিবর্তে। নি doubtসন্দেহে পাঠ্যভিত্তিক যোগাযোগের মেসেজিং অ্যাপগুলি মানুষের প্রয়োজনীয়তা পূরণ করে, কিন্তু আমি মনে করি কথা বলার মাধ্যমে চ্যাট করা আপনার মানসিক অস্থিরতা থেকে মুক্তি পেতে এবং আপনাকে আরও ভাল বোধ করার জন্য সবচেয়ে ভালো জিনিস। তাই ইভকে শ্রাবণমূলক চ্যাটবট হিসাবে ডিজাইন করার প্রধান কারণ।

পদক্ষেপ 2: ইভের উৎপত্তি

ইভের উৎপত্তি
ইভের উৎপত্তি

ঠিক আছে ইভ একদিন আমার মনে এসেছিল। আমি যখন একটি বাচ্চাকে একা স্কুলে ঘোরাফেরা করতে দেখেছি, তখন অন্যরা তাদের মন খুশিতে খেলা করছিল। সেই সময় আমি ভেবেছিলাম, একজন বন্ধুর কথা, যে কাউকে বৈষম্য করে না এবং কাউকে আঘাত করে না, যার সাথে আপনি আপনার অনুভূতি শেয়ার করতে পারেন এবং সারাক্ষণ খুশি থাকতে পারেন। তারপর আমার মনের মধ্যে ঝলকানি এল, ইভের সুন্দর ছোট কাঠামো আমি এটিতে কাজ শুরু করেছি। ইভ আমাকে প্রায় একশবার হতাশ করেছে। অনুমান এটা 101 তম সময় ছিল যে সে কাজ করেছিল এবং আমাকে সত্যিই আনন্দিত করেছিল। আমি চেয়েছিলাম সে বুদ্ধিমান কিন্তু যতটা সম্ভব সহজ, যাতে যে কেউ তাকে সহজেই তৈরি করতে পারে। কোন সন্দেহ নেই যে সে একেবারে স্মার্ট নয় এবং মাঝে মাঝে বোকা উত্তর বলে, সে বন্ধু হিসাবে আচরণ করতে পারে। এবং এখন, যথেষ্ট গল্প, আসুন ইভ নির্মাণ শুরু করি।

ধাপ 3: উপাদান এবং সরঞ্জাম সংগ্রহ করা:

উপাদান এবং সরঞ্জাম সংগ্রহ
উপাদান এবং সরঞ্জাম সংগ্রহ
উপাদান এবং সরঞ্জাম সংগ্রহ
উপাদান এবং সরঞ্জাম সংগ্রহ
উপাদান এবং সরঞ্জাম সংগ্রহ
উপাদান এবং সরঞ্জাম সংগ্রহ

নিম্নলিখিত উপাদানগুলি সংগ্রহ করা হবে: Arduino Pro Mini (অথবা Arduino Nano) Wtv-020-SD-16p সাউন্ড মডিউল HC-05 ব্লুটুথ মডিউল 16x2 এলসিডি মডিউল অডিও জ্যাক 9 ভি ব্যাটারি এবং একটি অ্যান্ড্রয়েড ফোন তাই এইগুলি প্রয়োজনীয় উপাদান। আরেকটি গুরুত্বপূর্ণ বিষয়, খরচ। ইভ আমার খরচ প্রায় 3000 INR। আপনার দেশে খরচ ভিন্ন হতে পারে কিন্তু ভারতে, এটি আনুমানিক হার। অংশগুলির একটি ছোট বিবরণ: Arduino প্রো মিনি আমাদের রোবটের প্রধান MCU। ছোট আকার, সরলতা এবং দুর্দান্ত পারফরম্যান্সের কারণে আমি এটি ব্যবহার করেছি। এটি আমাদের রোবটের সমস্ত প্রয়োজনীয়তা পূরণ করে। ভয়েস রিকগনিশন ফাংশন ছাড়া যা অ্যান্ড্রয়েড দ্বারা করা হয় (পরে আলোচনা করা হয়েছে), কীওয়ার্ড ফাইন্ডিং এবং আউটপুট ফর্মেশন থেকে শুরু করে অন্য সব ফাংশন প্রো মিনিতেই করা হয়। যদি আপনি এটি না বুঝে থাকেন তবে উপরে উল্লিখিত শর্তগুলির জন্য চিন্তা করবেন না, সবগুলি পরবর্তী অংশে আলোচনা করা হয়েছে। আবেগ. আমরা মহিলা অডিও জ্যাক রোবট একটি বহিরাগত পরিবর্ধক সংযুক্ত করার বিধান প্রয়োজন। Arduino এখানে প্রধান নিয়ামক হিসাবে ব্যবহৃত হয়। এটি HC 05 ব্লুটুথ মডিউলের মাধ্যমে ব্লুটুথ ডেটা গ্রহণ করে এবং WTV-020-SD-16p ভয়েস মডিউলের মাধ্যমে ফাইলটি চালায়। LCD মডিউল এবং ক্ষমতার জন্য 9v ব্যাটারিতে আবেগগুলি প্রদর্শিত হয়। ইভ অ্যান্ড্রয়েড ডিভাইসের গুগল ভয়েস স্বীকৃতির মাধ্যমে বক্তৃতাগুলি স্বীকৃতি দেয়। এটি পরে সংশ্লিষ্ট ধাপে যথাযথভাবে আলোচনা করা হয়। Arduino Pro Mini সম্পর্কে একটি খারাপ খবর: এটি বাজার থেকে প্রত্যাহার করা হয়েছে। আচ্ছা এর মানে হল যে এটি আনুষ্ঠানিকভাবে Arduino দ্বারা উত্পাদিত হওয়া বন্ধ করা হয়েছে। কিন্তু আপনি এখনও এটি Ebay সহ অনেক সাইটে খুঁজে পেতে পারেন। অনেক তৃতীয় পক্ষের নির্মাতারা এখনও বোর্ড তৈরি এবং বিক্রি করছেন। আপনি যদি এটি খুঁজে পেতে সক্ষম না হন তবে চিন্তা করবেন না, আপনি আরডুইনো ন্যানো ব্যবহার করতে পারেন। এটি কর্মক্ষমতা এবং আকারে কোন পার্থক্য করবে না।

ধাপ 4: তত্ত্ব পর্ব 1: ইতিহাস এবং ভূমিকা।

তত্ত্ব পর্ব 1: ইতিহাস এবং ভূমিকা।
তত্ত্ব পর্ব 1: ইতিহাস এবং ভূমিকা।
তত্ত্ব পর্ব 1: ইতিহাস এবং ভূমিকা।
তত্ত্ব পর্ব 1: ইতিহাস এবং ভূমিকা।

ইভ প্রাকৃতিক ভাষা প্রক্রিয়াকরণের প্রাথমিক রূপ, "প্যাটার্ন ম্যাচিং" প্রযুক্তির উপর ভিত্তি করে। ধরুন "আপনার বয়স কত?" প্রশ্নে প্রোগ্রামটি "পুরাতন" শব্দটি অনুসন্ধান করে। যদি এটি সফল হয় তবে এটি wtv020sd মডিউলের মাধ্যমে সংশ্লিষ্ট ভয়েস ফাইলটি চালায়। যদি এটি ব্যর্থ হয় তবে এটি পরবর্তী পূর্বনির্ধারিত কীওয়ার্ড অনুসন্ধান করে। কঠিন লাগছে, তাই না? মনে হচ্ছে আমাদের সকল ইংরেজি শব্দের একটি শব্দভাণ্ডার তৈরি করতে হবে এবং ইংরেজি ভাষায় প্রায় 230 হাজার সামগ্রিক শব্দ রয়েছে। ভাল ঘটনা হল যে আমাদের কেবল কয়েকটি মৌলিক শব্দ যুক্ত করতে হবে যা আমাদের যোগাযোগে সর্বাধিক ব্যবহৃত হয়। এখনো কি শক্ত লাগছে? চিন্তা করবেন না, কাজটি ইতিমধ্যে জোসেফ উইজেমবাউম সম্পন্ন করেছেন। ইভের প্রতিক্রিয়া এবং পূর্বনির্ধারিত কীওয়ার্ডগুলির একটি অংশ এলিজা নামক প্রথম চ্যাটারবট প্রোগ্রাম থেকে অন্তর্ভুক্ত করা হয়েছে, যা জোসেফ উইজেমবাউম (উপরে ছবি) দ্বারা তৈরি করা হয়েছে। এলিজা একটি রজারিয়ান থেরাপিস্ট হওয়ার জন্য ডিজাইন করা হয়েছিল। একটি উচ্চ বৈজ্ঞানিক শব্দ নয়, এর মানে হল যে তিনি মানুষকে পরামর্শ দিতেন, তাদের নিজেদেরকে আরও ভালভাবে বুঝতে এবং তাদের আরও ইতিবাচক চিন্তা করতে বাধ্য করতেন। সত্যিই ভালো লাগছে তাই না? এবং এলিজা তার দায়িত্ব পালন করতে খুব ভালভাবে সক্ষম ছিল। তার কৌতূহলী এবং সংশয়ী মনোভাব মানুষ পছন্দ করেছিল। এমনকি উইজেমবাউম এলিজাকে যে গুরুত্ব দিয়েছিলেন তাতে অবাক হয়েছিলেন। তারা ভুলে গেছে যে তারা একটি কম্পিউটারের সাথে কথা বলছে, এবং কম্পিউটারের ভিতরে বসে একটি সুন্দরী মহিলার সাথে তাদের সাথে আড্ডা দিচ্ছে। এটা শীঘ্রই উপলব্ধি করা হয়েছে। সময়ের সাথে সাথে, লোকেরা তার সীমিত যোগাযোগে বিরক্ত হতে শুরু করে এবং তাকে "বোবা" বলে আখ্যায়িত করা হয়। কোন আশ্চর্য না যে সে কত বোবা ছিল, এটি কৃত্রিম বুদ্ধিমত্তা এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের ইতিহাসে একটি দুর্দান্ত লাফ। চ্যাটারবটসের ভিত্তি প্রতিষ্ঠা করে, নতুন এবং উন্নত প্রযুক্তির বিভিন্ন বট বাজারে এসেছে। এবং এখন আমরা তাদের সব জায়গায় আছে যেমন উল্লেখ করা হয়েছে, ইভের প্রতিক্রিয়াগুলির একটি অংশ এলিজা থেকে নেওয়া হয়েছে। সুতরাং এর মানে হল যে এমনকি ইভও আমার নিজের কিছু ধারণার সাথে এলিজার মনোভাব ধারণ করবে। আরেকটি গুরুত্বপূর্ণ বিষয় হল উত্তরগুলি। প্রতিবার একই প্রশ্ন করলে একই উত্তর পাওয়া সত্যিই বিরক্তিকর হওয়া উচিত। অতএব একই কীওয়ার্ডের জন্য অনেক উত্তর সংরক্ষণ করা হয়। ইভ এলোমেলোভাবে কোন ফাইলটি চালানোর জন্য বেছে নেয়, এছাড়াও সে একই ফাইল পুনরাবৃত্তি না করে তা নিশ্চিত করে। এটা হল, সহজ রুটি এবং মাখন, কিন্তু চতুরতার সাথে সাড়া দেওয়ার কণ্ঠগুলি প্রোগ্রাম করা গুরুত্বপূর্ণ, যাতে এটি দর্শকদের একটি বিভ্রম দেয় যেন সে সত্যিই আমাদের প্রশ্নের উত্তর দিচ্ছে। পরবর্তী ধাপে আমরা এই বিস্তারিত এবং প্রোগ্রামিং পাবেন।

ধাপ 5: কীওয়ার্ড অনুসন্ধান করা

কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন
কীওয়ার্ড খুঁজছেন

শেষ ধাপে, আমি ইভের প্যাটার্ন ম্যাচিং প্রযুক্তি এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের প্রাথমিক রূপের কথা উল্লেখ করেছি। তাহলে এটা কি এবং কিভাবে কাজ করে? এটাই মূল বিষয় যা আমরা এই ধাপে আলোচনা করব। সুতরাং এটি সম্পর্কে চিন্তা করুন, কেউ আপনার নাম জিজ্ঞাসা করে এবং আপনাকে এটি কী তা বলতে হবে। একই প্রশ্ন আমরা কত উপায়ে করতে পারি? আপনার শিক্ষক জিজ্ঞাসা করতে পারেন "আপনি কি আমাকে আপনার নাম বলবেন?" একজন আত্মীয় জিজ্ঞাসা করতে পারেন, "আপনার নাম কি?" আপনার ভাই হয়তো বলবেন, "আরে, আমি শুধু আপনার নাম ভুলে গেছি। আপনি কি আর একবার বলবেন?" সুতরাং এর অর্থ হল একই প্রশ্ন বিভিন্ন উপায়ে জিজ্ঞাসা করা যেতে পারে। তবুও আমাদের একই উত্তর দিতে হবে, আমাদের নাম। সুতরাং এর অর্থ হল যে আমাদের সমস্ত বাক্যে সাধারণ কিছু খুঁজে বের করতে হবে। এটা স্পষ্টভাবে দেখা যায় যে, "তোমার নাম" শব্দটি সব বাক্যে বিদ্যমান। সুতরাং এটি আমাদের ইঙ্গিত। নাম জিজ্ঞাসা করা সমস্ত প্রশ্নের জন্য, আমাদের "আপনার নাম" বাক্যাংশটি অনুসন্ধান করতে হবে। এই মৌলিক প্যাটার্নটি অনুসরণ করে আমরা সমস্ত ইনপুট স্ট্রিংগুলির সংশ্লিষ্ট উত্তর সম্পর্কে ভবিষ্যদ্বাণী করতে পারি। ধরুন কেউ বললো, "আমি আপনার নাম ওয়েটিং লিস্টে পেয়েছি। আমি আশা করছিলাম আপনি সংরক্ষিত আসনে থাকবেন।" এখন যেহেতু এই স্ট্রিংয়ে "আপনার নাম" আছে, তাই ইভ, নির্দোষ হওয়া ব্যক্তিটিকে তার নাম বলবে … বোকা তাই না? এটি এই মৌলিক অ্যালগরিদমের একটি বড় ত্রুটি। যাই হোক, এগুলো বিরল ঘটনা হবে। অন্যথায় অ্যালগরিদম খুব কার্যকর। এখন যেহেতু আমি প্যাটার্ন ম্যাচিং টেকনোলজি সম্পর্কে উল্লেখ করেছি, এখন ভাবার সময় এসেছে যে এই ইনপুট স্ট্রিংটি কোথা থেকে আসে যেখানে আমরা স্ট্রিংটি অনুসন্ধান করি। আচ্ছা এই স্ট্রিংটি আসলে আমাদের ভয়েস যা গুগল ভয়েস রিকগনিশন দ্বারা পাঠ্যে রূপান্তরিত হয়েছে। এখানে ব্যবহৃত অ্যাপটি আমাদের ভয়েসকে টেক্সটে রূপান্তর করে এবং তারপর ব্লুটুথের মাধ্যমে আরডুইনোতে পাঠায়। আমি অ্যাপটি ব্যবহার করেছি কারণ এটি সবচেয়ে সহজ এবং তার ধরণের সেরা। নাম AMR ভয়েস, এবং গুগল প্লেতে সহজেই পাওয়া যাবে।

ধাপ 6: উত্তর প্রণয়ন

উত্তর প্রণয়ন
উত্তর প্রণয়ন

এখন যেহেতু আমরা প্রশ্নগুলি স্বীকৃতি পেয়েছি, পরবর্তী পদক্ষেপটি উত্তরগুলি খুঁজে বের করা উচিত। সেখানে আসে আকর্ষণীয় এবং গুরুত্বপূর্ণ অংশ… আমাদের প্রতিটি প্রশ্নের সন্তুষ্ট করার জন্য উপযুক্ত উত্তর খুঁজে বের করতে হবে। এবং এখানে এলিজা থেকে অন্তর্ভুক্ত আরেকটি ফাংশন আসে। Wizembaum একটি নির্দিষ্ট সংখ্যক কীওয়ার্ডের জন্য কিছু উত্তর তৈরি করেছে। একটি উদাহরণ হল "আপনি" শব্দটির। যখনই এটি প্রোগ্রাম আউটপুট সনাক্ত করা হয়েছিল "আমরা আপনাকে আলোচনা করছিলাম - আমি না।" অতএব উত্তরটি এমনভাবে তৈরি করা হয়েছিল যে এটি "আপনি" ধারণকারী সমস্ত বাক্যের জন্য উপযুক্ত। আরও এলিজা প্রতিবার একটি ভিন্ন উত্তর দিয়েছেন। প্রতিটি উত্তরের জন্য এক ধরনের সংখ্যাসূচক ঠিকানা ছিল। প্রতিবার একটি উত্তর প্রণয়ন করার সময় এটি বৃদ্ধি করা হয়েছিল (1 দ্বারা যুক্ত)। ধরুন উপরের উদাহরণের মতো, যদি উত্তরটির ঠিকানা 1 হয়, ঠিকানাটি 2 তে পরিবর্তিত হয় এবং অতএব ফাইল 2 পরবর্তী খেলা হয় কিন্তু আমরা এই বর্ধিতকরণ অ্যালগরিদম অনুসরণ করব না। আপনি সফটওয়্যারের কিছু ক্রমাগত ব্যবহারের পরে দেখেন, উত্তরগুলি অনুমানযোগ্য হয়ে ওঠে। আপনি জানতে পেরেছিলেন যে পরবর্তী কোন উত্তরটি দিতে হবে। সুতরাং এই উদ্দেশ্যে আমরা প্রতিটি কীওয়ার্ডের জন্য এলোমেলো ঠিকানা তৈরি করব। সামগ্রিকভাবে এটি উভয় ক্ষেত্রেই একই, শুধু পার্থক্য যে আমরা একই কীওয়ার্ডের জন্য রোবট পরবর্তী কী বলবে তা আমরা অনুমান করতে পারি না।

ধাপ 7: নিষিদ্ধ বিবৃতি এবং অন্যান্য

নিষিদ্ধ বিবৃতি এবং অন্যান্য
নিষিদ্ধ বিবৃতি এবং অন্যান্য

আপনার কথোপকথনে কিছু উদাহরণ থাকতে পারে যখন রোবট এমন কিছু বলে যা আপনি শুনতে চান না। তাই এখানে নিষিদ্ধ বিবৃতি যোগ করার প্রয়োজন দেখা দেয়। নিষিদ্ধ বিবৃতিগুলি এমন একটি অ্যাড্রেস যা বাজানো থেকে বিরত থাকে। ব্যবহারকারীর অনুরোধে একটি ভয়েস ঠিকানা নিষিদ্ধ বিবৃতি হিসাবে চিহ্নিত করা হয়। আরও এই ঠিকানাটি Arduino এর EEPROM এ সংরক্ষণ করা হবে যাতে ইভ ভুলে না যায় যে এটি বন্ধ করার পরেও এটি একটি নিষিদ্ধ বিবৃতি। যদি ঠিকানাটি নিষিদ্ধগুলির মধ্যে একটি হয়, তাহলে এটি বৃদ্ধি বা হ্রাস করা হয়। আরও একটি উদাহরণ থাকতে পারে যখন আপনি রোবটটিকে পূর্বে নিষিদ্ধ শব্দটি বলতে অনুমতি দিতে চান। সেক্ষেত্রে আপনাকে ইভকে বলতে হবে যে সে শেষ নিষিদ্ধ শব্দটি বলতে পারে। যে শব্দটি সর্বশেষ নিষিদ্ধ ছিল তা এখন বাজানো যাবে। সমস্ত নিষিদ্ধ বিবৃতিগুলি খেলাযোগ্য করার জন্য, আমাদের একটি রিসেটিং সুইচ সংযুক্ত করতে হবে। চাপলে সব নিষিদ্ধ বিবৃতি বাজানো যাবে। তারপর আরেকটি গুরুত্বপূর্ণ বিষয় নিশ্চিত করা হবে যে ইভ উত্তরগুলির পুনরাবৃত্তি করবেন না। এটি এলোমেলো সংখ্যার এক ধরনের ত্রুটি। একই র্যান্ডম সংখ্যা একটি সিরিজে উত্পাদিত হওয়ার সম্ভাবনা রয়েছে। এটি আমাদের রোবটকে একই উত্তর বারবার বলবে। এর জন্য আমাদের আরেকটি ছোটখাটো ফাংশন অন্তর্ভুক্ত করতে হবে যা বিবৃতির পুনরাবৃত্তি রোধ করে। এর জন্য আমাদের শেষ বিবৃতির ঠিকানা মেমরিতে সংরক্ষণ করতে হবে, এবং এটি বর্তমানের মত একই কিনা তা পরীক্ষা করতে হবে। যদি তাই হয়, তাহলে ঠিকানা মান বৃদ্ধি বা হ্রাস পায়, নিষিদ্ধ বিবৃতিগুলির ক্ষেত্রে ঠিক একই ভাবে।

ধাপ 8: কোডে লেখা

কোডে লেখা
কোডে লেখা
কোডে লেখা
কোডে লেখা
কোডে লেখা
কোডে লেখা

আমরা indexOf কমান্ড ব্যবহার করে কীওয়ার্ড সার্চ করি। কমান্ড অন্য একটি স্ট্রিংয়ের মধ্যে একটি অক্ষর বা স্ট্রিং সনাক্ত করে। যদি পাওয়া যায় তবে এটি সেই স্ট্রিংয়ের সূচকটি ফেরত দেয় যখন -1 পাওয়া না গেলে ফেরত দেওয়া হয়। সুতরাং আমাদের প্রোগ্রামে আমাদের এটিকে নিম্নলিখিতটিতে লিখতে হবে: যদি যে আমরা স্ট্রিংটি মেমরিতে সংরক্ষণ করেছি এবং এর মধ্যে আমাদের কীওয়ার্ডও খুঁজে পেয়েছি, এখন আমাদের উত্তরগুলি পরিচালনা করতে হবে। যেমনটি বলা হয়েছে, র্যান্ডম সংখ্যাগুলি একটি নির্দিষ্ট সংখ্যার (ভয়েস ফাইলের ঠিকানা) মধ্যে তৈরি হয়। এখানে এলোমেলো () কমান্ড আসে। নিম্নলিখিত বাক্য গঠন: এলোমেলো (মিনিট, সর্বোচ্চ); // র্যান্ডম সংখ্যাটি সর্বনিম্ন এবং সর্বাধিক পরিসরে উৎপন্ন হয়। আমরা প্রতিটি পরিসরের সর্বনিম্ন সংখ্যা এবং সর্বাধিক সংখ্যার সংজ্ঞায়িত করি এবং এটি প্রয়োগ করে আমাদের কোডটি কিছুটা এইরকম দেখাচ্ছে: যদি (voice.indexOf ("আপনার নাম")> - 1)) {minNo = 0; maxNo = 5; RandomNumber = random (minNo, maxNo);} এখন উত্তরগুলি পরিচালনা করা আসে। শেষ ধাপে আমি বলেছিলাম যে সংখ্যাগুলি একটি অ্যালগরিদমের উপর ভিত্তি করে বৃদ্ধি বা হ্রাস করা হয়। এই অ্যালগরিদম যা আমরা এখন আলোচনা করছি এই অংশটি এই অর্থে খুবই গুরুত্বপূর্ণ যে আপনি শুধু আপনার ইচ্ছামত বৃদ্ধি বা হ্রাস করতে পারবেন না। বর্ধিত বা হ্রাসকৃত সংখ্যা অবশ্যই পরিসরে থাকতে হবে। ধরুন উপরের ক্ষেত্রে যেমন, "আপনার নাম" কীওয়ার্ডের জন্য, আমাদের 0 থেকে 5 পর্যন্ত পরিসীমা রয়েছে এবং এলোমেলো সংখ্যা 5 হয়, ঠিক আছে যদি আপনি এটি বৃদ্ধি করেন তবে আপনি অন্য কীওয়ার্ডের একটি ভয়েস ফাইল বাজানো শেষ করবেন.তুমি কিভাবে ভাবছ যে এটা হবে? আপনি জিজ্ঞাসা করেন, "আরে, দয়া করে আমাকে আপনার নাম বলুন।", এবং রোবট উত্তর দেয়, "আমি কুকিজ এবং বৈদ্যুতিক চার্জ খেতে পছন্দ করি।" ন্যূনতম সংখ্যার ক্ষেত্রেও একই অবস্থা। যদি উৎপন্ন এলোমেলো সংখ্যা 0 হয়, আপনি এটি হ্রাস করতে পারবেন না। তাই এই কারণে অ্যালগরিদম খুবই গুরুত্বপূর্ণ। এটা চিন্তা করুন: আমরা যখন সংখ্যাটি সর্বাধিক সংখ্যার চেয়ে কম হয় এবং সর্বনিম্ন সংখ্যার চেয়ে কম হলে আমরা বৃদ্ধি করতে পারি। অন্যদিকে, যখন এটি 5 এর সমান হয়, আমরা এটি হ্রাস করি, নিশ্চিত করতে যে সংখ্যাটি নির্দিষ্ট সীমার মধ্যে আছে। এখন নিষিদ্ধ বিবৃতি সম্পর্কে আসছে। উল্লিখিত হিসাবে তারা EEPROM এ সংরক্ষণ করা হয়। এর জন্য, প্রথমে আমরা নিষিদ্ধ অ্যারেতে বিনামূল্যে মেমরি অনুসন্ধান করি। ধরুন ঠিকানা 4 টি বিনামূল্যে, তাহলে আমরা ফ্রি অ্যারে ঠিকানায় ফাইল নম্বর ইনপুট করার পাশাপাশি EEPROM- এ একই ঠিকানা লিখব। (int i; i if (never == 0) {EEPROM.write (never , memory);}} তাই শুধু, Wtv020sd16p মডিউলটি module.playVoice () কমান্ড এবং প্রস্তাবিত ফাইল নম্বর ব্যবহার করে চালানো হবে। Wtv020 মডিউলের কার্যকারিতা পরে আলোচনা করা হবে।

ধাপ 9: আবেগ োকানো

আবেগ োকানো
আবেগ োকানো
আবেগ োকানো
আবেগ োকানো
আবেগ োকানো
আবেগ োকানো

এখন পর্যন্ত আমাদের রোবট আমরা যা বলি তা চিনতে, স্মৃতিতে সংরক্ষণ করতে এবং প্রশ্নের উপযুক্ত উত্তর খুঁজে পেতে সক্ষম। এখন প্রশ্ন আসে আবেগ োকাতে। নিশ্চয়ই প্রত্যেকেই একটি লাইভ ফেস পছন্দ করবে এবং সাথে সাথে কিছু মূর্খ ছোট প্রশ্ন-উত্তর প্রোগ্রাম। প্রকল্পে 16x2 LCD ব্যবহার করা হয়। চোখ ছাপানোর জন্য এটি যথেষ্ট সূক্ষ্ম। চোখ তৈরির জন্য আমাদের কাস্টম ক্যারেক্টার ফাংশন ব্যবহার করতে হবে। কাস্টম অক্ষর আমাদের পিক্সেল সংজ্ঞায়িত করে নতুন অক্ষর তৈরি করতে সক্ষম করে। আমরা একটু পরে এটি সম্পর্কে বিস্তারিত আসব। প্রথমত এটা মনে রাখা গুরুত্বপূর্ণ যে শুধুমাত্র 8 টি কাস্টম অক্ষর Arduino দ্বারা সমর্থিত। সুতরাং আমাদের কেবল 8 টি অক্ষর দিয়ে আবেগ পরিচালনা করতে হবে। প্রতিটি অক্ষর একটি নির্দিষ্ট বাক্সে মুদ্রিত হবে, এবং সেখানে 16 টি কলাম এবং 2 টি সারি রয়েছে যা মোট 32 টি বাক্স তৈরি করে।

আপনি Arduino এ কাস্টম অক্ষর সম্পর্কে অনলাইনে ভাল তথ্য পেতে পারেন। এছাড়াও এই লিঙ্কটি দেখতে পারেন:

[কাস্টম অক্ষর আরডুইনো] কাস্টম ক্যারেক্টার বাইটের গঠন কিছুটা এইরকম দেখতে হবে:

সাধারণ চেহারা: বাম বাক্স 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, ডান বক্স । সুতরাং এর মানে হল যে আমাদের একটি সম্পূর্ণ চোখ পূরণ করতে মোট 4 টি বাক্সের প্রয়োজন হবে। বাম দিকে দুটি সারি এবং ডানদিকে দুইটি এক চোখের জন্য মোট চারটি বাক্স তৈরি করে। বাম বক্স বাইটটি বামদিকে দুটি সারি এবং ডান বাক্সটি ডান সারিগুলি আবৃত করবে। সুতরাং এটি ইভের একটি সম্পূর্ণ চোখ তৈরি করে। এবং এখন দ্বিতীয় চোখের জন্য একই পুনরাবৃত্তি, আমরা ইভ নিরপেক্ষ চেহারা পেতে। এখন এটা মনে রাখা গুরুত্বপূর্ণ যে আমরা উপলব্ধ আটটি কাস্টম অক্ষরের মধ্যে একটি ব্যবহার করেছি। এবং পাঁচটি মোট আবেগ আছে: আনন্দ, দু Sadখ, স্কুইন্ট, সাধারণ এবং চোখের পলক। বাকি সাতটি কাস্টম অক্ষর হিসাবে, আমাদের সমস্ত অভিব্যক্তিগুলির সাথে মানানসই করার জন্য সামঞ্জস্য করতে হবে। জায়গা তৈরির জন্য আমরা প্রতিটি চোখের জন্য 2 টি বাক্স ব্যবহার করব। অবাক হওয়ার কিছু নেই যে আকারটি কিছুটা ছোট হবে, তবে এটি মানুষের চোখ দ্বারা উপেক্ষা করা হবে। শুধু LCD ফাংশনগুলির মধ্যে কিছু বিলম্ব যোগ করতে ভুলবেন না, অন্যথায় Arduino অস্থির হয়ে যাবে।

ধাপ 10: সংযোগ তৈরি করা

সংযোগ তৈরি করা
সংযোগ তৈরি করা
সংযোগ তৈরি করা
সংযোগ তৈরি করা
সংযোগ তৈরি করা
সংযোগ তৈরি করা

এলসিডি মডিউল: এখানে উল্লেখিত পিনগুলি সংযুক্ত করুন: RS: dig pin 12RW: GndEnable: 7d4: dig pin 8 d5: dig pin 9 d6: dig pin 10 d7: dig pin13A (Anode) to 5vK (Cathode) to gndThe HC 05 module: এই সংযোগগুলি অনুসরণ করুন: HC 05 TX pin to Arduino RX pinHC 05 RX pin to Arduino TX pinState pin to Arduino dig pin 11 যোগাযোগ TX এবং RX পিনের সাহায্যে করা হয়। HC 05 এর মাধ্যমে সংযুক্ত বা নিষ্ক্রিয় কিনা তা পরীক্ষা করার জন্য স্টেট পিন প্রয়োজন। পিন খনন করতে 4pin15: ব্যস্ত পিন, খনন পিন 5pin2 এর সাথে সংযুক্ত করুন: এই পিনটিকে ভলিউমের মাধ্যমে একটি এম্প্লিফায়ারের সাথে সংযুক্ত করুন এবং মহিলা অডিও জ্যাকের সাথেও একই। 8 তম পিন থেকে gnd এবং 16 তম পিনে 3.3v পাওয়ার সাপ্লাই প্রদান।

পরিবর্ধক ইভের অভ্যন্তরীণ স্পিকার বাজাতে সাহায্য করবে, যখন অডিও জ্যাক একটি বহিরাগত পরিবর্ধক এবং বৃহত্তর স্পিকারের সাথে সংযোগ স্থাপন করবে।

ধাপ 11: WTV020SD16p মডিউল (চ্ছিক)

Image
Image
WTV020SD16p মডিউল (চ্ছিক)
WTV020SD16p মডিউল (চ্ছিক)
WTV020SD16p মডিউল (চ্ছিক)
WTV020SD16p মডিউল (চ্ছিক)

দ্রষ্টব্য: এই পদক্ষেপটি একটি চ্ছিক। এটি WTV 020 SD 16p মডিউলের কাজ এবং বর্ণনা নিয়ে কাজ করে।

আপনি এই লিঙ্কে সাউন্ড মডিউলের ডেমো দেখতে পারেন:

[ভিডিও দেখাও]

রোবটের স্পিকিং মোড WTV 020 SD মডিউল দ্বারা সম্পন্ন হয়। মডিউলটি রোবটের জন্য ভয়েস ফাইল চালানোর জন্য ব্যবহৃত হয়। যখন কোন প্রশ্ন জিজ্ঞাসা করা হয়, arduino মডিউলটিকে SD কার্ডে সংশ্লিষ্ট ভয়েস ফাইল চালাতে বাধ্য করবে। আরডুইনো, রিসেট, ঘড়ি, ডেটা এবং ব্যস্ত পিনের সাথে যোগাযোগের জন্য মডিউলে চারটি সিরিয়াল ডেটা লাইন রয়েছে এবং আমরা প্রয়োজনীয় ফাইল চালানোর জন্য.playVoice () কমান্ড ব্যবহার করি। উদাহরণস্বরূপ: module.playVoice (9): // play file 9 SD কার্ডে সংরক্ষিত আছে মনে রাখবেন যে ফাইলের নাম দশমিক (0001, 0002…) হওয়া উচিত। এবং ফাইলগুলি AD4 বা WAV ফর্ম্যাটে হওয়া উচিত। আরও মডিউল শুধুমাত্র 1 জিবি মাইক্রো এসডি কার্ডে কাজ করে। কিছু মডিউল 2gb কার্ডেও কাজ করে এবং কার্ড সর্বোচ্চ 504 ভয়েস ফাইল ধারণ করতে পারে। সুতরাং আপনি একটি ভাল সংখ্যক ভয়েস ফাইল অন্তর্ভুক্ত করতে পারেন ভাল সংখ্যক প্রশ্নের জন্য।

আপনি এমনকি আপনার নিজের ভয়েস AD4 ফাইল তৈরি করতে পারেন প্রথমত, আপনার দুটি সফটওয়্যার, একটি সাউন্ড এডিটিং সফটওয়্যার এবং 4D SOMO টুল নামে একটি সফটওয়্যার থাকতে হবে যা ফাইলগুলিকে AD4 ফরম্যাটে রূপান্তর করবে। দ্বিতীয়ত, আপনাকে রোবট ভয়েস প্রস্তুত করতে হবে। আপনি হয় পাঠ্যকে বক্তৃতাতে রূপান্তর করতে পারেন অথবা আপনার নিজের ভয়েস রেকর্ড করতে পারেন এবং রোবট ভয়েস তৈরি করতে পারেন। এই দুটিই সাউন্ড এডিটিং সফটওয়্যারে করা যায়। কিন্তু অবশ্যই, রোবটরা মানুষের কণ্ঠে কথা বললে ভাল দেখায় না। সুতরাং পাঠ্যকে বক্তৃতাতে রূপান্তর করা ভাল হওয়া উচিত। মাইক্রোসফ্ট আনা এবং মাইক্রোসফট স্যাম আপনার কম্পিউটারের মতো বিভিন্ন ইঞ্জিন রয়েছে যা এটি করতে সহায়তা করবে। আমার মাইক্রোসফট ইভা ভিত্তিক। কর্টানার সাথে এর কণ্ঠ অনেকটা মিলে যায়। ভয়েস ফাইল প্রস্তুত করার পর, আপনাকে এটি 32000 Hz এবং WAV ফরম্যাটে সংরক্ষণ করতে হবে। কারণ মডিউল 32000 Hz পর্যন্ত ভয়েস ফাইল চালাতে পারে। তারপর AD4 ফরম্যাটে ফাইল কনভার্ট করতে 4D SOMO টুল ব্যবহার করুন। এটি করার জন্য, কেবল সোম টুল খুলুন, ফাইলগুলি নির্বাচন করুন এবং AD4 এনকোড ক্লিক করুন এবং আপনার ভয়েস ফাইল প্রস্তুত। আপনি রেফারেন্সের জন্য উপরের ছবিটি চেক করতে পারেন।

ধাপ 12: সফ্টওয়্যার অংশ

সফটওয়্যার অংশ
সফটওয়্যার অংশ
সফটওয়্যার অংশ
সফটওয়্যার অংশ
সফটওয়্যার অংশ
সফটওয়্যার অংশ

আরডুইনো প্রো মিনিতে, প্রোগ্রামিংয়ে সামান্য সমস্যা রয়েছে। আসলে সমস্যা নয়, শুধু একটি অতিরিক্ত পদক্ষেপ। Arduino প্রো মিনি অন্য Arduino বোর্ড হিসাবে কোন অন্তর্নির্মিত প্রোগ্রামার নেই। সুতরাং আপনাকে একটি বহিরাগত কিনতে হবে অথবা একটি পুরানো আরডুইনো ইউএনও কিনতে হবে। আরডুইনো ইউএনও ব্যবহার করে প্রোগ্রামটি কিভাবে আপলোড করতে হয় তা এখানে বর্ণনা করা হয়েছে। শুধু একটি পুরাতন Arduino UNO বোর্ড ক্র্যাশ থেকে ধরুন এবং Atmega 328p বের করুন। তারপরে নিম্নলিখিত হিসাবে উল্লেখ করুন: 1। ইউএনও -তে টিএক্স পিন প্রো মিনি -তে টিএক্স পিন -এ। প্রো মিনি 4 এর রিসেট পিনে ইউএনও এর পিন রিসেট করুন। ইউএনও -র সাথে প্রো মিনি -র ভিসিসি এবং গ্রাউন্ড সংযুক্ত করুন। আরডুইনো প্রোগ্রাম, ভয়েস রিকগনিশন সফটওয়্যার এবং নীচে দেওয়া লাইব্রেরিগুলি ডাউনলোড করুন। প্রোগ্রামটি এখনও উন্নত হচ্ছে। সুতরাং যদি আপনার এটি সম্পর্কে কোন সমস্যা থাকে তবে নির্দ্বিধায় জিজ্ঞাসা করুন তারপর কম্পিউটারে কেবলটি প্লাগ করুন। Arduino Pro Mini হিসাবে বোর্ড নির্বাচন করুন এবং সঠিক COM পোর্ট নির্বাচন করুন। তারপরে আপলোড বোতাম টিপুন এবং দেখুন প্রোগ্রামটি আপনার প্রো মিনিতে আপলোড হয়ে গেছে।

তারপর ভয়েস রিকগনিশন সফটওয়্যার এবং ভয়েস ফাইল ডাউনলোড করুন।

ধাপ 13: শরীর প্রস্তুত করা

শরীর প্রস্তুত করা
শরীর প্রস্তুত করা
শরীর প্রস্তুত করা
শরীর প্রস্তুত করা
শরীর প্রস্তুত করা
শরীর প্রস্তুত করা

আমি ফ্লোসের একটি ছোট বাক্স খুঁজে পেয়েছি এবং এটি শরীরের জন্য নিখুঁত বলে মনে করেছি। আপনি আপনার কর্মশালায় যে কোনও বাক্স ব্যবহার করতে পারেন, অথবা আপনি কার্ডবোর্ড থেকে একটি তৈরি করতে পারেন। LCD মডিউল সংযুক্ত করার জন্য শুধু একটি ছোট আয়তক্ষেত্রাকার টুকরো কেটে নিন। শীর্ষে, আমি ভলিউম সংযুক্ত করার জন্য এবং সুইচ এবং অডিও সংযোগকারী সংযুক্ত করার জন্য একটি ছোট গর্ত কেটেছি। আমি চাকার জন্য বাক্সের পাশে দুটি বোতল ক্যাপ সংযুক্ত করেছি। শুধু নিশ্চিত করুন যে বাক্সে সার্কিটের ভিতরে রাখার জন্য পর্যাপ্ত জায়গা আছে। শরীরের পাশাপাশি সার্কিটের সাথে একটি সুইচ সংযুক্ত করুন, তারপরে বাক্সের শীর্ষে ভলিউম। তারপর শুধু সার্কিট ভিতরে রাখুন এবং আপনার রোবট সম্পূর্ণ।

ধাপ 14: ভাল হয়েছে

সাবাশ!
সাবাশ!
সাবাশ!
সাবাশ!

এখন আপনি আপনার সুন্দর ছোট রোবট প্রকল্পটি সম্পন্ন করেছেন যা আপনার সাথে কথা বলতে পারে এবং আপনাকে আনন্দিত করতে পারে। এটি একটি DIYer হওয়ার সবচেয়ে আনন্দের বিষয় যখন আপনার প্রকল্পটি সম্পন্ন হয় এবং সম্পূর্ণরূপে কাজ করে। আপনি যদি একটি প্রচেষ্টায় সফল না হন তবে চিন্তা করবেন না, এর জন্য আপনাকে কঠোর পরিশ্রম করতে হবে যাতে আপনি আপনার রোবটের প্রতিটি অংশ বুঝতে পারেন। এবং এই যে DIYers এই পৃথিবীতে আসে কিন্তু এই প্রকল্পের শেষ নয়। ইভ সর্বদা আরও বেশি পরিমাণে বিকশিত হবে, হয় আমার বা আপনার মত DIYers দ্বারা। আমি এই নির্দেশনা দেখে আপনি কি তৈরি করেছেন তা শুনতে পছন্দ করব

প্রস্তাবিত: