-
Microphone à réseau phasé
- Microphone à réseau phasé à 192 canaux, offrant l’acquisition de données via FPGA ainsi que des fonctions de beamforming et de visualisation sur GPU. Un réseau phasé permet des applications impossibles avec des microphones directionnels traditionnels, comme modifier instantanément la directivité après l’enregistrement ou focaliser simultanément sur des centaines de milliers de points.
- Toutes les conceptions sont fournies en open source :
- logiciel hôte
- gateware FPGA
- routage PCB et schémas, composants mécaniques
-
Matériel
- Pour construire un microphone à réseau phasé, il faut disposer un grand nombre de microphones avec un espacement important. Dans le cas d’un réseau linéaire, un espacement exponentiel entre les microphones est optimal pour les signaux large bande.
- Le coût total est d’environ 700 $.
Bras
- La longueur de chaque bras est déterminée par les limites de fabrication et d’assemblage des PCB. Ils ont été fabriqués chez JLCPCB, et la longueur maximale d’un PCB à 4 couches est de 570 mm.
- Les microphones choisis sont les MEMS à sortie numérique les moins chers, avec peu de différences significatives dans leurs caractéristiques de performance.
- Ils utilisent le PDM pour sortir les données et prennent en charge le DDR, ce qui permet de multiplexer deux microphones sur un seul fil.
- Chaque bras comporte 8 microphones partageant 4 lignes de sortie, et inclut des buffers de sortie sur la ligne d’entrée d’horloge.
- Le rendement des PCB est faible, et le problème le plus fréquent est un court-circuit de la ligne d’horloge vers le 3V3 ou la masse.
Hub
- Le FPGA est utilisé pour l’acquisition des données, car il peut collecter un grand nombre d’E/S à faible latence et communiquer via une interface rapide.
- Une carte Colorlight i5 est utilisée, avec suffisamment d’E/S, un faible coût et deux PHY Ethernet intégrés.
- Le hub comprend un circuit simple de gestion de l’alimentation ainsi que les connecteurs pour les cartes bras et l’Ethernet.
Conception mécanique
- Les bras sont fixés au hub à l’aide de vis M3 et assemblés avec des entretoises/écrous de montage de PCB.
- La conception initiale prévoyait des fentes dans les PCB des bras pour s’emboîter avec un PCB structurel, mais la conception finale entoure le contour avec du MDF et fixe l’ensemble avec des colliers de serrage.
- Un réseau de microphones monté au mur est sensible aux réflexions, donc de la mousse acoustique est utilisée pour les réduire.
-
Gateware
- L’objectif principal du gateware est de transmettre les données brutes à l’ordinateur sans perte.
- Effectuer la décimation et le filtrage sur le FPGA réduit le débit de transmission, mais il est possible de transmettre les données PDM brutes.
Interface PDM
- Le module d’entrée PDM divise l’horloge système de 50 MHz par 16 pour produire une horloge PDM à 3,125 MHz, puis verrouille 96 broches d’entrée après chaque front d’horloge.
- Le débit de données est de 600 Mbps, et de 700 Mbps avec les en-têtes.
Mise en paquets
- La mise en paquets repose sur un tampon FIFO et ne démarre un paquet que lorsqu’il y a suffisamment de données dans la file, afin de garantir des paquets de taille constante.
- 48 blocs de sortie PDM sont inclus dans chaque paquet, pour un débit de transmission de 715 Mbps.
Streamer UDP
- Grâce au projet LiteEth, la complexité de l’encapsulation UDP et IP est abstraite, ce qui facilite la connexion d’une FIFO à un flux UDP.
-
Logiciel
Filtre CIC
- Chaque microphone génère un signal 1 bit à 3,125 MHz, qu’il faut réduire à une fréquence d’échantillonnage et une profondeur de bits plus raisonnables.
- Un filtre CIC à 4 étages avec une décimation par 16 est utilisé pour réduire la fréquence d’échantillonnage à 195 kHz.
Calibration
- Pour calibrer le réseau, un haut-parleur diffuse du bruit blanc tout en se déplaçant devant le réseau.
- Une corrélation croisée basée sur FFT est utilisée pour calculer les délais relatifs entre microphones.
- La position de la source et celle des microphones sont optimisées afin d’obtenir le meilleur modèle du système.
Beamforming
- Le beamforming est une méthode de traitement des entrées brutes des microphones pour produire une réponse directionnelle.
- Le traitement implémente les délais dans le domaine fréquentiel.
- Un beamformer 3D en champ proche et un beamformer 2D en champ lointain sont implémentés.
Beamforming 3D en champ proche
- Il est exécuté sur une grille de voxels de 5 cm et atteint un taux de mise à jour de 12 Hz sur une RTX 4090.
- La visualisation est réalisée avec VisPy.
Beamforming 2D en champ lointain
- Il utilise une grille de 512x512 pixels et atteint un taux de mise à jour de 12 Hz.
Audio directionnel
- Un beamformer par délai et somme dans le domaine temporel est implémenté pour permettre l’enregistrement audio directionnel.
Enregistrement
- Les données du réseau de microphones sont envoyées sous forme de paquets UDP, qui peuvent être enregistrés avec des outils comme
tcpdump.
- L’inconvénient de cette implémentation d’enregistrement est que le débit des données de sortie est très élevé.
-
Étapes suivantes
- Ce projet est essentiellement terminé et aucun travail supplémentaire n’est prévu, mais plusieurs pistes d’extension sont possibles.
- Utilisation d’algorithmes de beamforming plus avancés
- Meilleure interface graphique combinant toutes les fonctionnalités
- Combinaison du beamforming différentiable avec des modèles de réseaux neuronaux
1 commentaires
Commentaires Hacker News
Mention qu’optimiser la vitesse du son pour obtenir le modèle optimal du système fonctionne comme un thermomètre très complexe
A réalisé un projet utilisant 4 microphones pour localiser des chauves-souris et identifier leur espèce
Question sur la raison d’utiliser du PDM au lieu de microphones TDM I2S
Propose l’idée de l’associer à un réseau de haut-parleurs ultrasoniques pour des applications médicales
Mention qu’on peut voir sur YouTube des démos impressionnantes de caméras acoustiques
Souhaite voir arriver des fonctions audio directionnelles de haute qualité sur les appareils mobiles
Mentionne un ancien système acoustique sphérique utilisé par Boeing sur le prototype du 787
Trouve qu’un projet séparant les sons en fonction de leur position serait formidable
Exprime sa surprise face au PCB long en forme de « bras »
Mentionne que cette technologie est de plus en plus utilisée sur les drones