1 Punkte von GN⁺ 2025-03-25 | 1 Kommentare | Auf WhatsApp teilen
  • Triforce implementiert einen adaptiven Beamformer vom Typ Minimum Variance Distortionless Response für das Mikrofon-Array von Apple-Silicon-Laptops
  • Unterstützte Modelle: MacBook Pro/Air ab M1
  • Die oben genannten Apple-Silicon-Laptops verfügen über Mikrofone, die entweder dreieckig oder linear angeordnet sind
  • Apple versucht, durch die Implementierung eines adaptiven Beamformers im User Space das gewünschte Signal aus Hintergrundgeräuschen zu isolieren
  • Ohne Beamforming ist das Array zu empfindlich und zu omnidirektional, um nützlich zu sein
  • Um es außerhalb von macOS sinnvoll zu nutzen, wird ein Beamformer benötigt
  • Liste der unterstützten Modelle
    • MacBook Pro 13" (M1/M2)
    • MacBook Air 13" (M1/M2)
    • MacBook Pro 14" (M1 Pro/Max, M2 Pro/Max)
    • MacBook Pro 16" (M1 Pro/Max, M2 Pro/Max)
    • MacBook Air 15" (M2)

Erwartungsmanagement

  • Es ist sehr schwierig, zugängliche Literatur zu DSP-Themen zu finden, insbesondere zu breitbandigem adaptivem Beamforming
  • Dieses Projekt ist ein Beamformer-Versuch auf Grundlage von Wissen auf dem Niveau der Ingenieurmathematik im ersten Studienjahr sowie Prinzipien aus Webseiten und PDFs
  • Man sollte derzeit nicht erwarten, dass es Apples Implementierung übertrifft
  • Patches zur Verbesserung sind jederzeit willkommen

Bekannte Einschränkungen

  • nalgebra führt keine expliziten SIMD-Optimierungen durch und verlässt sich auf die automatische Vektorisierung durch LLVM
  • Die Leistung und Effizienz der Matrixmathematik-Routinen sind nicht besonders gut
  • Aufgrund der zusätzlichen Rechenlast wird keine Breitband-Zerlegung durchgeführt
  • Ohne SIMD-/NEON-Unterstützung ist es für ein Echtzeit-Audio-Plugin zu langsam
  • Die Ausgabe unterstützt nur Mono
  • Zusätzliche Matrixverarbeitung, um eine Stereo-Ausgabe künstlich zu erzeugen, ist rechnerisch zu aufwendig

1 Kommentare

 
GN⁺ 2025-03-25
Hacker-News-Kommentare
  • Vor 20 Jahren gab es bei einem umwandelbaren Toshiba Tablet PC ein Beamforming-Mikrofonarray. Per Software konnte man die Aufnahmerichtung festlegen

    • Das war in Vorlesungen nützlich, da man den Beam auf den Professor ausrichten und so aufnehmen konnte
    • Seitdem habe ich so eine Funktion nicht mehr gesehen
  • Eine unvollendete Masterarbeit befasste sich damit, mithilfe der Mikrofone von Smartphones Lautsprecher im 3D-Raum zu lokalisieren und voneinander zu trennen

    • Die Samplingraten zwischen Geräten unterscheiden sich leicht
    • Die Spektraleigenschaften von Consumer-Mikrofonen variieren stark
    • Schall wird überall reflektiert, besonders deutlich an Betonwänden
    • Autos sind ähnlich wie leicht zugängliche schalltote Räume
    • Die Fourier-Transformation einer Gauß-Funktion ist wieder eine Gauß-Funktion, was für die Frequenzschätzung nützlich ist
  • Mir wurde klar, wie viel Arbeit nötig ist, um Linux auf Apple-Silicon-Macs zum Laufen zu bringen

    • Die eingebauten Mikrofone werden kaum verwendet
    • Bei Apple ist nicht alles einfach
  • Selbst auf günstiger Notebook-Hardware lassen sich mit Software-DSP erstaunliche Ergebnisse erzielen

    • Asahis Audio-Arbeit lässt sich auch auf gewöhnliche Notebooks anwenden
    • Mit dem Bankstown-Bass-Harmonic-Synthesis-Plugin und Convolution EQ habe ich beeindruckende Ergebnisse erzielt
  • Für SIMD-Optimierung könnte man faer in Betracht ziehen

    • Meine Erfahrungen mit der pulp-Bibliothek waren nicht gut, aber wenn das Hauptziel die Beschleunigung linearer Algebra-Operationen ist, könnte es gut funktionieren
    • Blogposts und ein Podcast zu Rust SIMD sind geplant
  • Frage zum Mikrofonarray in Apple-Silicon-Notebooks

    • Ich frage mich, ob M2/M3-Modelle ein ähnliches Mikrofonarray haben oder ob sie einfach noch nicht getestet wurden
    • Unklar ist auch, ob es unter Linux und macOS unterstützt wird
  • Es wirkt, als gehe Apple bei Mikrofonen wie auch bei Lautsprechern unnötig komplex vor

    • Als MBP-Nutzer war ich von der Lautsprecher-Implementierung beeindruckt
    • Abgesehen vom Treiberarray kenne ich die Details nicht, aber es scheint, als würden Tricks eingesetzt, um aus kleinen Lautsprechern Leistung herauszuholen
  • Allgemeine Diskussion zum neuesten Asahi-Linux-Fortschrittsbericht

    • PDM-Mikrofone sind sehr omnidirektional und empfindlich
    • Beamforming ist notwendig
    • Frühere Arbeiten an der Lautsprecherausgabe wurden für den Mikrofoneingang wiederverwendet
    • Dank PipeWire und WirePlumber war es einfach, eine DSP-Kette für Mikrofone zu verbinden
  • Es wäre schön, wenn das so implementiert würde, dass auch andere Hersteller problemlos Mikrofonarrays aufbauen können