Tartalomjegyzék:

Hangszóró-tudatos Camara rendszer (SPACS): 8 lépés
Hangszóró-tudatos Camara rendszer (SPACS): 8 lépés

Videó: Hangszóró-tudatos Camara rendszer (SPACS): 8 lépés

Videó: Hangszóró-tudatos Camara rendszer (SPACS): 8 lépés
Videó: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, November
Anonim
Image
Image
Hardver - 3D nyomtatás
Hardver - 3D nyomtatás

Képzeljen el egy konferenciahívást, ahol több hangszóró veszi körül egy kamerát. Gyakran találkozunk azzal, hogy a kamera korlátozott látószöge gyakran nem képes a beszélő személyre nézni. Ez a hardverkorlátozás jelentősen rontja a felhasználói élményt. Ha a kamera képes az aktív hangszórókra nézni, akkor a távoli közönség jobban bekapcsolódik a beszélgetésbe a hívás során. Ebben a projektben egy (prototípus) kamerarendszert javasolunk, amely érzékeli és követi az aktív hangszórót úgy, hogy a kamerát a hangszóró felé fordítja. A rendszer mind vizuális, mind hang alapú megközelítést alkalmaz. Amikor arcokat észlel a fényképezőgépről, ez meghatározza a beszélő személyt, és kiszámítja a forgatási szöget. Ha az arcokat nem érzékeli az aktuális szögben, a rendszer a hangszórót az érkező hangjelek iránya alapján keresi.

1. lépés: Anyagok

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Elektret mikrofonerősítő - MAX4466 X 2

www.adafruit.com/product/1063

Mikroszervó motor X 1

www.adafruit.com/product/169

Android okostelefon X 1

2. lépés: Hardver - 3D nyomtatás

Hardver - 3D nyomtatás
Hardver - 3D nyomtatás
Hardver - 3D nyomtatás
Hardver - 3D nyomtatás

A gyors megvalósítás érdekében úgy döntöttünk, hogy 3D-n nyomtatjuk ki a szükséges burkolatokat. A házaknak két fő eleme van; forgótányér és okostelefon -állvány. A lemezjátszót ebből a linkből (https://www.thingiverse.com/thing:141287) használtuk, ahol alul Arduino tokot és egy szervo motorral összekapcsolható forgó asztalt biztosít. Ebből a linkből (https://www.thingiverse.com/thing:2673050) okostelefon állványt használtunk, amely összecsukható és szögben állítható, így lehetővé teszi a szög kényelmes kalibrálását. Az alábbi ábra a 3D nyomtatott alkatrészeket mutatja össze.

3. lépés: Hardver - elektronikus alkatrészek

Hardver - Elektronikus alkatrészek
Hardver - Elektronikus alkatrészek
Hardver - Elektronikus alkatrészek
Hardver - Elektronikus alkatrészek

Négy vezetékes alkatrész van; Adafruit toll, két mikrofon és egy motor. A kompakt csomagoláshoz forrasztottuk (szürke karikák) a vezetékeket kenyértábla használata nélkül. Az alábbiakban a kapcsolási rajzot és a tényleges műterméket ismertetjük.

4. lépés: Szoftver

Rendszerünk elsősorban az arcfelismerés vizuális információit használja a hangszóró követésére, mivel azok pontosabbak. Annak érdekében, hogy a toll vizuális információkat kapjon az Android alkalmazásból, a Bluetooth Low Energy mint fő kommunikációs módszert használjuk.

Ha bármilyen arcot észlel, az alkalmazás kiszámítja azt a szöget, amelyet a motornak el kell forgatnia ahhoz, hogy a hangsugárzót a keret közepére fókuszálja. Lebontottuk a lehetséges forgatókönyveket, és az alábbiak szerint kezeltük:

  1. Ha arcot észlel és beszél, akkor kiszámítja a hangszórók középpontját, és visszaadja a relatív szöget a tollhoz.
  2. Ha arcot észlel, de egyikük sem beszél, akkor kiszámítja az arcok középpontját, és ennek megfelelően adja vissza a szöget.
  3. Ha nem észlel arcot, a rendszer megváltoztatja a hangszórókövetési logikát a vizuálisról az audiora.

A SPACS szoftver a https://github.com/yhoonkim/cse599h-fp címen található.

5. lépés: Szoftver - hang

Szoftver - Hang
Szoftver - Hang

Hang (YH)

A bejövő hang forrásának megkereséséhez először a két mikrofon közötti időkülönbséget próbáltuk kihasználni. De nem volt olyan pontos, mint vártuk, mivel az Arduino Leopard mintavételezési gyakorisága (~ 900 Hz), ahol a hangjeleket teszteltük, olyan lassú volt, hogy nem tudta felvenni az időkülönbséget a 10 cm-re lévő mikrofonok között.

Módosítottuk a tervet, hogy a két bemeneti hangjel közötti intenzitáskülönbséget használjuk. Ennek eredményeként a toll két hangjelet vesz fel, és feldolgozza, hogy felismerje, honnan jött a hang. A feldolgozás a következő lépésekkel írható le:

  1. Vegye ki a bemeneteket két mikrofonból, és vonja le az eltolást, hogy megkapja a jelek amplitúdóját.
  2. Gyűjtse össze az amplitúdók MIC -re eső abszolút értékeit 500 hangszedő esetén.
  3. Mentse a felhalmozott értékek különbségét az 5 réses sorba.
  4. Adja vissza a sorok összegét végső különbségként.
  5. Hasonlítsa össze a végső értéket a küszöbértékekkel annak eldöntéséhez, hogy a hang honnan származik.

A küszöböt úgy találtuk meg, hogy a végső értéket különböző körülmények között ábrázoltuk, beleértve a balról és jobbról érkező hangot. A végső érték küszöbértékei mellett egy másik küszöböt is beállítottunk a halmozott amplitúdók átlagához a 2. lépésben, hogy kiszűrjük a zajokat.

6. lépés: Szoftver - Arc- és beszédfelismerés

Az arcfelismeréshez a Google által kiadott ML Kit for Firebase alkalmazást használtuk (https://firebase.google.com/docs/ml-kit). Az ML Kit biztosítja az arcfelismerő API -t, amely visszaadja az egyes arcok határoló dobozát és annak nevezetességeit, beleértve a szemeket, az orrot, a füleket, az arcokat és a száj különböző pontjait. Az arcok észlelése után az alkalmazás követi a szájmozgást, hogy megállapítsa, beszél -e a személy. Egyszerű küszöb-alapú megközelítést alkalmazunk, amely megbízható teljesítményt nyújt. Kihasználtuk azt a tényt, hogy a szájmozgás vízszintesen és függőlegesen is nagyobb lesz, ha valaki beszél. Kiszámítjuk a száj függőleges és vízszintes távolságát, és kiszámítjuk a szórást minden távolságra. A távolság normalizálva van az arc méretével. A nagyobb szórás jelzi a beszédet. Ennek a megközelítésnek az a korlátja, hogy minden tevékenység magában foglalja a szájmozgást, beleértve az evést, ivást vagy ásítást is, és felismerhető a beszéd. Ennek azonban alacsony a hamis negatív aránya.

7. lépés: Szoftver - Forgó motor

Szoftver - Forgó motor
Szoftver - Forgó motor

A motor forgása nem volt olyan egyszerű, mint vártuk a forgási sebesség szabályozása miatt. A sebesség szabályozásához olyan globális számlálóváltozót deklarálunk, amely lehetővé teszi, hogy a motor csak akkor forogjon, ha a változó eléri egy bizonyos értéket. Egy másik globális változót is bejelentettünk, amely jelzi, hogy a motor mozog -e, hogy a mikrofonok tudassák, hogy elkerülje a motor forgásából származó hangot.

8. lépés: Jövőbeli fejlesztések

Az egyik korlátozás az, hogy a motor bizonyos szögben inogni kezd. Úgy tűnik, hogy a motor nem elég erős ahhoz, hogy legyőzze az okostelefon forgatásával keletkező nyomatékot. Megoldható egy erősebb motor használatával, vagy az okostelefon helyzetének a forgás közepe felé történő beállításával a nyomaték csökkentése érdekében.

Az audio-alapú hangirány-érzékelés kifinomultabb módszerrel javítható. Szeretnénk kipróbálni egy akusztikus sugárformázó megközelítést a bejövő hang irányának meghatározásához. Megpróbáltuk az audio jelek érkezési idejével. A toll mintavételezési gyakorisága azonban korlátozott az időkülönbség észlelésére, amikor a mikrofonok csak körülbelül 10 cm távolságra vannak.

Ennek a prototípusnak az utolsó hiányzó darabja a használhatóság értékelése. Az értékelés egyik ígéretes módja a rendszer integrálása a meglévő videohívási platformra, és a felhasználók válaszainak megfigyelése. Ezek a válaszok segítenek a rendszer fejlesztésében és a prototípus következő iterációjában.

Ajánlott: