Tabla de contenido:
- Paso 1: Materiales
- Paso 2: Hardware - Impresión 3D
- Paso 3: Hardware - Componentes electrónicos
- Paso 4: software
- Paso 5: Software - Sonido
- Paso 6: Software - Detección de rostro y habla
- Paso 7: Software - Motor giratorio
- Paso 8: Mejoras futuras
Video: Sistema de cámara consciente del altavoz (SPACS): 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Imagine una llamada de conferencia en la que varios oradores rodean una cámara. A menudo nos encontramos con situaciones en las que el ángulo de visión limitado de una cámara a menudo no logra mirar a la persona que habla. Esta limitación de hardware degrada significativamente la experiencia del usuario. Si la cámara puede mirar a los oradores activos, la audiencia remota estaría más involucrada en una conversación durante la llamada. En este proyecto, proponemos un sistema de cámara (prototipo) que detecta y sigue al hablante activo girando la cámara hacia el hablante. El sistema utiliza un enfoque basado en audio y visual. Cuando se detectan rostros desde la cámara, determina la persona que habla y calcula el ángulo para rotar. Cuando las caras no se detectan en el ángulo actual, el sistema busca al hablante en función de la dirección de las señales de audio de llegada.
Paso 1: Materiales
Pluma de Adafruit nRF52840 Express X 1
www.adafruit.com/product/4062
Amplificador de micrófono electret - MAX4466 X 2
www.adafruit.com/product/1063
Micro servomotor X 1
www.adafruit.com/product/169
Teléfono inteligente Android X 1
Paso 2: Hardware - Impresión 3D
Para una implementación rápida, decidimos imprimir en 3D los gabinetes que necesitamos. Hay dos componentes principales para envolventes; un tocadiscos y un soporte para teléfono inteligente. Usamos el tocadiscos de este enlace (https://www.thingiverse.com/thing:141287), donde proporciona una carcasa Arduino en la parte inferior y una mesa giratoria que se puede conectar con un servomotor. Usamos un soporte para teléfono inteligente de este enlace (https://www.thingiverse.com/thing:2673050), que es plegable y ajustable en ángulo, de modo que nos permite calibrar el ángulo convenientemente. La siguiente figura muestra las piezas impresas en 3D ensambladas.
Paso 3: Hardware - Componentes electrónicos
Hay cuatro componentes cableados; Adafruit Feather, dos micrófonos y un motor. Para el empaque compacto, soldamos (círculos grises) los cables sin usar una protoboard. A continuación se describe el diagrama del circuito y el artefacto real.
Paso 4: software
Nuestro sistema utiliza principalmente la información visual del reconocimiento facial para seguir al hablante, ya que es más preciso. Para que el Feather obtenga información visual de la aplicación de Android, usamos Bluetooth Low Energy como el principal método de comunicación.
Cuando se detecta cualquier rostro, la aplicación calcula el ángulo que el motor necesita para girar para enfocar el altavoz en el centro del encuadre. Descompusimos los posibles escenarios y los manejamos de la siguiente manera:
- Si se detectan rostros y hablan, calcula el punto medio de los altavoces y devuelve el ángulo relativo a la pluma.
- Si se detectan caras y ninguna de ellas habla, también calcula el punto medio de las caras y devuelve el ángulo en consecuencia.
- Si no se detecta ningún rostro, el sistema cambia la lógica de seguimiento del hablante de visual a audio.
El software SPACS se encuentra en
Paso 5: Software - Sonido
Sonido (YH)
Para localizar la fuente del sonido entrante, primero intentamos usar la diferencia de tiempo entre los dos micrófonos. Pero no fue tan preciso como esperábamos, ya que la frecuencia de muestreo (~ 900Hz) de Arduino Leopard, donde probamos las señales de sonido, era tan lenta que no puede captar la diferencia de tiempo entre micrófonos separados por 10 cm.
Cambiamos el plan para usar la diferencia de intensidad entre las dos señales de sonido de entrada. Como resultado, la pluma toma dos señales de sonido y las procesa para detectar de dónde venía el sonido. El procesamiento se puede describir mediante los siguientes pasos:
- Tome las entradas de dos micrófonos y reste el desplazamiento para obtener las amplitudes de las señales.
- Acumule los valores absolutos de las amplitudes por MIC para 500 pastillas.
- Guarde la diferencia de los valores acumulados en la cola que tiene 5 ranuras.
- Devuelve la suma de las colas como valor de diferencia final.
- Compare el valor final con los umbrales para decidir de dónde proviene el sonido.
Encontramos el umbral trazando el valor final en varias circunstancias, incluido el sonido procedente de izquierda y derecha. Además de los umbrales para el valor final, también establecemos otro umbral para la media de las amplitudes acumuladas en el paso 2 para filtrar los ruidos.
Paso 6: Software - Detección de rostro y habla
Para el reconocimiento facial, empleamos ML Kit para Firebase lanzado por Google (https://firebase.google.com/docs/ml-kit). ML Kit proporciona la API de detección de rostros que devuelve el cuadro delimitador de cada rostro y sus puntos de referencia, incluidos los ojos, la nariz, las orejas, las mejillas y diferentes puntos de la boca. Una vez que se detectan las caras, la aplicación rastrea el movimiento de la boca para determinar si la persona está hablando. Usamos un enfoque simple basado en umbrales que produce un rendimiento confiable. Aprovechamos el hecho de que el movimiento de la boca se hace más grande tanto horizontal como verticalmente cuando una persona habla. Calculamos la distancia vertical y horizontal de la boca y calculamos la desviación estándar para cada distancia. La distancia se normaliza al tamaño de la cara. La desviación estándar más grande indica hablar. Este enfoque tiene la limitación de que toda actividad que implique el movimiento de la boca, como comer, beber o bostezar, puede reconocerse como habla. Pero tiene una tasa baja de falsos negativos.
Paso 7: Software - Motor giratorio
La rotación del motor no fue tan sencilla como esperábamos debido al control de la velocidad de rotación. Para controlar la velocidad, declaramos una variable de contador global tal que permite que el motor gire solo cuando la variable alcanza un cierto valor. También declaramos otra variable global que indica si el motor se está moviendo para avisar a los micrófonos y evitar el sonido proveniente de la rotación del motor.
Paso 8: Mejoras futuras
Una de las limitaciones es que el motor se tambalea en ciertos ángulos. Parece que el motor no es lo suficientemente potente para superar el par generado al girar el teléfono inteligente. Puede resolverse utilizando un motor más potente o ajustando la posición del teléfono inteligente hacia el centro de la rotación para reducir el par.
La detección de la dirección del sonido basada en audio podría mejorarse con un método más sofisticado. Nos gustaría probar un enfoque de formación de haz acústico para determinar la dirección del sonido entrante. Lo hemos probado con la hora de llegada de las señales de audio. Pero, la frecuencia de muestreo del Feather está limitada para detectar la diferencia de tiempo cuando los micrófonos están a solo unos 10 cm de distancia.
La última pieza que falta de este prototipo es la evaluación de usabilidad. Una forma prometedora de evaluar es integrar el sistema con la plataforma de videollamadas existente y observar las respuestas de los usuarios. Esas respuestas ayudarán a mejorar el sistema y realizar la próxima iteración de este prototipo.
Recomendado:
Desmontaje del sable inteligente remanente y reemplazo del altavoz: 7 pasos
Desmontaje del sable inteligente remanente y reemplazo del altavoz: Hola a todos, el primer tutorial aquí. Solo quería explicar cómo desmontar un Sable Inteligente Remnant Star Wars Light Sabre. El Smart Sabre en particular que desmonté tenía un altavoz fundido, por lo que este tutorial también describe el reemplazo del altavoz
INSTALACIÓN DE REEMPLAZO DEL BOTÓN TRASERO DEL BOTÓN TRASERO DEL CERRADURA DEL PORTÓN TRASERO DE RENAULT SCENIC / MEGANE: 3 Pasos
INSTALACIÓN DE REEMPLAZO DEL BOTÓN TRASERO DEL BOTÓN DE LA PUERTA TRASERA DE RENAULT SCENIC / MEGANE: La junta tórica de mala calidad que mantiene el botón del maletero en su lugar se desgasta y se pierde el botón del maletero del vehículo. La única solución de Renaults para esto es un mecanismo de bloqueo de arranque de reemplazo completo que solo fallará nuevamente y costará
Cómo convertir cualquier ALTAVOZ en ALTAVOZ BLUETOOTH: 5 pasos
Cómo convertir cualquier ALTAVOZ en ALTAVOZ BLUETOOTH: Si tiene un sistema de cine en casa antiguo como yo, entonces ha descubierto que falta en su sistema una opción de conectividad muy popular, llamada Bluetooth. Sin esta función, tienes que enfrentarte al lío de cables de la conexión AUX normal y, por supuesto, si
Convierta cualquier altavoz en un altavoz Bluetooth: 4 pasos
Convierta cualquier altavoz en un altavoz Bluetooth: hace varios años era común que los altavoces portátiles tuvieran un conector de 3,5 mm y funcionaran con pilas AA. Según los estándares actuales, está un poco desactualizado, especialmente la batería, ya que todos los dispositivos de hoy en día tienen una batería recargable. El conector de audio está st
Construcción del altavoz del monitor de bricolaje: 6 pasos
DIY Monitor Speaker Build: hecho por Sandor van Veen para la escuela de arte de Rotterdam, Holanda. Consulte nuestro blog The Make Class. Este es un instructivo sobre cómo hacer un altavoz de monitor a partir de un altavoz de automóvil. Una forma económica de hacer algunos altavoces solo para deshacerse de esos impresionantes. basura informática. Yo G