برد هوش مصنوعی Sipeed

پروژه پخش کننده موسیقی با دریافت فرمان صوتی برد Maixduino و DFPlayer

create-music-player-with-ai-voice-command-maixduino-and-dfplayer-module-digispark
نوشته شده توسط معین صابری

و باز هم هوش مصنوعی و پردازش صوت! حقیقتا این موضوع به قدری جذاب بوده که از زمان آشنایی با برد Maixduino، تمام ذهن من را به خود مشغول کرده است. ایده صحبت با ماشین و ارسال فرمان به آن با دستورات صوتی یا همان کنترل با فرمان صوتی، بسیار بسیار و بسیار جذاب است. در آموزش فرمان صوتی برد maixduino هم از برد Sipeed استفاده خواهیم کرد. در کنار این، برد DF Player هم نقش پخش صدا را خواهد داشت. در این پروژه برد Maixduino با دریافت و پردازش صوت، به ماژول DFPlayer جهت پخش صدا، فرمان ارسال خواهد کرد.  بنابراین در ادامه این آموزش با مرجع تخصصی برد هوش مصنوعی Sipeed به زبان فارسی، دیجی اسپارک همراه باشید.

 


ساز و کار پخش کننده موسیقی


پیش از آن که به ادامه بحث فرمان صوتی برد maixduino بپردازیم، بهتر است نگاهی به عملکرد سیستم داشته باشیم. پیش از هر چیز چنانچه با برد Maixduino آشنایی ندارید، مطالعه این لینک پیشنهاد می شود. همانطور که اطلاع دارید، برد Maixduino یک برد فوق العاده قدرتمند در زمینه پردازش صدا و تصویر است. این برد می تواند الگوهای صوتی را در خود ذخیره کند. سپس با تشخیص صوت در ورودی خود، آن را با الگوهای از پیش تعریف شده مقایسه نماید. چنانچه صدای دریافت شده در ورودی با الگوهای از پیش تعریف شده مطابقت داشته باشد، خروجی مناسب تولید خواهد شد. در این پروژه  پس از تشخیص صدا، به ماژول پخش صدا فرمان داده و آهنگ پخش خواهد شد.

ساز و کار پخش کننده موسیقی - دیجی اسپارک

 

پس از آشنایی نسبی با مکانیزم پروژه، نوبت به معرفی اجزا و قطعات آن می رسد. قسمت های بعد مربوط به این موضوع است.

 


برد هوش مصنوعی Maixduino


تصور اینکه مقوله هوش مصنوعی به بردهای Embedded هم برسد، تا سال های پیش کمی دور از ذهن به نظر می رسید. اما از آنجاییکه فناوری همیشه به صورت غافلگیرکننده عمل می کند، این موضوع این روزها کاملا عملی شده است. نمود بارز و عینی آن را در برد Maixduino به وضوح می توانیم مشاهده کنیم.

برد هوش مصنوعی مایکس دوینو Maixduino - دیجی اسپارک

 

برد Maixduino از دو پردازنده بهره می برد. نخست پردازنده K210 که قابلیت پردازش صوت، پردازش تصویر و طبقه بندی اشیا را در خود جای داده است. این پردازنده ۶۴ بیتی از نسل پنجم RISC، می تواند محاسبات را در فرکانسی بین ۴۰۰ الی ۶۰۰ مگاهرتز پردازش کند. در طرف دیگر، با پردازنده ESP32 رو به رو هستیم. یک پردازنده ۳۲ بیتی با فرکانس ۲۴۰ مگاهرتز که می تواند به اینترنت متصل شود!!!!! در کنار این، این پردازنده قادر به ایجاد شبکه محلی با قابلیت ساخت نقطه دسترسی است. در این پروژه البته با واحد ESP32 کاری نداریم!

پخش کننده موسیقی با دریافت فرمان صوتی برد Maixduino - دیجی اسپارک

محوریت کار در پروژه فرمان صوتی برد maixduino روی بخش K210 به عنوان پردازش هوش مصنوعی است. از پیش سه الگوی صوتی توسط سازنده و توسعه دهنده تعریف شده است. این سه صدا کلمات انگلیسی GREEN، RED و BLUE هستند. در این پروژه ما به هر یک از این صداها یک فایل صوتی MP3 اختصاص می دهیم. چنانچه هریک از این کلمات را ادا کنید، برد Maixduino آن را تشخیص داده و با ارسال فرمان به ماژول MP3، آهنگ معادل را پخش می کند. در سمت ماژول MP3، سه آهنگ با شماره های ۱،۲ و ۳ ذخیره شده که به ترتیب معادل پخش برای کلمات GREEN، RED و BLUE هستند. در بخش بعدی با ماژول MP3 بیشتر آشنا خواهیم شد. اما پیش از آن با کلیک بر روی این لینک می توانید سلسله آموزش های راه اندازی و کار با برد Maixduino را مطالعه کنید.

 


ماژول DFPlayermini


همانطور که پیشتر هم گفتیم، در آموزش فرمان صوتی برد maixduino قصد داریم تا به پخش آهنگ مطابق با فرمان صوتی دریافت شده از Maixduino بپردازیم. برای پخش آهنگ، از ماژول کوچک و جادویی DFPlayer کمک می گیریم. این ماژول به قدری کاربردی است که شاید باورتان نشود ما با آن به طراحی و پیاده سازی سیستم نوبت دهی بانکی هم پرداخته ایم. برای مطالعه این آموزش جذاب می توانید روی این لینک کلیک کنید.

ماژول DFPlayermini در پروژه پخش کننده صوتی - دیجی اسپارک

 

ماژول DFPLAYER از پورت سریال UART پشتیبانی می کند. دستورات پخش از طریق رابط سریال به ماژول ارسال می شود. این ماژول فایل های صوتی را از طریق کارت   SD پخش می کند. بنابراین شما باید فایل های صوتی را در کارت SD ذخیره کنید. همچنین جهت راه اندازی و کار با این ماژول کتابخانه تحت آردوینو توسعه یافته که راه اندازی و کار با این موجود جادویی را بسیار ساده می کند. به نظر می رسد حال که با قطعات و کاربرد هریک آشنا شدیم، پروژه را استارت بزنیم. قسمت بعد را به شماتیک و اتصالات اختصاص می دهیم. پس از آن نصب کتابخانه، سپس کد و اجرای پروژه را خواهیم دید. اما این تمام کار نیست! در انتها به تحلیل پروژه خواهیم پرداخت.

 


شماتیک و اتصالات پروژه


پس از بررسی قطعات و نقش هریک در پروژه فرمان صوتی برد maixduino، نوبت به شماتیک و اتصالات پروژه می رسد. در زیر فرم کلی اتصالات پروژه را مشاهده می کنید.

شماتیک و اتصالات پروژه پخش کننده صوتی با فرمان صوتی - دیجی اسپارک

 

مطابق تصویر فوق، شماتیک و اتصالات را به شکل زیر ادامه می دهیم.

  • اتصال پایه VCC ماژول DF به پایه ۵ ولت Maixduino
  • اتصال پایه GND ماژول DF به پایه GND برد  Maixduino
  • اتصال پایه  RX ماژول DF PLAYER به کمک یک مقاومت یک کیلو اهمی به صورت سری به پایه ۳ برد Maixduino
  • اتصال پایه  TX ماژول DF PLAYER به کمک یک مقاومت یک کیلو اهمی به صورت سری به پایه ۲ برد Maixduino

پس از برقراری شماتیک و اتصالات، نوبت به بخش نرم افزاری پروژه می رسد. ابتدا در قسمت بعد نصب کتابخانه DF را خواهیم دید. سپس در ادامه کدهای پروژه و را بررسی خواهیم کرد.

 


نصب کتابخانه DFPLAYER MINI


به منظور استفاده از کتابخانه DFPlayerMini.h، ابتدا می بایست آن را نصب کنیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.

Analysis of DFPlayerMini.h library

 

مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت DFRobotDFPlayerMini را تایپ کنید. پس از چند لحظه کتابخانه مورد نظر نمایش داده می شود. با کلیک بر  روی گزینه install، این کتابخانه را نصب کنید.

نصب کتابخانه DFPlayerMini.h در آردوینو - دیجی اسپارک

 

توجه: ورژن کتابخانه مورد بررسی در این پروژه، ۱٫۰٫۵ است.

 


کدهای پروژه


پس از نصب کتابخانه، نوبت به آپلود کدهای پروژه فرمان صوتی برد maixduino می رسد. در ابتدا کدهای زیر مربوط به قسمت K210 است. این کدها را روی برد Maixduino آپلود کنید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

توجه: جهت آپلود برنامه روی برد Maixduino، می بایست هسته آن در آردوینو را نصب کنید. برای این مورد، آموزش آن را با کلیک بر روی این لینک، مطالعه کنید.

 

پس از آپلود برنامه فرمان صوتی برد maixduino، نوبت به اجرای پروژه می رسد. پیش از اجرای پروژه، درون کارت SD فولدری به نام ۱۷ ایجاد کنید. سپس در این فولدر، سه فایل MP3 به نام های ۰۰۱، ۰۰۲ و ۰۰۳ ایجاد کنید. کارت را درون ماژول SD قرار داده، تغذیه برد را یکبار قطع و مجدد وصل کنید. پس از این مرحله، برای اجرای آهنگ شماره ۰۰۱، عبارت RED، برای اجرای آهنگ شماره ۰۰۲ عبارت GREEN و برای آهنگ ۰۰۳ عبارت BLUE را ادا کنید. پس از تشخیص، آهنگ مورد نظر اجرا خواهد شد.

اجرای پروژه پخش کننده موسیقی با فرمان صوتی maixduino - دیجی اسپارک

 

توجه: ممکن است تشخیص کلمات با خطا رو به رو باشد. به نظر می رسد با افزایش مدل های صوتی و کاهش صداهای جانبی در محیط، دقت افزایش یابد.

 


تحلیل کدهای پروژه


پس از اجرای پروژه فرمان صوتی برد maixduino، نوبت به تحلیل و بررسی کدهای آن می رسد.  از آنجاییکه درون کدهای پروژه به صورت خط به خط کامنت(توضیح) درج شده، لذا در اینجا به طور خلاصه به کدهای می پردازیم. جدول زیر لیست توابع کلیدی و کاربردی به کار رفته در پروژه را نمایش می دهد.

شرح تابع
معرفی و ترتیب بندی مدل های صوتی addVoiceModel
دریافت صوت از ورودی، جستجو به دنبال الگوی صوتی و ایجاد خروجی مناسب recognize
تنظیم صدای ولوم ماژول DF volume
پخش آهنگ از طریق فولدر با تعیین شماره آهنگ playFolder

 


 لوازم مورد نیاز


برد Maixduino

برد DFPLAYER

مقاومت یک کیلو اهمی

بلندگو

 


جمع بندی


در این آموزش به طراحی و پیاده سازی یک دستگاه پخش موسیقی ساده با قابلیت پخش آهنگ ها از طریق فرمان صوتی پرداختیم. از آنجاییکه فناوری هوش مصنوعی به طور روزافزون در حال رشد و پیشرفت است، جای آموزش هایی در این حوزه در سطح محتوی فارسی بسیار خالی احساس می شود. از این رو با انتشار این آموزش ها، سعی در پر کردن این خلا داریم. در این آموزش به کمک برد پردازش هوش مصنوعی Maixduino، ابتدا صوت از طرف کاربر دریافت می شود. سپس با جستجو درالگوهای صوتی از پیش ذخیره شده، چنانچه صوتی دریافتی در ورودی را در الگوهای صوتی یافتیم، به ماژول پخش صدای DF، فرمان پخش آهنگ ارسال خواهیم کرد. در این پروژه سه صدا به سه آهنگ تخصیص داده شده است. هرگاه که هریک از این سه صدا تشخیص داده شود، آهنگ متناسب با آن پخش خواهد شد.

 

چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک ده‌ها هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!!

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • سلام مهندس، وقتتون بخیر. آقا من میخواستم روی یه پروژه کار کنم که مدارم از طریق دریافت فرمان صوتی یه عملی رو انجام بده. میخوام تشخیص فرمان تو این مدار وابسته به صدای شخص خاصی نباشه و هر صدایی که یک چیز مشخص رو میگه مدار فقط خود فرمان رو تشخیص بده. پیشنهاد شما برای ساخت چنین مداری چیه؟ از چه هسته ی پردازشی ای برای کنترل مدار استفاده کنم؟ میخوام حدالامکان هزینه ساختش کم و اندازه اش کوچیک باشه. ممنون میشم من رو راهنمایی کنید.