Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Stelt u zich een conferentiegesprek voor waarbij meerdere luidsprekers één camera omringen. We komen vaak tegen dat de beperkte kijkhoek van een camera de persoon die spreekt vaak niet aankijkt. Deze hardwarebeperking verslechtert de gebruikerservaring aanzienlijk. Als de camera naar actieve luidsprekers kan kijken, zou het verre publiek tijdens het gesprek meer betrokken zijn bij een gesprek. In dit project stellen we een (prototype) camerasysteem voor dat de actieve spreker detecteert en volgt door de camera naar de spreker te draaien. Het systeem maakt gebruik van zowel een visuele als een audiogebaseerde benadering. Wanneer gezichten worden gedetecteerd door de camera, bepaalt deze de persoon die spreekt en berekent de hoek om te draaien. Wanneer de gezichten niet worden gedetecteerd onder de huidige hoek, zoekt het systeem naar de spreker op basis van de richting van de binnenkomende audiosignalen.
Stap 1: Materialen
Adafruit Feather nRF52840 Express X 1
www.adafruit.com/product/4062
Electret microfoonversterker - MAX4466 X 2
www.adafruit.com/product/1063
Micro servomotor X 1
www.adafruit.com/product/169
Android-smartphone X 1
Stap 2: Hardware - 3D-printen
Voor een snelle implementatie hebben we besloten om de behuizingen die we nodig hebben te 3D-printen. Er zijn twee hoofdcomponenten voor behuizingen; een draaitafel en een smartphonestandaard. We gebruikten de draaitafel van deze link (https://www.thingiverse.com/thing:141287), waar het een Arduino-behuizing aan de onderkant biedt en een draaitafel die kan worden aangesloten met een servomotor. We gebruikten een smartphonestandaard van deze link (https://www.thingiverse.com/thing:2673050), die opvouwbaar en in hoek verstelbaar is, zodat we de hoek gemakkelijk kunnen kalibreren. De onderstaande afbeelding toont de 3D-geprinte onderdelen die aan elkaar zijn gemonteerd.
Stap 3: Hardware - Elektronische componenten
Er zijn vier bedrade componenten; Adafruit Feather, twee microfoons en een motor. Voor de compacte verpakking hebben we de draden gesoldeerd (grijze cirkels) zonder een breadboard te gebruiken. Hieronder wordt het schakelschema en het eigenlijke artefact beschreven.
Stap 4: Software
Ons systeem gebruikt voornamelijk de visuele informatie van de gezichtsherkenning om de spreker te volgen, omdat dit nauwkeuriger is. Om ervoor te zorgen dat de Feather visuele informatie van de Android-app krijgt, gebruiken we Bluetooth Low Energy als de belangrijkste communicatiemethode.
Wanneer een gezicht wordt gedetecteerd, berekent de app de hoek die de motor moet draaien om de luidspreker op het midden van het frame te concentreren. We hebben de mogelijke scenario's ontleed en als volgt te werk gegaan:
- Als gezicht(en) worden gedetecteerd en spreken, berekent het het middelpunt van de luidsprekers en retourneert het de relatieve hoek naar de veer.
- Als gezicht(en) worden gedetecteerd en geen van hen spreekt, berekent het ook het middelpunt van de gezichten en retourneert de hoek dienovereenkomstig.
- Als er geen gezicht wordt gedetecteerd, verandert het systeem de logica voor het volgen van de luidsprekers van visueel naar audio.
SPACS-software bevindt zich op
Stap 5: Software - Geluid
Geluid (YH)
Om de bron van binnenkomend geluid te lokaliseren, hebben we eerst geprobeerd het tijdsverschil tussen de twee microfoons te gebruiken. Maar het was niet zo nauwkeurig als we hadden verwacht, aangezien de bemonsteringsfrequentie (~900 Hz) van Arduino Leopard, waar we de geluidssignalen testten, zo traag was dat het het tijdsverschil tussen microfoons van 10 cm uit elkaar niet kan oppikken.
We hebben het plan gewijzigd om het intensiteitsverschil tussen de twee ingangsgeluidssignalen te gebruiken. Als gevolg hiervan neemt de veer twee geluidssignalen en verwerkt deze om te detecteren waar het geluid vandaan kwam. De verwerking kan worden beschreven door de volgende stappen:
- Neem de ingangen van twee microfoons en trek de offset af om de amplitudes van de signalen te krijgen.
- Verzamel de absolute waarden van de amplitudes per MIC voor 500 pickups.
- Sla het verschil van de geaccumuleerde waarden op in de wachtrij met 5 slots.
- Retourneer de som van de wachtrijen als de uiteindelijke verschilwaarde.
- Vergelijk de uiteindelijke waarde met drempels om te bepalen waar het geluid vandaan kwam.
We hebben de drempel gevonden door de uiteindelijke waarde in verschillende omstandigheden uit te zetten, waaronder geluid dat van links en rechts komt. Bovenop de drempels voor de uiteindelijke waarde, hebben we in stap 2 ook een andere drempel ingesteld voor het gemiddelde van de geaccumuleerde amplituden om de ruis eruit te filteren.
Stap 6: Software - Gezichts- en spraakdetectie
Voor de gezichtsherkenning hebben we ML Kit for Firebase gebruikt, uitgebracht door Google (https://firebase.google.com/docs/ml-kit). ML Kit biedt de gezichtsdetectie-API die het selectiekader van elk gezicht en de bijbehorende oriëntatiepunten retourneert, inclusief ogen, neus, oren, wangen en verschillende punten op een mond. Zodra gezichten zijn gedetecteerd, volgt de app de mondbeweging om te bepalen of de persoon spreekt. We gebruiken een eenvoudige, op drempels gebaseerde aanpak die betrouwbare prestaties oplevert. We hebben gebruik gemaakt van het feit dat de mondbeweging zowel horizontaal als verticaal groter wordt wanneer een persoon spreekt. We berekenen de verticale en horizontale afstand van de mond en berekenen voor elke afstand de standaarddeviatie. De afstand wordt genormaliseerd naar de grootte van het gezicht. Een grotere standaarddeviatie duidt op spreken. Deze benadering heeft de beperking dat elke activiteit waarbij de mondbeweging betrokken is, inclusief eten, drinken of geeuwen, kan worden herkend als spreken. Maar het heeft een laag percentage valse negatieven.
Stap 7: Software - Roterende motor
De motorrotatie was niet zo eenvoudig als we hadden verwacht vanwege de controle van de rotatiesnelheid. Om de snelheid te regelen, declareren we een globale tellervariabele zodat de motor alleen kan draaien wanneer de variabele een bepaalde waarde bereikt. We hebben ook een andere globale variabele gedeclareerd die aangeeft of de motor beweegt om microfoons te laten weten, zodat het geluid afkomstig van de motorrotatie kan worden vermeden.
Stap 8: Toekomstige verbeteringen
Een van de beperkingen is dat de motor onder bepaalde hoeken gaat wiebelen. Het lijkt erop dat de motor niet krachtig genoeg is om het koppel te overwinnen dat wordt gegenereerd door het draaien van de smartphone. Het kan worden opgelost door een krachtigere motor te gebruiken of de positie van de smartphone naar het midden van de rotatie aan te passen om het koppel te verminderen.
Op audio gebaseerde detectie van geluidsrichting kan worden verbeterd met een meer geavanceerde methode. We willen een akoestische bundelvormende benadering proberen om de richting van het inkomende geluid te bepalen. We hebben geprobeerd met de aankomsttijd van de audiosignalen. Maar de bemonsteringsfrequentie van de Feather is beperkt om het tijdsverschil te detecteren wanneer de microfoons slechts ongeveer 10 cm verwijderd zijn.
Het laatste ontbrekende onderdeel van dit prototype is de evaluatie van de bruikbaarheid. Een veelbelovende manier om te evalueren is het systeem te integreren met het bestaande videogesprekplatform en de reacties van gebruikers te observeren. Die reacties zullen helpen om het systeem te verbeteren en de volgende iteratie van dit prototype te maken.
Aanbevolen:
Audio Speaker Makeover: DIY (Made in Fusion 360): 18 stappen (met afbeeldingen)
Audio Speaker Makeover: DIY (Made in Fusion 360): ik heb een paar luidsprekers die ik 2 ½ jaar geleden heb gemaakt. Maar de boxen van de luidsprekers zijn ongeorganiseerd en nemen veel ruimte in beslag. Daarom wil ik mijn audiospeaker een make-over geven door de doos of het hoesje in 3D Printing te maken. De speaker is alleen goed voor computer
DIY Audio Speaker 2.1-systeem: 10 stappen
DIY Audio Speaker 2.1-systeem: 4 maanden sinds ik het idee had, zijn de dozen klaar om in mijn allereerste instructable te verschijnen. Het begon eigenlijk met het project omdat bestaande (zeer goedkope) 5.1-apparatuur helaas zelden werd gebruikt. Te ingewikkeld met 2 afstandsbedieningen etc. De versterker
Diy Speaker 2-weg: 6 stappen (met afbeeldingen)
Diy Speaker 2 Way: Deze Instructable laat je zien hoe je een 2-weg monokanaals luidspreker bouwt. Alle elektrische componenten kunnen op Amazon worden gekocht via de onderstaande gelieerde links. De totale kosten van de build kwamen echter uit op ~ $ 160; de elektrische componenten k
Quad Speaker Synthesizer: 10 stappen (met afbeeldingen)
Quad Speaker Synthesizer: Hier is een eenvoudige synthesizer met:22 toetsenvolumeregelingtoonveranderingverschillende geluidseffectenspan (voor de luidsprekers)vier luidsprekerslicht (voor de luidsprekers)Iedereen kan het bouwen, behalve de elektronische componenten, al het andere is thuis te vinden
Skull Speaker: 6 stappen (met afbeeldingen)
Skull Speaker: We moesten speakers maken voor een DT-les, dus besloot ik een speaker/gitaarversterker te maken die eruit zou zien als een schedel en een metalen thema zou hebben. Dus hier is het proces om het te maken: