Primeros pasos
Instalación
Sección titulada «Instalación»Opción 1: Desde PyPI (recomendada)
pip install phonometryExtras opcionales:
pip install phonometry[plot] # matplotlib, para las gráficas de respuestapip install phonometry[perf] # numba, ponderación temporal 'impulse' más rápidapip install phonometry[full] # ambosOpción 2: Clonar e instalar
git clone https://github.com/jmrplens/phonometry.gitcd phonometrypip install .Opción 3: Submódulo de git
git submodule add https://github.com/jmrplens/phonometry.git# Después, instálalo en modo editable para usarlo desde tu proyectopip install -e ./phonometryLa cadena de procesado de un vistazo
Sección titulada «La cadena de procesado de un vistazo»Todo análisis con phonometry es un subconjunto de una misma cadena: tomar la señal cruda, convertirla a unidades físicas, ponderarla en frecuencia, dividirla en bandas normalizadas, suavizarla en el tiempo y reducirla a métricas:
Cada etapa es una función o clase independiente que puedes usar por separado; las guías las recorren de izquierda a derecha (Calibración → Ponderación frecuencial → Bancos de filtros → Ponderación temporal → Niveles).
Uso básico: análisis en tercios de octava
Sección titulada «Uso básico: análisis en tercios de octava»Analiza una señal y obtén el nivel de presión sonora (SPL) por banda de frecuencia.
import numpy as npfrom phonometry import octavefilter
fs = 48000t = np.linspace(0, 1, fs, endpoint=False)# Señal compuesta: 100 Hz + 1000 Hzsignal = np.sin(2 * np.pi * 100 * t) + np.sin(2 * np.pi * 1000 * t)
# Aplicar el banco de filtros de 1/3 de octavaspl, freq = octavefilter(signal, fs=fs, fraction=3)
print(f"Bandas: {freq}")print(f"SPL [dB]: {spl}")

Ejemplo de análisis espectral en tercios de octava de una señal compleja.
Analizar un archivo de audio
Sección titulada «Analizar un archivo de audio»from scipy.io import wavfilefrom phonometry import octavefilter
# Cargar un archivo WAV estándarfs, signal = wavfile.read("measurement.wav")
# Analizar# Nota: para obtener valores SPL reales debes calibrar la entrada.# Consulta la guía de calibración.spl, freq = octavefilter(signal, fs=fs, fraction=3)El audio entero (por ejemplo, datos int16 de un WAV) se convierte internamente a
float64, así que es seguro pasar directamente la salida de wavfile.read.
Siguientes pasos
Sección titulada «Siguientes pasos»- Bancos de filtros — elige una arquitectura e inspecciona sus respuestas
- Calibración y dBFS — obtén valores SPL reales
- Referencia de la API — todos los parámetros de cada función