Spisu treści:
- Krok 1: Materiały
- Krok 2: Sprzęt - Drukowanie 3D
- Krok 3: Sprzęt - komponenty elektroniczne
- Krok 4: Oprogramowanie
- Krok 5: Oprogramowanie - dźwięk
- Krok 6: Oprogramowanie - wykrywanie twarzy i mowy
- Krok 7: Oprogramowanie - silnik obrotowy
- Krok 8: Przyszłe ulepszenia
Wideo: System Camara z obsługą głośników (SPACS): 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Wyobraź sobie połączenie konferencyjne, w którym wielu głośników otacza jedną kamerę. Często spotykamy się, gdy ograniczony kąt widzenia kamery często nie pozwala spojrzeć na osobę, która mówi. To ograniczenie sprzętowe znacznie pogarsza wrażenia użytkownika. Jeśli kamera może patrzeć na aktywnych mówców, zdalna publiczność byłaby bardziej zaangażowana w rozmowę podczas rozmowy. W tym projekcie proponujemy (prototypowy) system kamer, który wykrywa i podąża za aktywnym mówcą, obracając kamerę w kierunku mówcy. System wykorzystuje zarówno podejście wizualne, jak i dźwiękowe. Gdy aparat wykryje twarze, określa osobę, która mówi, i oblicza kąt obrotu. Gdy twarze nie zostaną wykryte pod aktualnym kątem, system wyszuka mówcę na podstawie kierunku nadchodzących sygnałów dźwiękowych.
Krok 1: Materiały
Pióro Adafruit nRF52840 Express X 1
www.adafruit.com/product/4062
Elektretowy wzmacniacz mikrofonowy - MAX4466 X 2
www.adafruit.com/product/1063
Mikrosilnik serwo X 1
www.adafruit.com/product/169
Smartfon z Androidem X 1
Krok 2: Sprzęt - Drukowanie 3D
W celu szybkiej realizacji zdecydowaliśmy się na wydrukowanie w 3D potrzebnych nam obudów. Istnieją dwa główne komponenty obudów; gramofon i podstawka pod smartfona. Wykorzystaliśmy gramofon z tego linku (https://www.thingiverse.com/thing:141287), gdzie na spodzie znajduje się obudowa Arduino i stół obrotowy, który można połączyć z serwomotorem. Użyliśmy podstawki do smartfona z tego linku (https://www.thingiverse.com/thing:2673050), która jest składana i regulowana pod kątem, dzięki czemu możemy wygodnie skalibrować kąt. Poniższy rysunek przedstawia zmontowane części wydrukowane w 3D.
Krok 3: Sprzęt - komponenty elektroniczne
Istnieją cztery elementy przewodowe; Adafruit Feather, dwa mikrofony i silnik. Do kompaktowego opakowania przylutowaliśmy (szare kółka) przewody bez użycia płytki stykowej. Poniżej opisano schemat obwodu i rzeczywisty artefakt.
Krok 4: Oprogramowanie
Nasz system wykorzystuje przede wszystkim informacje wizualne z rozpoznawania twarzy, aby podążać za mówcą, ponieważ jest to dokładniejsze. Aby Feather pobierał informacje wizualne z aplikacji na Androida, jako główną metodę komunikacji używamy Bluetooth Low Energy.
Po wykryciu dowolnej twarzy aplikacja oblicza kąt, o który silnik musi się obrócić, aby ustawić ostrość głośnika na środku kadru. Zdekomponowaliśmy możliwe scenariusze i postępowaliśmy w następujący sposób:
- Jeśli twarze zostaną wykryte i mówią, oblicza środek głośników i zwraca względny kąt względem Pióra.
- Jeśli wykryte zostaną twarze, ale żadna z nich nie mówi, oblicza również punkt środkowy twarzy i odpowiednio zwraca kąt.
- Jeśli żadna twarz nie zostanie wykryta, system zmienia logikę śledzenia mówcy z wizualnej na dźwiękową.
Oprogramowanie SPACS znajduje się pod adresem
Krok 5: Oprogramowanie - dźwięk
Dźwięk (YH)
Aby zlokalizować źródło przychodzącego dźwięku, najpierw spróbowaliśmy wykorzystać różnicę czasu między dwoma mikrofonami. Nie było to jednak tak dokładne, jak się spodziewaliśmy, ponieważ częstotliwość próbkowania (~900 Hz) Arduino Leopard, w której testowaliśmy sygnały dźwiękowe, była niska, tak że nie mógł wychwycić różnicy czasu między mikrofonami oddalonymi od siebie o 10 cm.
Zmieniliśmy plan wykorzystania różnicy intensywności między dwoma wejściowymi sygnałami dźwiękowymi. W rezultacie pióro odbiera dwa sygnały dźwiękowe i przetwarza je, aby wykryć, skąd dochodzi dźwięk. Przetwarzanie można opisać za pomocą następujących kroków:
- Weź wejścia z dwóch mikrofonów i odejmij przesunięcie, aby uzyskać amplitudy sygnałów.
- Zgromadź wartości bezwzględne amplitud na MIC dla 500 przetworników.
- Zapisz różnicę skumulowanych wartości w kolejce posiadającej 5 slotów.
- Zwróć sumę kolejek jako ostateczną wartość różnicy.
- Porównaj ostateczną wartość z progami, aby zdecydować, skąd pochodzi dźwięk.
Ustaliliśmy próg, wykreślając ostateczną wartość w różnych okolicznościach, w tym dźwięk dochodzący z lewej i prawej strony. Oprócz progów dla wartości końcowej ustawiliśmy również inny próg dla średniej skumulowanych amplitud w kroku 2, aby odfiltrować szumy.
Krok 6: Oprogramowanie - wykrywanie twarzy i mowy
Do rozpoznawania twarzy wykorzystaliśmy ML Kit for Firebase wydany przez Google (https://firebase.google.com/docs/ml-kit). ML Kit zapewnia interfejs API do wykrywania twarzy, który zwraca obwiednię każdej twarzy i jej punkty orientacyjne, w tym oczy, nos, uszy, policzki i różne punkty na ustach. Po wykryciu twarzy aplikacja śledzi ruch ust, aby określić, czy dana osoba mówi. Stosujemy proste podejście oparte na progach, które zapewnia niezawodną wydajność. Wykorzystaliśmy fakt, że ruch ust zwiększa się zarówno w poziomie, jak iw pionie, gdy osoba mówi. Obliczamy odległość pionową i poziomą ust i obliczamy odchylenie standardowe dla każdej odległości. Odległość jest znormalizowana do wielkości twarzy. Większe odchylenie standardowe oznacza mówienie. Takie podejście ma ograniczenie polegające na tym, że każda czynność związana z ruchem ust, w tym jedzeniem, piciem lub ziewaniem, może być rozpoznana jako mówienie. Ale ma niski wskaźnik wyników fałszywie ujemnych.
Krok 7: Oprogramowanie - silnik obrotowy
Obroty silnika nie były tak proste, jak się spodziewaliśmy, ze względu na kontrolę prędkości obrotowej. Aby kontrolować prędkość, deklarujemy zmienną globalnego licznika, która pozwala silnikowi obracać się tylko wtedy, gdy zmienna osiągnie określoną wartość. Zadeklarowaliśmy również inną zmienną globalną wskazującą, czy silnik się porusza, aby poinformować mikrofony, aby uniknąć dźwięku pochodzącego z obracania się silnika.
Krok 8: Przyszłe ulepszenia
Jednym z ograniczeń jest to, że silnik chybocze się pod pewnymi kątami. Wygląda na to, że silnik nie jest wystarczająco mocny, aby pokonać moment obrotowy generowany przez obracanie smartfona. Można to rozwiązać, stosując mocniejszy silnik lub dostosowując pozycję smartfona do środka obrotu, aby zmniejszyć moment obrotowy.
Wykrywanie kierunku dźwięku w oparciu o dźwięk można ulepszyć za pomocą bardziej wyrafinowanej metody. Chcielibyśmy wypróbować metodę kształtowania wiązki akustycznej, aby określić kierunek dochodzącego dźwięku. Próbowaliśmy z czasem nadejścia sygnałów audio. Jednak częstotliwość próbkowania Pióra jest ograniczona do wykrycia różnicy czasu, gdy mikrofony są oddalone tylko o około 10 cm.
Ostatnim brakującym elementem tego prototypu jest ocena użyteczności. Obiecującym sposobem oceny jest integracja systemu z istniejącą platformą wideorozmów i obserwacja reakcji użytkowników. Te odpowiedzi pomogą ulepszyć system i wykonać kolejną iterację tego prototypu.
Zalecana:
Zmień przenośny zestaw głośników ATGAME Sega Genesis w bezprzewodowy zestaw głośników.: 13 kroków (ze zdjęciami)
Zmień przenośny zestaw głośników ATGMAMES Portable Sega Genesis w bezprzewodowy zestaw głośników.: Jeśli przeczytałeś moją pierwszą instrukcję, jak zmodyfikować nową, lepszą baterię do przenośnej baterii Sega Genesis ATGAMES, możesz się zastanawiać: P: Co bym zrobił ze wszystkimi ta nowa odkryta moc? Odp.: Zmodyfikuj ATGAME Portable Sega Genesis w bezprzewodowy
IoT APIS V2 - autonomiczny zautomatyzowany system nawadniania roślin z obsługą IoT: 17 kroków (ze zdjęciami)
IoT APIS V2 – Autonomiczny zautomatyzowany system nawadniania roślin z obsługą IoT: Ten projekt jest ewolucją mojego poprzedniego: APIS – zautomatyzowanego systemu nawadniania roślin Korzystam z APIS od prawie roku i chciałem ulepszyć poprzedni projekt: Możliwość zdalnie monitorować instalację. Oto jak
Modułowy, zasilany przez USB system głośników Bluetooth: 7 kroków (ze zdjęciami)
Modułowy system głośników Bluetooth zasilany przez USB: Dowiadujemy się, jak zbudować prosty, ale bardzo przydatny system głośników Bluetooth zasilany przez USB, który wykorzystuje obudowę modułową. Możesz to zwiększyć i dodać wiele głośników, aby stworzyć soundbar. Jest nawet miejsce na dodanie baterii do systemu, aby stworzyć t
Domowy system monitorowania pogody IoT z obsługą aplikacji na Androida (Mercury Droid): 11 kroków
Domowy system monitorowania pogody IoT z obsługą aplikacji na Androida (Mercury Droid): WprowadzenieMercury Droid to jeden rodzaj IoT (Internet rzeczy) Wbudowany system oparty na aplikacji mobilnej Mercury Droid na Androida. Który jest w stanie mierzyć & monitorować aktywność pogody w domu. to bardzo tani system monitoringu pogody w domu
Dodaj lampy Beat do przenośnych głośników lub głośników komputerowych: 5 kroków
Dodaj lampy Beat do swoich przenośnych głośników lub głośników komputerowych…: czy kiedykolwiek chciałeś, aby Twoje małe przenośne głośniki lub głośniki komputerowe wyglądały tak samo, jakbyś był w klubie??? cóż, w tym instruktażowym pokażę, jak uzyskać przemówienia w witrynie i dźwięku klubu?