Programa que mide el sonido y genera un perfil de ecualizador

Esta pregunta es complementaria a Cambiar automáticamente el preajuste del ecualizador en función de la salida de audio (altavoz interno o externo) .

Contexto/problema: malos oradores

Como mucha gente sabe, los altavoces de los portátiles tienen una "respuesta de frecuencia muy desigual", como dirían los profesionales del audio. La gente normal dice: "suenan muy mal".

Solución de primer paso: ecualización

La ecualización proporciona una valiosa solución , mejorando drásticamente la calidad del sonido con un solo esfuerzo. Por ejemplo, instalé PulseAudio Equalizer de Web Upd8.

Para obtener buenos resultados, los valores de ecualización deben elegirse en función de las mediciones.

Tiempo de medición, manual. Hecho una vez, no es divertido.

Una vez, tomé una aplicación de sonómetro para Android, le pedí a mi computadora portátil que produjera tonos puros, uno para cada frecuencia en el pulseaudio-equalizerconjunto de frecuencias, y anoté los decibelios que mostraba la aplicación de sonómetro. Luego creé un ajuste preestablecido con la curva invertida y obtuve un resultado bastante decente.

Tiempo de medición, automático. ¡Será divertido!

Sería muy bueno tener la computadora:

  • producir continuamente algo de ruido blanco,
  • salida continua de ese ruido a los altavoces,
  • medir continuamente a través de un micrófono
  • calcular continuamente un espectro de potencia = f (frecuencia) de la señal del micrófono
  • ajustar continuamente los parámetros del ecualizador para converger a un espectro plano medido
  • posiblemente proporcionando algunos comentarios como "Parece que no puedo producir graves lo suficientemente potentes en el rango de 50-100 Hz (saturación), así que me rindo" o "demasiado ruido en el rango de 5 kHz".
  • una vez satisfecho con el resultado, genere un archivo de parámetros del ecualizador

¡ Luego almacene el perfil resultante pulseaudio-equalizery obtenga ganancias!

Aviso:

  • Esto supone que el micrófono tiene una respuesta plana, o al menos más plana que los altavoces que se están midiendo, lo que, por cierto, creo que es casi cierto con la mayoría de los micrófonos, incluso con los micrófonos más baratos.
  • Esto supone que el micrófono es lo suficientemente sensible o amplificado. Es posible que deba ajustar la configuración de audio, elegir un mejor micrófono o agregar un preamplificador.
  • Esto supone que el micrófono escucha el mismo sonido que sus oídos. La opción más simple es tener un micrófono con un cable y colocarlo donde su cabeza esté en uso normal.

Busca antes de preguntar

http://kokkinizita.linuxaudio.org/linuxaudio/ menciona a Jaaa y Japa. Opcionalmente, estos producen ruido blanco que puede ayudar a hacer manualmente lo que estoy pensando. Al sintonizar algún hardware que solo tiene perillas físicas, esta es la única opción, pero aquí la sintonización se puede realizar a través de API, por lo que me gustaría que fuera completamente automático.

La pregunta

¿Existe un software de código abierto que pueda, como se describe anteriormente, producir automáticamente un perfil de ecualizador basado en mediciones de altavoces reales?

Ese software parece existir (recuerdo haber configurado mi receptor Onkyo de esa manera (lo llaman "Audyssey Multi EQ"), y Yamaha también usa ese sistema, llamado "YPAO"). Simplemente no estoy seguro de si está disponible para el público y de código abierto. ¡Así que crucemos los dedos!
Los problemas inmediatos son que asume que el micrófono de la computadora portátil no es peor que los parlantes (muchos lo son), y que su respuesta auditiva es plana o igual a la del micrófono.

Respuestas (1)

En las pruebas y el análisis de la respuesta del orador , encontré https://sourceforge.net/projects/audmes/ que afirma:

AUDio MEasurement System - Sistema multiplataforma para medición de audio a través de tarjeta de sonido en la PC. Incorpora generador, osciloscopio, FFT, característica de frecuencia de barrido. Ahora se puede compilar y funciona bajo MSWindows y Linux.

Es una aplicación WxWidget que usa la API RtAudio.

Al principio no compilaría. Lo pirateé para compilarlo, pero no se inicia.

Finalmente lo hice funcionar. Mide la respuesta de frecuencia reproduciendo secuencialmente un rango de frecuencias. Como consecuencia, cada medición de espectro completo es muy lenta (alrededor de un minuto) y cualquier ruido que llegue en cualquier momento alterará el resultado de la frecuencia particular que se estaba probando en ese momento. Por lo tanto, no tiene mucho interés como punto de partida.