Vous voulez un mini-microphone USB. C'est possible?


13

J'ai beaucoup appris sur la formation de faisceaux adaptatifs et j'ai travaillé avec différentes sims dans MATLAB, etc.

Mais quelle meilleure façon de comprendre quelque chose - vraiment comprendre - que de jouer avec l'ensemble du système?

À cette fin, je voudrais trouver (construire?) Un réseau de microphones connecté par USB, avec, disons, 5 micros environ. Ils seraient en mesure d'acquérir des signaux de l'environnement (alias, où que se trouve mon ordinateur portable), et je serais alors en mesure de prendre ces signaux et de les traiter dans MATLAB ou autre.

Je préférerais vraiment ne pas construire le tout, donc j'espère que quelqu'un a déjà utilisé des matrices de microphone connectées par USB et peut pointer dans la bonne direction?

Les microphones n'ont pas besoin d'être sophistiqués en ce qui concerne les résolutions de bits de leur A / D, etc. Les micros KISS de qualité respectable feront très bien l'affaire.

Réponses:


8

La caméra vidéo Playstation Eye dispose d'un réseau de microphones linéaires à 4 éléments. Il fournit des échantillons 16 bits à 48 KHz avec un SNR de 90 dB. Il est facile à utiliser: il énumère un périphérique audio USB standard avec quatre canaux distincts.

Pour un exemple d'utilisation de cette façon, voir: Tests audio PS3 Eye 4 canaux sur Ubuntu Karmic


1
@Mohammad Ce serait probablement une bonne solution si vous êtes content de vous limiter à quatre canaux. Quatre canaux vous donneront un gain de formation de faisceau d'environ 12 dB. L'inconvénient est qu'en raison du fait que l'étendue totale de la matrice est assez petite, vous aurez un point focal de formation de faisceau assez grand: vous ne pouvez pas séparer les sources sonores qui sont trop proches les unes des autres. Votre application principale pour ce réseau ne serait donc probablement pas l'isolement des sources sonores mais plutôt le suivi d'une seule source sonore dans l'espace. C'est à dire où une personne se tient de sa voix ...
ARF

1
@ArikRaffaelFunke Hmm, je ne connais pas assez la formation de faisceaux adaptatifs pour savoir ce qu'est un point focal. :-) Cependant, je pense que je serais toujours en mesure de séparer les sources en utilisant ICA non instantané. (en fait je me concentre sur l'ICA en ce moment). De plus, oui 4 n'est pas autant que je l'espérais ... Mais peut-être que cela peut être un début
Spacey

3

Ayant beaucoup travaillé dans la formation de faisceaux adaptatifs, je n'hésiterais pas à pirater quelque chose moi-même jusqu'à ce que j'aie une certaine expérience. (Remarque: les solutions professionnelles avec environ 60 canaux coûtent environ 100k €. Avec de nombreux canaux, votre résolution spatiale devient bien meilleure, mais vous n'obtenez qu'une quantité limitée d'informations via un port USB ...)

Pour une formation de faisceau fiable, il est essentiel que tous les microphones utilisent la même base de temps. La façon la plus simple d'y parvenir est d'utiliser une carte son USB externe avec plusieurs canaux d'entrée. Ce ne sont pas vraiment bon marché. Avez-vous regardé ce que l'on peut trouver sur ebay?

Une alternative consiste à sacrifier la base de temps commune en utilisant un certain nombre de cartes son USB avec par exemple deux canaux chacune. Vous devrez cependant calibrer votre système d'acquisition. Ce n'est vraiment pas aussi difficile qu'il y paraît:

Pour calibrer, vous configurez votre réseau et produisez un son court (par exemple un crack / clap / etc.) À une distance de votre réseau qui est de l'ordre de l'étendue de votre réseau. Vous enregistrez ensuite ce son et utilisez Matlab ou similaire pour calculer la corrélation croisée entre le clap / crack / etc. sur les différents canaux. Cela vous donnera une liste des décalages temporels que vous devez appliquer à vos canaux pour les aligner avant de fournir les données à votre algorithme de formation de faisceau.

Pour explorer la formation de faisceaux adaptative, c'est probablement la voie à suivre, sauf si vous pouvez faire une bonne affaire sur une carte son multicanal.


Modifier 1

Cette modification vise à répondre aux questions posées dans les commentaires.

L'idée de base du retard et de la formation de faisceaux cumulés consiste à appliquer des retards à différents canaux d'acquisition de telle sorte que les sons provenant d'un point dans l'espace s'alignent et "s'amplifient" lorsque le signal des différents canaux est ajouté. Les sons qui proviennent d'autres régions de l'espace ne s'alignent pas et ne sont donc pas "amplifiés".

Le point dans l'espace pour lequel les sons s'alignent en utilisant un certain ensemble de retards est appelé le foyer du réseau de microphones (ou point focal). En réalité cependant, la mise au point n'est pas un point idéal mais plutôt une petite région (ish) (en fonction de la matrice) pour laquelle les sons s'alignent bien. La taille de cette région est appelée la taille du point focal.

La géométrie (taille, forme, etc.) dépend des détails exacts du réseau: nombre de microphones, espacement des microphones, contenu en fréquence des signaux d'intérêt. Voir par exemple cet article .

Pour plus d'informations, recherchez des textes sur la focalisation des "matrices phasées" ou "matrices linéaires" en ultrasons. La formation de faisceaux peut être utilisée à la réception (pour amplifier les signaux à partir d'un certain point dans l'espace) ou à l'émission (pour créer un point «fort» dans une pièce). Les principes sont identiques: remplacez simplement "microphone" par "haut-parleur" dans votre réflexion.

Concernant la procédure d'étalonnage: vous avez raison. La procédure que j'ai décrite est trop simpliste. Cela ne fonctionne bien que si vous pouvez créer le clap d'étalonnage à une distance beaucoup plus longue que la région de l'espace qui vous intéresse. (C'est-à-dire pour garantir une onde lisse.)

Si cela n'est pas possible, vous devez prendre en compte la position du clap. Dans ce cas, la procédure la plus simple consiste à corriger les retards par corrélation croisée comme décrit, puis à rajouter la courbure du front d'onde sur le signal en appliquant un ensemble de retards de "formation de faisceau inverse" calculé avec la position de l'origine du taper. (C'est-à-dire que si vous utilisez une variable de profondeur + t0 (ou + z0) dans votre algorithme de formation de faisceau "normal", vous devez utiliser -t0 (ou -z0) pour l'algorithme de formation de faisceau inverse.)

Quel est l'intérêt de ce calibrage: il élimine les éventuelles erreurs dues aux différentes cartes son démarrant leur enregistrement à des moments légèrement différents. Cela empêcherait normalement les signaux de s'aligner correctement même avec des retards corrects et empêcherait ainsi l'effet d'amplification que vous recherchez.


Merci Arik. Cependant, je ne sais pas pourquoi vous voulez compenser les retards ici. Par exemple, certains faisceaux adaptatifs comme vous le savez sont à retard et à somme, donc il prend automatiquement en compte les problèmes de retard. La deuxième chose (je pense que c'est ce que vous dites), est que je ne veux un temps de synchronisation commune. (c'est-à-dire, appuyez sur un bouton, tous les microphones commencent à enregistrer en même temps), mais je ne veux pas qu'ils aient des retards communs.
Spacey

En fait, j'ai intégré à mon ordinateur portable un ensemble de microphones, je pense que ce ne sont que deux micros, mais cela pourrait être un point de départ, mais je ne sais pas comment accéder à leurs données avec un minimum d'agitation séparément ...
Spacey

@Mohammad - le problème ne compense pas les retards connus , il compense les retards inconnus . Fondamentalement, il y aura un certain temps de traitement pour chaque carte son USB distincte, et il peut varier d'un appareil à l'autre (auquel cas il pourrait être compensé), ou même ne pas être constant / changer en fonction du chargement du bus USB.
Connor Wolf

@Mohammad Ce que FakeName a dit ... Pour rendre les choses peut-être encore plus claires: la base de temps pour toute formation de faisceau doit être meilleure que la demi-période de la composante de fréquence la plus élevée que vous souhaitez prendre en compte. Je pense qu'il est impossible d'y parvenir avec des cartes son indépendantes en les démarrant simplement en même temps. Les choses sont différentes si vous avez une seule carte son avec plusieurs canaux.
ARF

@ArikRaffaelFunke Je vois ce que vous voulez dire sur l'étalonnage, j'ai mal compris votre déclaration. Cependant, je ne vois pas comment on pourrait supprimer le délai d'une base de temps inhabituelle, sans également supprimer par inadvertance le délai du canal (que vous souhaitez conserver). La seule façon est de s'assurer que la distance entre chaque micro et le clap est la même, mais c'est impossible pour un réseau linéaire> 2. Peut-être que si assez loin (donc des fronts d'ondes planaires), cela n'aura pas trop d'importance?
Spacey
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.