¿Quieres una matriz de mini-micrófono USB? ¿Es posible?

13

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

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

Con este fin, me gustaría encontrar (¿construir?) Un conjunto de micrófonos conectados por USB, con, por ejemplo, 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 conjuntos 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.

Spacey
fuente

Respuestas:

8

La videocámara 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

Jim Paris
fuente
1
@Mohammad Esto probablemente sería una buena solución si está contento de limitarse a cuatro canales. Cuatro canales le darán una ganancia de formación de haz de aproximadamente 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 haz 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 las fuentes de sonido, sino más bien rastrear una sola fuente de sonido a través del espacio. Es decir, dónde se encuentra una persona desde su voz ...
ARF
1
@ArikRaffaelFunke Hmm, no sé lo suficiente sobre la formación de haces adaptativos para saber qué es un punto focal. :-) Sin embargo, creo que aún podría separar las fuentes usando ICA no instantáneo. (De hecho, me estoy centrando en ICA en este momento). Además, sí 4 no es todo lo que esperaba ... Pero tal vez esto puede ser un comienzo
Spacey
3

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

Para una formación de haz confiable, 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. Sin embargo, 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 crack / clap / 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 aplauso / crack / etc. en los diferentes canales Esto le dará una lista de las compensaciones de tiempo que necesita aplicar a sus canales para alinearlos antes de alimentar los datos a su algoritmo de formación de haces.

Para explorar la formación de haces adaptativa, 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 las preguntas planteadas en los comentarios.

La idea básica de la demora y la suma de la formación de haces es aplicar demoras a diferentes canales de adquisición de manera que los sonidos que se originan desde un punto en el espacio se alineen y "amplifiquen" cuando se agreguen señales 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 que los sonidos se alinean usando un cierto conjunto de retrasos se llama foco de la matriz de micrófonos (o punto focal). Sin embargo, en realidad, el foco no es un punto ideal, sino más bien una pequeña región de espacio (ish) (dependiendo de la matriz) para la cual los sonidos se alinean bien. El tamaño de esta región se llama el 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. Ver, 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. Beamforming se puede utilizar en recepción (para amplificar señales de un cierto punto en el espacio) o en emisión (para crear un punto "ruidoso" en una habitación). Los principios son idénticos: simplemente reemplace "micrófono" por "altavoz" en su pensamiento.

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 más larga que la región del espacio que le interesa (es decir, para garantizar una onda simple).

Si esto no es posible, debe tener en cuenta la posición del aplauso. En este caso, el procedimiento más simple es corregir los retrasos mediante correlación cruzada como se describe, pero luego agregar la curvatura del frente de onda de nuevo a la señal mediante la aplicación de un conjunto de retardos 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", debe 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 a grabar en momentos ligeramente diferentes. Esto normalmente evitaría que las señales se alineen correctamente incluso con los retrasos correctos y, por lo tanto, evitaría el efecto de amplificación que está buscando.

ARF
fuente
Gracias Arik Sin embargo, no estoy seguro de por qué desea compensar los retrasos aquí. Por ejemplo, algunas formas de haz adaptativas, como usted sabe, son demoras y sumas, por lo que se solucionan automáticamente los problemas de demora. La segunda cosa (creo que esto es lo que está diciendo), es que yo no quiero un tiempo de sincronización común. (es decir, presione un botón, todos los micrófonos comienzan a grabar al mismo tiempo), pero no quiero que tengan retrasos comunes.
Spacey
De hecho, he incorporado en 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 un mínimo de alboroto por separado ...
Spacey
@Mohammad: el problema no compensa los retrasos conocidos , sino los retrasos desconocidos . Básicamente, habrá un cierto tiempo de procesamiento para cada tarjeta de sonido USB separada, 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.
Connor Wolf el
@Mohammad Lo que dijo FakeName ... Para aclarar las cosas aún más: la base de tiempo para cualquier formación de haz debe ser mejor que el medio período del componente de frecuencia más alta 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.
ARF
@ArikRaffaelFunke Entiendo lo que quieres decir con la calibración, entendí mal tu afirmación. Sin embargo, no veo cómo se podría eliminar el retraso de tiempo de una base de tiempo poco común, sin también eliminar 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 clap sea la misma, pero eso es imposible para una matriz lineal> 2. ¿Tal vez si es lo suficientemente lejos (por lo tanto, frentes de onda plana) no importará demasiado?
Spacey