پیاده سازی تشخیص صدا در آردوینو
در این بخش می خواهیم از ابزارهای تشخیص صدای قدرتمندی استفاده کنیم که در برقراری ارتباط کلامی با آردوینو به ما کمک می کنند.
نرم افزار تشخیص صدا برای آردوینو
نرم افزارهای تشخیص صدای فراوانی وجود دارند که می توانیم از آنها در این پروژه استفاده کنیم. نرم افزاری که قصد داریم در این پروژه استفاده کنیم، BitVoicer نام دارد. به خاطر داشته باشید که این نرم افزار رایگان نیست اما قیمت آن خیلی هم گران نیست. اما پس از استفاده از آن خواهید فهمید که چرا آن را انتخاب کرده ایم. برای این پروژه به یک میکروفون خوب نیز نیاز داریم. اکثر لپ تاپ ها در درون خود یک میکروفون دارند. شما همچنین می توانید از میکروفون هدفون خود نیز استفاده کنید. به این آدرس بروید و این نرم افزار را خریداری کنید. سپس آن را دانلود و نصب کنید. برای انجام این کار، نرم افزار را به صورت run as administrator اجرا کنید.
پیکر بندی نرم افزار BitVoicer
زبان پیش فرض نرم افزار BitVoicer انگلیسی است. برای تغییر زبان، به آدرس زیر بروید:
File → Additional Languages...
خواهید دید که یک پنجره ی جدید باز می شود و دیگر زبان هایی که BitVoicer می تواند از آنها استفاده کند را نشان می دهد. اگر یک پیغام خطا به صورت زیر به شما نشان داده شد:
BitVoicer requires elevated privileges
برنامه را ببندید و به صورت Run as administrator اجرا کنید. در همان پنجره ی بالایی می توانید ناحیه را نیز انتخاب کنید. سپس بر روی دکمه ی Install کلیک کنید. حالا با رفتن به بخش File → Preferences تنظیمات Preferences را باز کنید. ممکن است با این سوال مواجه شوید که schema چیست؟ schema یک فایل است که توسط BitVoicer مورد استفاده قرار می گیرد. و مشابه با فایل های ino. است که در اندروید استفاده می شد. فولدر خروجی(output folder) را در جایی تنظیم کنید که آن را به خاطر بیاورید. شما می توانید یک فولدر جدید به نام VoiceSchemas در پوشه ی آردوینو ایجاد کنید و آن را بعنوان پوشه ی خروجی در نظر بگیرید.
فیلد language را به همان زبانی که در حین نصب انتخاب کردید تغییر دهید. در این پروژه ما از ارتباط TCP/IP استفاده می کنیم. تنظیمات پنجره ی Preferences را مطابق با تصویر زیر انجام دهید:
تنها چیزی که ممکن است برای شما متفاوت باشد آدرس آی پی است. که باید با آدرس آی پی آردوینو مطابقت داشته باشد. همچنین language که انتخاب کرده اید و فولدر output نیز ممکن است متفاوت باشند.
در تصویر بالا، پارامترهای کلیدی که باید آنها را به یاد داشته باشید به صورت زیر هستند:
- Acceptable confidence level: با تنظیم این مورد بر روی 100 درصد، تلفظ ها باید بسیار دقیق باشند. چون که ما آن را بر روی 60 درصد تنظیم کرده ایم، نرم افزار بر ما آسان می گیرد و حتی اگر در تلفظ ما خطایی وجود داشته باشد، از ما اشکالی نمی گیرد.
- Minimum audio level: این مورد آستانه ی بلندی صدای صحبت کردن ما برای برنامه را مشخص می کندم بعدا باید این عدد را بسته به میکروفون خود تغییر دهیم.
فعلا بر روی دکمه ی Save کلیک کنید.
ایجاد یک voice schema
1. به آدرس File → New بروید. پنجره ی زیر را مشاهده خواهید کرد:
2. فیلد Default Command Data Type را به Char تغییر دهید.
3. دوبار بر روی Add New Sentence کلیک کنید تا دو جمله ی قابل برنامه نویسی جدید ایجاد شوند. پنجره ی ما به صورت زیر خواهد بود:
4. در فیلد خالی جمله ی اول عبارت switch on the light را تایپ کنید.
5. در فیلد خالی جمله ی دوم عبارت switch off the light را تایپ کنید.
6. در فیلد خالی Command که در پایین قرا دارد و در جلوی جمله ی اول عدد 1 را قرار دهید.
7. در زیر همان فیلد، عدد 0 را تایپ کنید.
بعدا command های دیگری را نیز اضافه می کنیم. فعلا پنجره ی ما به صورت زیر خواهد بود:
همه چیز را بررسی کنید و مطمئن شوید که همه چیز مرتب باشد. حالا به سراغ آردوینو می رویم.اینجا نیز از همان کدی که در دفعه ی قبل برای کنترل رله از طریق ترمینال استفاده کردیم، استفاده می کنیم. آردوینو را به آداپتور وصل کنید و صبر کنید تا به شبکه(network) متصل شود. دوباره مطمئن شوید که رایانه ی شما به همین شبکه ی وای فای متصل شده باشد.
تست کردن نرم افزار
وقتی که همه چیز تنظیم شد، در نرم افزار BitVoicer بر روی دکمه ی Start کلیک کنید. حالا به سمت راست اسکرول کنید؛ جعبه ی پیام Activity را مشاهده خواهید کرد. اگر همه چیز به درستی کار کند، جعبه ی Activity زیر را مشاهده خواهید کرد:
اگر شما نوار سبز رنگ Audio Level را مشاهده نمی کنید، میکروفون شما کار نمی کند. پس اتصال میکروفون را بررسی کنید. حالا با استفاده از صوت خود می توانید لامپ را روشن کنید. اگر صدای شما به اندازه ی کافی بلند نبود، دوباره امتحان کنید. اگر صدای کلیک شدن از رله می شنوید، پس همه چیز به درستی کار می کند. حالا اگر لامپ را خاموش کنید، یک صدای کلیک دیگر را خواهید شنید.
اکنون ما توانستیم با استفاده از صحبت کردن، آردوینو را کنترل کنیم. اگر ما این مدار را به یک وسیله ی برقی متصل کنیم و همین کار را انجام دهیم، نتیجه ی مشابهی خواهیم گرفت. همان طور که مشاهده کردید، اولین تلاش ما برای روشن کردن لامپ عمل نکرد. چون یا صحبت ما غیر قابل شنیدن بوده است یا برای نرم افزار غیر قابل تشخیص بوده است. بنابراین اطلاعات به آردوینو ارسال نشده است.
ایجاد یک schema ی قابل اعتماد
اکنون می خواهیم schema را ویرایش کنیم و راه های مختلف گفتن switch on/off را پیدا کنیم. وقتی که کارتان تمام شد، بر روی Stop کلیک کنید و فایل اسکیمای chat_server_simple.vsc که در فایل های دانلودی این فصل قرار دارد را در رایانه ی خود قرار دهید. حالا به File → New بروید. مقدار default command data type باید Char باشد. اما اگر برابر با Int است، آن را برابر با Char قرار دهید. حالا گام های زیر را انجام دهید و یا اینکه می توانید فایل chat_server_simple2.vsc را باز کنید.
1. یک sentence جدید اضافه کنید.
2. دکمه ی رادیویی را از Single به Option تغییر دهید.
3. عبارت turn را تایپ کنید و بر روی علامت + کلیک کنید.
4. عبارت switch را تایپ کنید و بر روی علامت + کلیک کنید.
5. بر روی Add New Item کلیک کنید.
6. دکمه ی رادیویی از Single به Option تغییر دهید.
7. عبارت on را تایپ کنید و بر روی علامت + کلیک کنید.
8. عبارت off را تایپ کنید و بر روی علامت + کلیک کنید.
9. بر روی Add New Item کلیک کنید.
10. عبارت light را تایپ کنید و بر روی علامت + کلیک کنید.
11. عبارت bulb را تایپ کنید و بر روی علامت + کلیک کنید.
12. بررسی کنید که جمله ی ما مانند تصویر زیر باشد:
13. اسکرول کنید تا به بخش Sentence Anagrams برسیم. همه ی data typeها را به Char تغییر دهید.
14. در فیلدهای Command همه ی جمله هایی که مربوط به روشن کردن لامپ هستند، مقدار 1 را قرار دهید.
15. در فیلدهای Command همه ی جمله هایی که مربوط به خاموش کردن لامپ هستند، مقدار 0 را قرار دهید.
16. بررسی کنید که Commandهای شما مطابق تصویر زیر باشند:
وقتی که این کار انجام شد، دوباره مطمئن شوید که مدار آردوینوی شما کامل باشد و مطمئن شوید که آردوینو به وای فای متصل شده باشد. سپس بر روی دکمه ی Start کلیک کنید.حالا command های جدید وارد شده را امتحان کنید. آخرین ویژگی نرم افزار BitVoicer استفاده از کلمه ی فعال سازی(activation word) است.
اگر می خواهید از کلمه ی فعال سازی استفاده کنید، تیک آن را بزنید و چیزی را در فیلد آن تایپ کنید(مثل Jarvis یا Cortana). سپس Activated Period را با هر مقداری که می خواهید تنظیم کنید. فرض کنید که Activated Period را برابر با 300 ثانیه( 5 دقیقه) قرار داده ایم. حالا اگر عبارتی به صورت activation word + turn on the light را بگوییم، لامپ ما روشن می شود. اما برای 300 ثانیه ی بعدی، دیگر نیازی نیست که از کلمه ی فعال سازی استفاده کنیم. اکنون دیگر پیاده سازی ارتباطات شبکه به پایان رسیده است. تنها چیزی که باقی مانده است این است که این کار را برای کنترل چندین دستگاه برقی توسعه دهیم.
- نوشته شده توسط احسان عباسی
- بازدید: 2878