Turinys:

„Speaker-Aware Camara System“(SPACS): 8 žingsniai
„Speaker-Aware Camara System“(SPACS): 8 žingsniai

Video: „Speaker-Aware Camara System“(SPACS): 8 žingsniai

Video: „Speaker-Aware Camara System“(SPACS): 8 žingsniai
Video: BMW X7 2022 ... the PERFECT solution?? In-depth review. 2024, Lapkritis
Anonim
Image
Image
Techninė įranga - 3D spausdinimas
Techninė įranga - 3D spausdinimas

Įsivaizduokite konferencinį pokalbį, kai keli garsiakalbiai supa vieną kamerą. Dažnai susiduriame ten, kur ribotas kameros matymo kampas dažnai nesugeba pažvelgti į kalbantį asmenį. Šis aparatūros apribojimas žymiai pablogina vartotojo patirtį. Jei fotoaparatas gali žiūrėti į aktyvius garsiakalbius, pokalbio metu nuotolinė auditorija bus labiau įtraukta į pokalbį. Šiame projekte siūlome (prototipo) fotoaparato sistemą, kuri aptinka ir seka aktyvųjį garsiakalbį, pasukdama kamerą link garsiakalbio. Sistema naudoja ir vaizdinį, ir garso metodą. Kai fotoaparate aptinkami veidai, jis nustato kalbantį asmenį ir apskaičiuoja sukimosi kampą. Kai veidai neaptinkami dabartiniu kampu, sistema ieško garsiakalbio pagal atvykimo garso signalų kryptį.

1 žingsnis: medžiagos

„Adafruit Feather nRF52840 Express X“1

www.adafruit.com/product/4062

Elektreto mikrofono stiprintuvas - MAX4466 X 2

www.adafruit.com/product/1063

Mikro servo variklis X 1

www.adafruit.com/product/169

„Android“išmanusis telefonas X 1

2 žingsnis: Aparatūra - 3D spausdinimas

Techninė įranga - 3D spausdinimas
Techninė įranga - 3D spausdinimas
Techninė įranga - 3D spausdinimas
Techninė įranga - 3D spausdinimas

Norėdami greitai įgyvendinti, nusprendėme 3D spausdinti mums reikalingus korpusus. Yra du pagrindiniai gaubtų komponentai; patefonas ir išmaniųjų telefonų stovas. Mes naudojome patefoną iš šios nuorodos (https://www.thingiverse.com/thing:141287), kur apačioje yra „Arduino“dėklas ir besisukantis stalas, kurį galima prijungti prie servo variklio. Mes naudojome išmaniojo telefono stovą iš šios nuorodos (https://www.thingiverse.com/thing:2673050), kuris yra sulankstomas ir reguliuojamas kampu, kad būtų galima patogiai kalibruoti kampą. Žemiau esančiame paveikslėlyje parodytos 3D spausdintos dalys, surinktos kartu.

3 žingsnis: Aparatūra - elektroniniai komponentai

Techninė įranga - elektroniniai komponentai
Techninė įranga - elektroniniai komponentai
Techninė įranga - elektroniniai komponentai
Techninė įranga - elektroniniai komponentai

Yra keturi laidiniai komponentai; „Adafruit Feather“, du mikrofonai ir variklis. Dėl kompaktiškos pakuotės laidus litavome (pilki apskritimai) nenaudodami duonos lentos. Žemiau aprašoma schema ir tikrasis artefaktas.

4 žingsnis: programinė įranga

Mūsų sistema pirmiausia naudoja vizualinę veido atpažinimo informaciją, kad galėtų sekti garsiakalbį, nes ji yra tikslesnė. Kad plunksna gautų vaizdinę informaciją iš „Android“programos, kaip pagrindinį bendravimo metodą naudojame „Bluetooth Low Energy“.

Aptikus bet kokį veidą, programa apskaičiuoja kampą, kurį variklis turi pasukti, kad sufokusuotų garsiakalbį kadro centre. Mes suskaidėme galimus scenarijus ir elgėmės taip:

  1. Jei aptinkamas veidas ir jis kalba, jis apskaičiuoja garsiakalbių vidurį ir grąžina plunksnai santykinį kampą.
  2. Jei aptinkamas veidas (-ai), bet nė vienas iš jų nekalba, jis taip pat apskaičiuoja veidų vidurį ir atitinkamai grąžina kampą.
  3. Jei veidas neaptinkamas, sistema keičia garsiakalbių sekimo logiką iš vaizdinės į garsinę.

SPACS programinė įranga yra adresu

5 žingsnis: programinė įranga - garsas

Programinė įranga - garsas
Programinė įranga - garsas

Garsas (YH)

Norėdami rasti gaunamo garso šaltinį, pirmiausia pabandėme panaudoti laiko skirtumą tarp dviejų mikrofonų. Tačiau jis nebuvo toks tikslus, kaip tikėjomės, nes „Arduino Leopard“, kuriame išbandėme garso signalus, mėginių ėmimo dažnis (~ 900 Hz) buvo lėtas, todėl jis negalėjo nustatyti laiko skirtumo tarp 10 cm atstumu esančių mikrofonų.

Mes pakeitėme planą naudoti intensyvumo skirtumą tarp dviejų įvesties garso signalų. Dėl to plunksna paima du garso signalus ir apdoroja juos, kad nustatytų, iš kur sklinda garsas. Apdorojimą galima apibūdinti šiais veiksmais:

  1. Paimkite įvestis iš dviejų mikrofonų ir atimkite poslinkį, kad gautumėte signalų amplitudę.
  2. Sukaupkite absoliutines amplitudės vertes vienam MIC 500 imtuvų.
  3. Išsaugokite sukauptų verčių skirtumą eilėje, kurioje yra 5 lizdai.
  4. Grąžinkite eilių sumą kaip galutinę skirtumo vertę.
  5. Palyginkite galutinę vertę su slenksčiais, kad nuspręstumėte, iš kur sklinda garsas.

Mes nustatėme slenkstį, nubrėždami galutinę vertę įvairiomis aplinkybėmis, įskaitant garsą, sklindantį iš kairės ir dešinės. Be galutinės vertės slenksčių, 2 veiksme taip pat nustatėme kitą sukauptų amplitudžių vidurkį, kad filtruotume triukšmą.

6 veiksmas: programinė įranga - veido ir kalbėjimo aptikimas

Veido atpažinimui naudojome „Google“išleistą „ML Kit for Firebase“(https://firebase.google.com/docs/ml-kit). „ML Kit“teikia veido aptikimo API, kuri grąžina kiekvieno veido ribas ir jo orientyrus, įskaitant akis, nosį, ausis, skruostus ir įvairius burnos taškus. Aptikus veidus, programa stebi burnos judesius, kad nustatytų, ar žmogus kalba. Mes naudojame paprastą slenksčiu pagrįstą metodą, kuris užtikrina patikimą veikimą. Mes pasinaudojome tuo, kad kalbant žmogus burnos judesiai tampa didesni tiek horizontaliai, tiek vertikaliai. Mes apskaičiuojame vertikalų ir horizontalų burnos atstumą ir apskaičiuojame kiekvieno atstumo standartinį nuokrypį. Atstumas normalizuojamas pagal veido dydį. Didesnis standartinis nuokrypis rodo kalbėjimą. Šio požiūrio apribojimas yra tas, kad kiekviena veikla apima burnos judesius, įskaitant valgymą, gėrimą ar žiovavimą, gali būti pripažinta kalbančia. Tačiau jis turi mažą klaidingai neigiamų rodiklių skaičių.

7 žingsnis: programinė įranga - besisukantis variklis

Programinė įranga - besisukantis variklis
Programinė įranga - besisukantis variklis

Variklio sukimasis nebuvo toks paprastas, kaip tikėjomės dėl sukimosi greičio valdymo. Norėdami valdyti greitį, paskelbiame visuotinį skaitiklio kintamąjį, kuris leidžia varikliui suktis tik tada, kai kintamasis pasiekia tam tikrą vertę. Mes taip pat paskelbėme kitą visuotinį kintamąjį, nurodantį, ar variklis juda, kad mikrofonai žinotų, kad būtų išvengta variklio sukimosi skleidžiamo garso.

8 žingsnis: būsimi patobulinimai

Vienas iš apribojimų yra tas, kad variklis tam tikrais kampais ima svyruoti. Atrodo, kad variklis nėra pakankamai galingas, kad įveiktų sukimo momentą, sukuriamą sukant išmanųjį telefoną. Tai galima išspręsti naudojant galingesnį variklį arba pakoregavus išmaniojo telefono padėtį sukimosi centro link, kad sumažėtų sukimo momentas.

Garso garso krypties aptikimą galima patobulinti naudojant sudėtingesnį metodą. Mes norėtume išbandyti akustinį spindulių formavimo metodą, kad nustatytume gaunamo garso kryptį. Mes bandėme su garso signalų atvykimo laiku. Tačiau plunksnos mėginių ėmimo dažnis yra ribotas, kad būtų galima nustatyti laiko skirtumą, kai mikrofonai yra tik maždaug 10 cm atstumu.

Paskutinė trūkstama šio prototipo dalis yra tinkamumo naudoti įvertinimas. Vienas iš perspektyvių vertinimo būdų yra sistemos integravimas į esamą vaizdo skambučių platformą ir naudotojų atsakymų stebėjimas. Šie atsakymai padės patobulinti sistemą ir kitą šio prototipo kartojimą.

Rekomenduojamas: