فهرست مطالب:

سیستم Camara-Speaker-Aware System (SPACS): 8 مرحله
سیستم Camara-Speaker-Aware System (SPACS): 8 مرحله

تصویری: سیستم Camara-Speaker-Aware System (SPACS): 8 مرحله

تصویری: سیستم Camara-Speaker-Aware System (SPACS): 8 مرحله
تصویری: Why good leaders make you feel safe | Simon Sinek | TED 2024, نوامبر
Anonim
Image
Image
سخت افزار - چاپ سه بعدی
سخت افزار - چاپ سه بعدی

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

مرحله 1: مواد

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

تقویت کننده میکروفن Electret - MAX4466 X 2

www.adafruit.com/product/1063

میکرو سرو موتور X 1

www.adafruit.com/product/169

تلفن هوشمند اندرویدی X 1

مرحله 2: سخت افزار - چاپ سه بعدی

سخت افزار - چاپ سه بعدی
سخت افزار - چاپ سه بعدی
سخت افزار - چاپ سه بعدی
سخت افزار - چاپ سه بعدی

برای پیاده سازی سریع ، تصمیم گرفتیم محوطه های مورد نیاز خود را به صورت سه بعدی چاپ کنیم. دو جزء اصلی برای محفظه وجود دارد. صفحه گردان و پایه تلفن هوشمند. ما از صفحه گرامافون این پیوند (https://www.thingiverse.com/thing:141287) استفاده کردیم ، جایی که در آن قاب آردوینو در پایین و یک میز چرخشی که می تواند با سرو موتور متصل شود ، ارائه شده است. ما از یک پایه تلفن هوشمند از این پیوند (https://www.thingiverse.com/thing:2673050) استفاده کردیم ، که تاشو و قابل تنظیم زاویه است به طوری که به ما امکان می دهد زاویه را به راحتی کالیبره کنیم. شکل زیر قطعات چاپ شده سه بعدی را نشان می دهد که با هم مونتاژ شده اند.

مرحله 3: سخت افزار - قطعات الکترونیکی

سخت افزار - قطعات الکترونیکی
سخت افزار - قطعات الکترونیکی
سخت افزار - قطعات الکترونیکی
سخت افزار - قطعات الکترونیکی

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

مرحله 4: نرم افزار

سیستم ما در درجه اول از اطلاعات بصری تشخیص چهره استفاده می کند تا بلندگو را دقیق تر دنبال کند. برای اینکه Feather از برنامه Android اطلاعات بصری دریافت کند ، از Bluetooth Low Energy به عنوان اصلی ترین روش ارتباطی استفاده می کنیم.

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

  1. در صورت تشخیص و صحبت کردن ، نقطه وسط بلندگوها را محاسبه کرده و زاویه نسبی را به پر باز می گرداند.
  2. اگر صورت (ها) تشخیص داده شود و هیچکدام از آنها صحبت نمی کند ، نقطه وسط چهره ها را نیز محاسبه کرده و بر این اساس زاویه را برمی گرداند.
  3. در صورت عدم تشخیص چهره ، سیستم منطق ردیابی بلندگوها را از دیداری به صوتی تغییر می دهد.

نرم افزار SPACS در آدرس https://github.com/yhoonkim/cse599h-fp قرار دارد.

مرحله 5: نرم افزار - صدا

نرم افزار - صدا
نرم افزار - صدا

صدا (YH)

برای تعیین منبع صدای ورودی ، ابتدا سعی کردیم از تفاوت زمانی بین دو میکروفون استفاده کنیم. اما از آنجا که میزان نمونه برداری (Hz 900 هرتز) از Arduino Leopard ، که در آن سیگنال های صوتی را آزمایش کردیم ، دقیق نبود آنطور که انتظار می رفت دقیق بود به طوری که نمی تواند تفاوت زمانی بین میکروفون های 10 سانتی متری را تشخیص دهد.

ما برنامه را برای استفاده از تفاوت شدت بین دو سیگنال صوتی ورودی تغییر دادیم. در نتیجه ، پر دو سیگنال صوتی می گیرد و آنها را پردازش می کند تا تشخیص دهد صدا از کجا می آید. مراحل پردازش را می توان با مراحل زیر توضیح داد:

  1. ورودی های دو میکروفون را گرفته و offset را کم کنید تا دامنه سیگنال ها را بدست آورید.
  2. مقادیر مطلق دامنه در هر MIC را برای 500 وانت جمع کنید.
  3. تفاوت مقادیر انباشته شده را در صف دارای 5 شکاف ذخیره کنید.
  4. مجموع صف ها را به عنوان مقدار تفاوت نهایی برگردانید.
  5. مقدار نهایی را با آستانه مقایسه کنید تا تصمیم بگیرید که صدا از کجا آمده است.

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

مرحله 6: نرم افزار - تشخیص چهره و صحبت کردن

برای تشخیص چهره ، ما از ML Kit for Firebase منتشرشده توسط Google (https://firebase.google.com/docs/ml-kit) استفاده کردیم. ML Kit API تشخیص چهره را ارائه می دهد که جعبه محدود کننده هر صورت و نشانه های آن ، از جمله چشم ها ، بینی ، گوش ها ، گونه ها و نقاط مختلف روی دهان را باز می گرداند. هنگامی که چهره ها تشخیص داده می شوند ، برنامه حرکت دهان را ردیابی می کند تا تعیین کند که آیا فرد صحبت می کند یا خیر. ما از یک رویکرد ساده مبتنی بر آستانه استفاده می کنیم که عملکرد قابل اعتماد را ارائه می دهد. ما از این واقعیت استفاده کردیم که هنگام صحبت کردن ، حرکت دهان به صورت افقی و عمودی بزرگتر می شود. ما فاصله عمودی و افقی دهان را محاسبه کرده و انحراف معیار را برای هر فاصله محاسبه می کنیم. فاصله به اندازه صورت عادی می شود. انحراف معیار بزرگتر نشان دهنده صحبت کردن است. این رویکرد این محدودیت را دارد که هر فعالیتی شامل حرکت دهان ، از جمله خوردن ، نوشیدن یا خمیازه کشیدن ، به عنوان صحبت کردن شناخته می شود. اما ، نرخ منفی کاذب پایینی دارد.

مرحله 7: نرم افزار - موتور چرخشی

نرم افزار - موتور چرخشی
نرم افزار - موتور چرخشی

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

مرحله 8: پیشرفت های آینده

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

تشخیص جهت صدا بر اساس صدا را می توان با یک روش پیچیده تر بهبود بخشید. ما می خواهیم برای تعیین جهت صدای ورودی ، یک روش ایجاد پرتو صوتی را امتحان کنیم. ما با رسیدن سیگنال های صوتی سعی کرده ایم. اما ، میزان نمونه برداری از Feather برای تشخیص تفاوت زمانی که میکروفون ها تنها 10 سانتی متر با ما فاصله دارند ، محدود است.

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

توصیه شده: