Programmieren Sie das Messen des Tons und das Erzeugen eines Equalizer-Profils

Diese Frage ist eine Ergänzung zu Automatisches Umschalten der Equalizer-Voreinstellung basierend auf der Audioausgabe (interner Lautsprecher oder extern) .

Kontext/Problem: schlechte Lautsprecher

Wie viele Leute wissen, haben Laptop-Lautsprecher einen „höchst ungleichen Frequenzgang“, wie Audio-Profis sagen würden. Normale Leute sagen: "Sie klingen sehr schlecht".

Lösung im ersten Schritt: Ausgleich

Equalizing bietet eine wertvolle Problemumgehung und verbessert die Klangqualität mit einem einmaligen Aufwand erheblich. Zum Beispiel habe ich PulseAudio Equalizer von Web Upd8 installiert.

Für gute Ergebnisse sollten Entzerrungswerte basierend auf Messungen gewählt werden

Messzeit, manuell. Einmal gemacht, macht keinen Spaß.

Einmal nahm ich eine Sonometer-App für Android, bat meinen Laptop, reine Töne zu erzeugen, einen für jede Frequenz im pulseaudio-equalizerFrequenzsatz, und notierte die von der Sonometer-App angezeigten Dezibel. Dann habe ich ein Preset mit der umgekehrten Kurve erstellt und ein ziemlich anständiges Ergebnis erzielt.

Messzeit, automatisch. Würde Spaß machen!

Es wäre sehr schön, den Computer zu haben:

  • kontinuierlich weißes Rauschen erzeugen,
  • geben Sie dieses Rauschen kontinuierlich an die Lautsprecher aus,
  • kontinuierlich über ein Mikrofon messen
  • aus dem Mikrofonsignal kontinuierlich ein Leistungs=f(Frequenz)-Spektrum berechnen
  • Equalizer-Parameter kontinuierlich anpassen, um zu einem gemessenen flachen Spektrum zu konvergieren
  • möglicherweise einige Kommentare wie "Ich kann im Bereich von 50-100 Hz (Sättigung) anscheinend nicht genug Bass erzeugen, also gebe ich auf" oder "zu viel Rauschen im 5-kHz-Bereich".
  • Sobald Sie mit dem Ergebnis zufrieden sind, erstellen Sie eine Equalizer-Parameterdatei

Dann speichern Sie das resultierende Profil für pulseaudio-equalizerund profitieren Sie!

Notiz:

  • Dies setzt voraus, dass das Mikrofon einen flachen Frequenzgang hat oder zumindest flacher als die zu messenden Lautsprecher, was meiner Meinung nach bei den meisten Mikrofonen selbst bei den billigsten Mikrofonen nahezu der Fall ist.
  • Dies setzt voraus, dass das Mikrofon empfindlich genug ist oder verstärkt wird. Möglicherweise müssen Sie die Audioeinstellungen anpassen, ein besseres Mikrofon auswählen oder einen Vorverstärker hinzufügen.
  • Dies setzt voraus, dass das Mikrofon denselben Ton hört wie Ihre Ohren. Die einfachste Möglichkeit besteht darin, ein Mikrofon mit einem Kabel zu haben und es dort zu positionieren, wo Ihr Kopf normalerweise verwendet wird.

Suchen Sie, bevor Sie fragen

http://kokkinizita.linuxaudio.org/linuxaudio/ erwähnt Jaaa und Japa. Diese erzeugen optional weißes Rauschen, das helfen kann, manuell das zu tun, woran ich denke. Beim Tuning von Hardware, die nur physische Knöpfe hat, ist dies die einzige Option, aber hier kann das Tuning über die API erfolgen, daher möchte ich, dass es vollautomatisch abläuft.

Die Frage

Gibt es eine Open-Source-Software, die wie oben beschrieben automatisch ein Equalizer-Profil basierend auf Messungen von tatsächlichen Lautsprechern erstellen kann?

Eine solche Software scheint zu existieren (ich erinnere mich, dass ich meinen Onkyo-Receiver so eingerichtet habe (sie nennen es "Audyssey Multi EQ"), und Yamaha verwendet auch ein solches System namens "YPAO"). Ich bin mir nur nicht sicher, ob es für die Öffentlichkeit und Open Source verfügbar ist. Also Daumen drücken!
Die unmittelbaren Probleme bestehen darin, dass davon ausgegangen wird, dass das Laptop-Mikrofon nicht einmal schlechter ist als die Lautsprecher (viele sind es) und dass Ihre Hörreaktion flach oder gleich wie das Mikrofon ist.

Antworten (1)

Auf Speaker Response Testing and Analysis habe ich https://sourceforge.net/projects/audmes/ gefunden , das behauptet:

AUDio MEasurement System - Multiplattformsystem zur Audiomessung über Soundkarte im PC. Beinhaltet Generator, Oszilloskop, FFT, Sweep-Frequenzcharakteristik. Jetzt kann es kompiliert werden und funktioniert unter MSWindows und Linux.

Es ist eine WxWidget-Anwendung, die die RtAudio-API verwendet.

Zuerst ließ es sich nicht kompilieren. Ich habe es gehackt, um es zu kompilieren, aber es startet nicht.

Endlich habe ich es laufen lassen. Es misst den Frequenzgang, indem es nacheinander eine Reihe von Frequenzen abspielt. Infolgedessen ist jede Vollspektrummessung sehr langsam (ungefähr eine Minute) und jedes Rauschen, das zu irgendeinem Zeitpunkt auftritt, verändert das Ergebnis der bestimmten Frequenz, die gerade zu diesem Zeitpunkt getestet wurde. Also als Einstieg nicht so interessant.