Съдържание:

Говорителска система Camara (SPACS): 8 стъпки
Говорителска система Camara (SPACS): 8 стъпки

Видео: Говорителска система Camara (SPACS): 8 стъпки

Видео: Говорителска система Camara (SPACS): 8 стъпки
Видео: Свидание в 16 vs 26 лет 😨😳 2024, Ноември
Anonim
Image
Image
Хардуер - 3D печат
Хардуер - 3D печат

Представете си конферентен разговор, при който няколко високоговорителя обграждат една камера. Често се сблъскваме, когато ограниченият ъгъл на видимост на камерата често не успява да погледне човека, който говори. Това хардуерно ограничение значително влошава потребителското изживяване. Ако камерата може да гледа към активни високоговорители, отдалечената аудитория ще бъде по -ангажирана в разговор по време на разговора. В този проект ние предлагаме (прототип) система от камери, която открива и следва активния високоговорител, като обърне камерата към високоговорителя. Системата използва както визуален, така и аудио-базиран подход. Когато се открият лица от камерата, тя определя човека, който говори, и изчислява ъгъла на завъртане. Когато лицата не бъдат разпознати под текущия ъгъл, системата търси високоговорителя въз основа на посоката на пристигащите аудио сигнали.

Стъпка 1: Материали

Перо Adafruit nRF52840 Express X 1

www.adafruit.com/product/4062

Електретен микрофонен усилвател - MAX4466 X 2

www.adafruit.com/product/1063

Микро серво мотор X 1

www.adafruit.com/product/169

Смартфон с Android X 1

Стъпка 2: Хардуер - 3D печат

Хардуер - 3D печат
Хардуер - 3D печат
Хардуер - 3D печат
Хардуер - 3D печат

За бързо внедряване решихме да отпечатаме 3D корпусите, от които се нуждаем. Има два основни компонента за заграждения; грамофон и стойка за смартфон. Използвахме грамофона от тази връзка (https://www.thingiverse.com/thing:141287), където той осигурява корпус Arduino в долната част и въртяща се маса, която може да бъде свързана със серво мотор. Използвахме стойка за смартфон от тази връзка (https://www.thingiverse.com/thing:2673050), която е сгъваема и регулируема под ъгъл, така че да ни позволява да калибрираме ъгъла удобно. Фигурата по -долу показва 3D отпечатаните части, сглобени заедно.

Стъпка 3: Хардуер - електронни компоненти

Хардуер - електронни компоненти
Хардуер - електронни компоненти
Хардуер - електронни компоненти
Хардуер - електронни компоненти

Има четири жични компонента; Перо от Adafruit, два микрофона и двигател. За компактната опаковка ние запоехме (сиви кръгове) проводниците, без да използваме макет. По -долу е описана електрическата схема и действителният артефакт.

Стъпка 4: Софтуер

Нашата система използва предимно визуалната информация от разпознаването на лица, за да следва говорещия, тъй като е по -точна. За да може перото да получи визуална информация от приложението за Android, използваме Bluetooth Low Energy като основен метод за комуникация.

Когато се открие лице, приложението изчислява ъгъла, който двигателят трябва да завърти, за да фокусира високоговорителя в центъра на кадъра. Разложихме възможните сценарии и се справихме по следния начин:

  1. Ако лицето (ите) бъдат открити (и) и говорят, той изчислява средната точка на високоговорителите и връща относителния ъгъл на Перото.
  2. Ако лице (и) бъдат открити (и) и никое от тях не говори, то също така изчислява средната точка на лицата и съответно връща ъгъла.
  3. Ако някое лице не бъде открито, системата променя логиката за проследяване на високоговорителите от визуална към аудио.

Софтуерът SPACS се намира на адрес

Стъпка 5: Софтуер - Звук

Софтуер - Звук
Софтуер - Звук

Звук (YH)

За да локализираме източника на входящ звук, първо се опитахме да използваме времевата разлика между двата микрофона. Но това не беше точно толкова, колкото очаквахме, тъй като честотата на дискретизация (~ 900Hz) на Arduino Leopard, където тествахме звуковите сигнали, беше бавна, така че не може да улови разликата във времето между 10-сантиметровите микрофони.

Променихме плана, за да използваме разликата в интензитета между двата входни звукови сигнала. В резултат на това перото приема два звукови сигнала и ги обработва, за да открие откъде идва звукът. Обработката може да бъде описана чрез следните стъпки:

  1. Вземете входовете от два микрофона и извадете отместването, за да получите амплитудите на сигналите.
  2. Натрупвайте абсолютните стойности на амплитудите за MIC за 500 пикапа.
  3. Запазете разликата от натрупаните стойности в опашката с 5 слота.
  4. Връща сумата на опашките като крайна стойност на разликата.
  5. Сравнете крайната стойност с праговете, за да решите откъде идва звукът.

Открихме прага, като начертахме крайната стойност при различни обстоятелства, включително звук, идващ отляво и отдясно. На върха на праговете за крайната стойност, ние също задаваме друг праг за средната стойност на натрупаните амплитуди в стъпка 2, за да филтрираме шумовете.

Стъпка 6: Софтуер - Откриване на лице и говор

За разпознаване на лица използвахме ML Kit за Firebase, издаден от Google (https://firebase.google.com/docs/ml-kit). ML Kit предоставя API за разпознаване на лица, който връща ограничаващата кутия на всяко лице и неговите ориентири, включително очи, нос, уши, бузи и различни точки на устата. След като се открият лица, приложението проследява движението на устата, за да определи дали лицето говори. Използваме прост подход, базиран на праг, който дава надеждна производителност. Използвахме факта, че движението на устата става по -голямо както хоризонтално, така и вертикално, когато човек говори. Изчисляваме вертикалното и хоризонталното разстояние на устието и изчисляваме стандартното отклонение за всяко разстояние. Разстоянието се нормализира спрямо размера на лицето. По -голямо стандартно отклонение показва говорене. Този подход има ограничението, че всяка дейност включва движение на устата, включително хранене, пиене или прозяване, може да се разпознае като говорене. Но има нисък процент на фалшиво отрицателни резултати.

Стъпка 7: Софтуер - въртящ се двигател

Софтуер - въртящ се двигател
Софтуер - въртящ се двигател

Ротацията на двигателя не беше толкова ясна, колкото очаквахме поради контрола на скоростта на въртене. За да контролираме скоростта, декларираме глобална променлива на брояча, която позволява на двигателя да се завърти само когато променливата достигне определена стойност. Декларирахме и друга глобална променлива, показваща дали двигателят се движи, за да уведоми микрофоните, за да може да избегне звука, идващ от въртенето на двигателя.

Стъпка 8: Бъдещи подобрения

Едно от ограниченията е, че двигателят се клати под определени ъгли. Изглежда, че двигателят не е достатъчно мощен, за да преодолее въртящия момент, генериран от завъртането на смартфона. Тя може да бъде разрешена чрез използване на по -мощен двигател или регулиране на позицията на смартфона към центъра на въртенето, за да се намали въртящият момент.

Аудио-базираното разпознаване на посоката на звука може да бъде подобрено с по-сложен метод. Бихме искали да опитаме подход за формиране на акустичен лъч, за да определим посоката на входящия звук. Опитахме с времето на пристигане на аудио сигналите. Но скоростта на дискретизация на перото е ограничена, за да открие времевата разлика, когато микрофоните са само на около 10 см разстояние.

Последната липсваща част от този прототип е оценката на използваемостта. Един обещаващ начин за оценка е интегрирането на системата със съществуващата платформа за видео разговори и наблюдение на отговорите на потребителите. Тези отговори ще помогнат за подобряване на системата и ще направят следващата итерация на този прототип.

Препоръчано: