Quiere una matriz de minimicrófonos USB. ¿Es posible?

He estado aprendiendo mucho sobre la formación de haces adaptativos y he estado jugando con varios sims en MATLAB, etc.

Pero, ¿qué mejor manera de entender algo, de entenderlo de verdad, que jugar con todo el sistema?

Con este fin, me gustaría encontrar (¿construir?) una matriz de micrófonos conectados por USB, con, digamos, 5 micrófonos más o menos. Podrían adquirir señales del entorno (es decir, donde sea que esté mi computadora portátil), y luego podría tomar esas señales y procesarlas en MATLAB o lo que sea.

Realmente preferiría no construir todo, así que espero que alguien ya haya usado arreglos de micrófonos conectados por USB en el pasado y pueda apuntar en la dirección correcta.

Los micrófonos no necesitan ser nada sofisticados cuando se trata de resoluciones de bits de su A/D, etc. Los micrófonos KISS de calidad respetable funcionarán bien.

Respuestas (2)

La cámara de video Playstation Eye tiene una matriz de micrófono lineal de 4 elementos. Proporciona muestras de 16 bits a 48 KHz con una SNR de 90 dB. Es fácil de usar: se enumera como un dispositivo de audio USB estándar con cuatro canales separados.

Para ver un ejemplo de cómo usarlo de esta manera, consulte: Pruebas de audio de 4 canales de PS3 Eye en Ubuntu Karmic

@Mohammad Esta sería probablemente una buena solución si está feliz de limitarse a cuatro canales. Cuatro canales le darán una ganancia de formación de haces de unos 12dB. La desventaja es que debido al hecho de que la extensión total de la matriz es bastante pequeña, tendrá un punto focal de formación de haces bastante grande: no puede separar las fuentes de sonido que están demasiado juntas. Por lo tanto, su aplicación principal para esta matriz probablemente no sea aislar fuentes de sonido, sino rastrear una sola fuente de sonido a través del espacio. Es decir, sé dónde está parada una persona por su voz...
@ArikRaffaelFunke Hmm, no sé lo suficiente sobre la formación de haces adaptativos para saber qué es un punto focal. :-) Sin embargo, creo que todavía podría separar fuentes usando ICA no instantáneo. (en realidad me estoy centrando en ICA en este momento). Además, sí, 4 no es tanto como esperaba... Pero tal vez esto pueda ser un comienzo...c

Después de haber trabajado extensamente en la formación de haces adaptativos, realmente evitaría piratear algo para esto hasta que tuviera algo de experiencia. (Nota: Las soluciones profesionales con alrededor de 60 canales cuestan alrededor de 100k€. Con muchos canales tu resolución espacial mejora mucho, pero solo obtienes una cantidad limitada de información a través de un puerto USB...)

Para una formación de haces fiable, es esencial que todos los micrófonos utilicen la misma base de tiempo. La forma más fácil de lograr esto es con una tarjeta de sonido USB externa con múltiples canales de entrada. Aunque esos no son realmente baratos. ¿Has echado un vistazo a lo que se puede encontrar en eBay?

Una alternativa es sacrificar la base de tiempo común utilizando varias tarjetas de sonido USB con, por ejemplo, dos canales cada una. Sin embargo, deberá calibrar su sistema de adquisición. Esto realmente no es tan difícil como parece:

Para calibrar, configura su matriz y produce un sonido corto (por ejemplo, un crujido/aplauso/etc.) a una distancia de su matriz que es del orden de la extensión de su matriz. Luego graba este sonido y usa Matlab o similar para calcular la correlación cruzada entre el clap/crack/etc. en los diferentes canales. Esto le dará una lista de compensaciones de tiempo que necesita aplicar a sus canales para alinearlos antes de enviar los datos a su algoritmo de formación de haces.

Para explorar la formación de haces adaptable, este es probablemente el camino a seguir, a menos que pueda hacer una ganga en una tarjeta de sonido multicanal.


Editar 1

Esta edición es para responder a las preguntas planteadas en los comentarios.

La idea básica de la formación de haces de demora y suma es aplicar demoras a diferentes canales de adquisición de modo que los sonidos que se originan en un punto en el espacio se alineen y se "amplifiquen" cuando se agregue la señal de los diferentes canales. Los sonidos que se originan en otras regiones del espacio no se alinean y, por lo tanto, no se "amplifican".

El punto en el espacio para el cual los sonidos se alinean utilizando un determinado conjunto de retrasos se denomina foco de la matriz de micrófonos (o punto focal). En realidad, sin embargo, el foco no es un punto ideal, sino más bien una pequeña (más o menos) (dependiendo de la matriz) región del espacio para la cual los sonidos se alinean bien. El tamaño de esta región se denomina tamaño del punto focal.

La geometría (tamaño, forma, etc.) depende de los detalles exactos de la matriz: número de micrófonos, espacio entre micrófonos, contenido de frecuencia de las señales de interés. Véase, por ejemplo , este artículo .

Para obtener más información, busque textos sobre el enfoque de "matrices en fase" o "matrices lineales" en ultrasonidos. La formación de haces se puede utilizar en la recepción (para amplificar las señales de un determinado punto del espacio) o en la emisión (para crear un punto "fuerte" en una habitación). Los principios son idénticos: simplemente reemplace "micrófono" por "altavoz" en su forma de pensar.

En cuanto al procedimiento de calibración: tienes razón. El procedimiento que describí es demasiado simplista. Solo funciona bien si puede crear el aplauso de calibración desde una distancia mucho mayor que la región del espacio que le interesa (es decir, para garantizar una onda simple).

Si esto no es posible, hay que tener en cuenta la posición del aplauso. En este caso, el procedimiento más simple es corregir los retrasos por correlación cruzada como se describe, pero luego agregar la curvatura del frente de onda nuevamente a la señal aplicando un conjunto de retrasos de "formación de haz inverso" calculado con la posición del origen del aplaudir. (Es decir, si usa una variable de profundidad +t0 (o +z0) en su algoritmo de formación de haz "normal", necesita usar -t0 (o -z0) para el algoritmo de formación de haz inverso).

¿Cuál es el punto de esta calibración? Elimina cualquier error debido a que las diferentes tarjetas de sonido comienzan su grabación en momentos ligeramente diferentes. Esto normalmente evitaría que las señales se alinearan correctamente incluso con los retrasos correctos y, por lo tanto, evitaría el efecto de amplificación que está buscando.

Gracias Arik. Sin embargo, no estoy seguro de por qué desea compensar los retrasos de tiempo aquí. Por ejemplo, algunas formaciones de haces adaptables, como sabe, son de retardo y suma, por lo que se ocupa de los problemas de retardo de tiempo automáticamente. La segunda cosa (creo que esto es lo que estás diciendo), es que quiero una sincronización de tiempo común. (es decir, presione un botón, todos los micrófonos comienzan a grabar al mismo tiempo), pero no quiero que tengan retrasos de tiempo comunes.
De hecho, incorporé a mi computadora portátil una matriz de micrófonos, creo que son solo dos micrófonos, pero podría ser un punto de partida, sin embargo, no tengo idea de cómo acceder a sus datos con el mínimo esfuerzo por separado...
@Mohammad: el problema no compensa los retrasos de tiempo conocidos , está compensando los retrasos de tiempo desconocidos . Básicamente, habrá algo de tiempo de procesamiento para cada tarjeta de sonido USB por separado, y puede variar de un dispositivo a otro (en cuyo caso podría compensarse), o incluso no ser constante/cambiar dependiendo de la carga del bus USB.
@Mohammad Lo que dijo FakeName... Para que las cosas sean aún más claras: la base de tiempo para cualquier formación de haces debe ser mejor que el medio período del componente de frecuencia más alto que desea tener en cuenta. Creo que esto es imposible de lograr con tarjetas de sonido independientes simplemente comenzando a grabar al mismo tiempo. Las cosas son diferentes si tiene una sola tarjeta de sonido con múltiples canales.
@ArikRaffaelFunke Veo lo que quiere decir acerca de la calibración, entendí mal su declaración. Sin embargo, no veo cómo se podría eliminar el retraso de tiempo de una base de tiempo poco común, sin eliminar también inadvertidamente el retraso de tiempo del canal (que desea conservar). La única forma es asegurarse de que la distancia a cada micrófono desde el aplauso sea la misma, pero eso es imposible para una matriz lineal> 2. ¿Quizás si lo suficientemente lejos (por lo tanto, los frentes de onda planos) no importará demasiado?
@Mohammad Por su comentario, veo que mi comentario aún no fue lo suficientemente claro. Intentaré actualizar mi respuesta con una explicación más detallada del problema durante la próxima semana más o menos. Perdón por tomar tanto tiempo, pero esto requiere más que solo unos minutos para explicarlo desde los primeros principios.
@Mohammad Eche un vistazo si mi edición responde a cualquier pregunta que aún pueda tener.
@ArikRaffaelFunke Gracias por las actualizaciones. Lo más fácil para mí ahora es obtener una matriz de micrófonos ya hecha de alguna manera. En realidad, para decirles, lo que estoy tratando de hacer es crear una demostración de ICA, usando ondas de sonido reales del entorno. Por supuesto, las mezclas no serán instantáneas, por lo que existen algunas variantes de ICA, pero ese es el objetivo general.