فهرست مطالب:

تشخیص دهنده گفتار: 12 مرحله
تشخیص دهنده گفتار: 12 مرحله

تصویری: تشخیص دهنده گفتار: 12 مرحله

تصویری: تشخیص دهنده گفتار: 12 مرحله
تصویری: علائم اولیه اتیسم( تشخیص اتیسم در گام اول ) 2024, جولای
Anonim
تشخیص دهنده گفتار
تشخیص دهنده گفتار

سلام به همه………

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

پس به همگی خوش آمدید…

در این دستورالعمل من قصد دارم نحوه ساخت تشخیص دهنده صدا با استفاده از برد آردوینو را به شما آموزش دهم.

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

بنابراین برای افرادی که تجربه قبلی استفاده از آردوینو را ندارند:

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

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

مرحله 1: چگونه می توان محیط را تنظیم کرد؟

چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟
چگونه می توان محیط را تنظیم کرد؟

کافیست در گوگل "بارگیری arduino" را جستجو کنید

روی "Arduino - Software" کلیک کنید

شما می توانید "بارگیری IDE Arduino" را مشاهده کنید

بسته به سیستم عامل خود انتخاب کنید

آن را بارگیری و نصب کنید

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

مرحله 2: چرا تقاضا برای آردوینو افزایش می یابد؟

ارزان

بردهای آردوینو در مقایسه با سایر سیستم عامل های میکروکنترلر ارزان هستند. هزینه آن تقریباً 50 دلار است.

کراس پلتفرم

نرم افزار Arduino بر روی سیستم عامل های Windows ، Macintosh و Linux کار می کند. اگر به سیستم های میکروکنترلر دیگر فکر کنیم ، فقط در ویندوز کار می کند یا به عبارت دیگر فقط به ویندوز محدود می شود.

نرم افزار منبع باز و قابل توسعه

این نرم افزار منبع باز است ، به طوری که مردم شروع به مطالعه عمیق در مورد آن و شامل کتابخانه ها (که شامل مجموعه ای از عملکردها برای عملکرد آن است) سایر زبان های برنامه نویسی می کنند.

محیط برنامه نویسی ساده و آسان

استفاده از Arduino IDE (نرم افزاری که قبلاً در مورد آن صحبت کردیم …) برای افراد از جمله مبتدیان آسان است ، زیرا منابع زیادی توسط خود Arduino ارائه شده است که به صورت رایگان در اینترنت موجود است. بنابراین با خیال راحت بیشتر بدانید در مورد آن

منبع باز و سخت افزار قابل توسعه

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

مرحله 3: اجازه دهید ما شروع کنیم !!!!

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

واضح تر صحبت کردن ……

این سیگنال های صوتی ارائه شده توسط کاربر را دریافت می کند ، که با چشمک زدن LED پس از تبدیل به گفتار سنتز شده قابل تشخیص است.

مرحله 4: اجزای مورد نیاز

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

اجزای اصلی مورد نیاز برای این پروژه عبارتند از:

آردوینو Due x 1

میکروفون Spark Fun Electret Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

بلندگو: 0.25W ، 8 اهم در 1

تخته نان x 1

LED 5 میلی متری: قرمز x 3

مقاومت 330 اهم 3 3

سیم های جامپر x 1

لحیم کاری آهن x 1

سرور BitVoicer

این یک سرور تشخیص و ترکیب گفتار برای اتوماسیون گفتار است.

مرحله 5: در واقع چگونه کار می کند؟

1. امواج صوتی در حال پیدا شدن هستند و سپس این امواج را می گیرد و توسط برد Sparkfun Electret Breakout تقویت می شوند.

2. سیگنال تقویت شده حاصل از فرایند فوق دیجیتالی شده و با استفاده از مبدل آنالوگ به دیجیتال (ADC) موجود در آن در برد Arduino ذخیره و ذخیره می شود.

3. نمونه های صوتی با استفاده از پورت سریال Arduino موجود در اختیار سرور BitVoicer قرار می گیرد.

4. سرور BitVoicer جریان صوتی را پردازش می کند و سپس گفتار موجود در آن را تشخیص می دهد.

5. سخنرانی به رسمیت شناخته شده به دستوراتی که قبلاً توسط خود تعریف شده است ، نقشه برداری می شود ، سپس به آردوینو ارسال می شود. اگر یکی از دستورات شامل ترکیب گفتار باشد ، سرور BitVoicer جریان صوتی را آماده کرده و به آردوینو ارسال می کند.

6. آردوینو دستورات ارائه شده را شناسایی کرده و اقدامات مناسب خاصی را انجام می دهد. در صورت دریافت جریان صوتی ، در کلاس BVS Speaker قرار می گیرد و با استفاده از DUE DAC و DMA پخش می شود.

7. تقویت کننده صوتی SparkFun Mono سیگنال DAC را تقویت می کند تا بتواند بلندگوی 8 اهم را هدایت کند و از طریق آن شنیده شود.

مرحله 6: سیم کشی قطعات

سیم کشی قطعات
سیم کشی قطعات
سیم کشی قطعات
سیم کشی قطعات

اولین قدم این است که اجزای مختلف را در تخته نان و همچنین با برد آردوینو همانطور که در تصویر نشان داده شده است سیم کشی کنید

به یاد داشته باشید که برد آردوینو مورد استفاده در اینجا DUE است ، مدلهای مختلف دیگری نیز وجود دارد که توسط آردوینو تولید شده اند و هرکدام در سطوح مختلف ولتاژ کار می کند

اکثر برد های آردوینو با 5 ولت کار می کنند ، اما DUE با 3.3 ولت کار می کند

DUE در حال حاضر از یک مرجع آنالوگ 3.3 ولت استفاده می کند ، بنابراین نیازی به بلوز به پین AREF ندارید

متأسفیم ، من فراموش کردم بگویم که یک پین AREF یک "پین مرجع تجزیه و تحلیل" است که در شکل بعدی در یک برد آردوینو وجود دارد (این arduino UNO است اما در مورد مشابه در مورد DUE مشابه سایت مشابه است)

پین AREF در DUE از طریق یک پل مقاومت به میکرو کنترلر متصل می شود

برای استفاده از پین AREF ، مقاومت R1 باید از روی PCB [برد مدار چاپی] لحیم شود

مرحله 7: ارائه کد به برد آردوینو

ارائه کد به برد آردوینو
ارائه کد به برد آردوینو

بنابراین ما باید کد را روی برد آردوینو بارگذاری کنیم ، تا بتواند بسته به دستورالعمل های ارائه شده در کد کار کند.

انجام این کار بسیار آسان است. من هر یک از آنها را با جزئیات ، در مورد کار و نحوه کار آنها توضیح خواهم داد.

چگونه کتابخانه نصب کنیم؟

بنابراین قبل از آن باید بدانیم که چگونه کتابخانه های سرور BitVoicer را در Arduino IDE ، که بر روی نرم افزار arduino نصب شده است ، نصب کنیم.

بنابراین برای آن Arduino IDE را باز کنید

در صفحه بالا روی "Sketch" کلیک کنید

سپس روی "شامل کتابخانه" کلیک کنید

در آن روی "مدیریت کتابخانه" کلیک کنید

سپس مدیر کتابخانه باز می شود و می توانیم لیستی از کتابخانه های آماده نصب یا کتابخانه هایی را که قبلاً نصب شده اند مشاهده کنیم

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

در اینجا ما کتابخانه های سرور BitVoicer را نصب می کنیم که برای این پروژه ضروری است

چگونه کتابخانه.zip را وارد کنیم؟

کتابخانه ها همچنین می توانند به صورت یک فایل یا پوشه ZIP توزیع شوند

نام پوشه نام کتابخانه است

داخل پوشه یک فایل.cpp ، یک فایل.h و اغلب یک فایل keywords.txt ، پوشه نمونه و سایر فایل های مورد نیاز کتابخانه وجود خواهد داشت

از نسخه 1.0.5 Arduino IDE ، می توانید کتابخانه های شخص ثالث را در داخل آن نصب کنید

کتابخانه بارگیری شده را از حالت فشرده خارج نکنید ، آن را همانطور که هست بگذارید

برای انجام این کار به طرح> وارد کردن کتابخانه> افزودن کتابخانه.zip بروید

محل فایل.zip را انتخاب کرده و آن را باز کنید.

به منوی Sketch> Import Library بازگردید.

اگر به درستی وارد شده باشد ، هنگام حرکت باید آن کتابخانه را در پایین منوی کشویی مشاهده کنید.

مرحله 8: برنامه/طرح

این برنامه ای است که باید در آردوینو بارگذاری شود.

این را می توان به سادگی با اتصال برد آردوینو به کامپیوتر و بارگذاری آن روی برد انجام داد.

مرحله 9: در مورد کدهای نوشته شده چطور؟

حالا بیایید ببینیم هر یک از توابع نوشته شده در کد در واقع چه کار می کنند ………..

منابع کتابخانه و اعلام متغیر

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

  • BVSP

    این کتابخانه تقریباً همه منابعی را که برای تبادل اطلاعات با سرور BitVoicer لازم است به ما می دهد

    پروتکلی وجود دارد که به عنوان پروتکل سرور BitVoicer شناخته می شود و از طریق کلاس BVSP پیاده سازی می شود. این امر به منظور تعامل با سرور مورد نیاز است

  • BVSMic

    این کتابخانه تمام موارد مورد نیاز برای ضبط صدا را با استفاده از مبدل آنالوگ به دیجیتال (ADC) آردوینو پیاده سازی می کند

    این صدا در بافر داخلی کلاس ذخیره می شود و می توان آنها را بازیابی کرد و سپس می توان آن را به موتورهای تشخیص گفتار که در سرور BitVoicer موجود است ارسال کرد

  • BVSSpeaker

    این کتابخانه حاوی تمام منابع ضروری است که برای بازتولید جریانهای صوتی ارسال شده از سرور BitVoicer مورد نیاز است

    برای این کار برد آردوینو باید دارای مبدل دیجیتال به آنالوگ (DAC) باشد

    Arduino DUE تنها برد Arduino است که دارای DAC یکپارچه است

کتابخانه های BVSP ، BVSMic ، BVSSpeaker و DAC ، مرجع اینها در چهار خط اول نوشته شده است که خیره شدن برنامه را تشکیل می دهد

هنگام نصب سرور BitVoicer ، می توانید BitSophia را پیدا کنید که این چهار کتابخانه را ارائه می دهد

هنگامی که کاربر یک مرجع به کتابخانه BVSSpeaker اضافه می کند ، کتابخانه DAC که قبلاً ذکر شد به طور خودکار فراخوانی می شود

کلاس BVSP برای ارتباط با سرور BitVoicer استفاده می شود

کلاس BVSMic برای ضبط و ذخیره صدا استفاده می شود

کلاس BVSSpeaker برای بازتولید صدا با استفاده از Arduino DUE DAC استفاده می شود

2. تابع راه اندازی

تابع راه اندازی برای انجام اقدامات خاصی مانند موارد زیر استفاده می شود:

برای تنظیم حالت های پین و حالت های اولیه آنها

برای راه اندازی اولیه ارتباط سریال

برای راه اندازی اولیه کلاس BVSP

برای راه اندازی اولیه کلاس BVSMic

برای راه اندازی اولیه کلاس BVSSpeaker

همچنین "رویداد گیرنده" (اشاره گرهای عملکرد) را برای رویدادهای frameReceived ، modeChanged و streamReceived از کلاس BVSP تنظیم می کند

مرحله 10: عملکرد حلقه

این پنج عملیات اصلی را انجام می دهد:

1. تابع () keepAlive

این عملکرد این است که از سرور در مورد اطلاعات وضعیت درخواست کنید.

2. تابع دریافت ()

این تابع برای بررسی این است که آیا سرور داده ارسال کرده است یا خیر. اگر سرور داده ای ارسال کند ، آن را پردازش می کند.

3. isSREAvailable () ، startRecording () ، stopRecording () و sendStream () توابع

این توابع برای کنترل تنظیمات مختلف ضبط صدا استفاده می شود و پس از رسیدن به صدا ، این صدا را به سرور BitVoicer ارسال می کند.

4. تابع play ()

این عملکرد برای پخش صوتی که در کلاس BVSSpeaker قرار گرفته است استفاده می شود.

5. playNextLEDNote ()

این تابع برای کنترل نحوه چشمک زدن Led استفاده می شود.

6. تابع BVSP_frameReceived

این تابع هر بار که تابع دریافت () شروع به شناسایی می کند که یک فریم کامل دریافت شده است ، فراخوانی می شود. در اینجا ما دستورات به دست آمده از سرور BitVoicer را اجرا می کنیم. دستوراتی که چشمک زدن LED ها را کنترل می کنند 2 بایت هستند. در آن بایت اول پین را نشان می دهد و بایت دوم مقدار پین را نشان می دهد. در اینجا ما از تابع analogWrite () برای تعیین مقدار مناسب پین استفاده می کنیم. در آن زمان ما همچنین باید بررسی کنیم که آیا فرمان playLEDNotes ، که از نوع بایت است ، دریافت شده است. اگر دریافت شده باشد ، playLEDNotes را روی true قرار می دهم و زمان فعلی را کنترل و علامت گذاری می کند. این زمان توسط عملکرد playNextLEDNote برای همگام سازی LED ها با آهنگ استفاده می شود.

7. عملکرد BVSP_modeChanged

این تابع هر بار که تابع دریافت () تغییر حالت در جهت خروجی را مشخص می کند (سرور آردوینو) فراخوانی می شود. سرور BitVoicer می تواند داده های فریم شده یا صدا را به آردوینو ارسال کند. قبل از اینکه ارتباط از یک حالت به حالت دیگر برود ، سرور BitVoicer سیگنالی ارسال می کند. کلاس BVSP این سیگنال را شناسایی می کند و رویداد modeChanged را بالا یا پرچم گذاری می کند. در عملکرد BVSP_modeChanged ، اگر کاربر تشخیص دهد که ارتباط از حالت جریان به حالت فریم می رود ، می داند که صدا تمام شده است بنابراین کاربر می تواند به کلاس BVSSpeaker بگوید پخش صدا را متوقف کند.

8. تابع BVSP_streamReceived

این تابع هر بار که عملکرد دریافت () مشخص می کند که نمونه های صوتی دریافت شده است ، فراخوانی می شود. به سادگی صدا را بازیابی کرده و آنها را در کلاس BVSSpeaker قرار می دهد تا عملکرد play () بتواند آنها را بازتولید کند.

9. عملکرد playNextLEDNote

این عملکرد فقط در صورتی اجرا می شود که تابع BVSP_frameReceived دستور playLEDNotes را مشخص کند. این LED ها را با صدای ارسال شده از سرور BitVoicer کنترل و همگام سازی می کند. برای همگام سازی LED ها با صدا و اطلاع از زمان صحیح ، می توانید از نرم افزار رایگان Sonic Visualizer استفاده کنید. این امکان را به ما می دهد تا امواج صوتی را تماشا کنیم تا فرد بتواند تشخیص دهد که چه زمانی کلید پیانو فشار داده شده است.

مرحله 11: چگونه اشیاء راه حل BitVoicer Server را وارد کنیم؟

ما اکنون سرور BitVoicer را برای کار با آردوینو تنظیم کرده ایم.

چهار هدف اصلی راه حل برای سرور BitVoicer وجود دارد: مکان ها ، دستگاه ها ، BinaryData و طرح های صوتی.

اجازه دهید این موارد را با جزئیات بررسی کنیم:

مکان ها

این نشان دهنده مکان فیزیکی است که دستگاه در آن نصب شده است.

ما می توانیم مکانی به نام Home ایجاد کنیم.

دستگاه ها

آنها به عنوان سرویس گیرندگان BitVoicer Server در نظر گرفته می شوند.

مانند ایجاد مکان ، می توانیم یک دستگاه مخلوط ایجاد کنیم ، برای سهولت به ما اجازه دهید آن را ArduinoDUE نامگذاری کنیم.

گاهی اوقات ممکن است برخی از سرریزهای بافر اتفاق بیفتد ، بنابراین برای از بین بردن آن مجبور شدم نرخ داده را در تنظیمات ارتباطات به 8000 نمونه در ثانیه محدود کنم.

BinaryData نوعی از فرمان است که سرور BitVoicer می تواند به دستگاه های سرویس گیرنده ارسال کند. آنها در واقع آرایه های بایت هستند که می توانید به دستورات پیوند دهید.

وقتی BitVoicer Server گفتار مربوط به آن فرمان را تشخیص می دهد ، آرایه بایت را به دستگاه مورد نظر ارسال می کند.

بنابراین به همین دلیل من یک شیء BinaryData برای هر مقدار پین ایجاد کرده و نام آنها را ArduinoDUEGreenLedOn ، ArduinoDUEGreenLedOff و غیره گذاشته ام.

بنابراین من مجبور شدم 18 شی BinaryData ایجاد کنم ، بنابراین پیشنهاد می کنم اشیاء را از فایل VoiceSchema.sof که در زیر ارائه شده بارگیری و وارد کنید.

بنابراین طرح صوتی چیست؟

طرحواره های صوتی جایی است که همه چیز در کنار هم قرار می گیرد. نقش اصلی آنها تعیین نحوه تشخیص جملات و اجرای همه دستورات است.

برای هر جمله ، می توانید به تعداد مورد نیاز دستورات و ترتیب اجرای آنها را تعریف کنید.

همچنین می توانید بین هر یک از دستورات ارائه شده تاخیر تعریف کنید.

BitVoicer Server فقط از صدای 8 بیتی PCM مونو (8000 نمونه در ثانیه) پشتیبانی می کند ، بنابراین نیاز به تبدیل فایل صوتی به این فرمت وجود دارد ، امروزه بسیاری از عوارض تبدیل آنلاین وجود دارد و من پیشنهاد می کنم https://audio.online -convert.com/convert-to-wav.

شما می توانید (وارد کردن اشیاء راه حل) تمام اشیاء راه حل که در این پروژه استفاده کردم را از فایل های زیر وارد کنید.

یکی از آنها شامل دستگاه DUE و دیگری شامل طرح صوتی و دستورات آن است.

مرحله 12: نتیجه گیری

بفرمایید !!!

شما یک پروژه عالی ساخته اید و می توانید با آن صحبت کنید

بنابراین شروع به صحبت کنید ………………

شما می توانید LED ها را چشمک بزنید و در عین حال می توانید آن را بگویید تا در صورت نیاز آهنگ را بخواند ، کد آن قبلاً ارائه شده است

بنابراین من دومین دستورالعمل خود را تکمیل کردم !!!!!!!!

آره ……

فکر کنم همه فهمیدند…

اگر کسی سوالی داشت لطفاً از من بپرسید

دفعه بعد یک دستورالعمل عالی برای شما ارائه خواهم داد…

خدا حافظ…

به زودی میبینمت……………

توصیه شده: