<!-- canonical: https://jmrplens.github.io/phonometry/es/guides/reverberation-prediction/ -->
Source: https://jmrplens.github.io/phonometry/es/guides/reverberation-prediction/

El **tiempo de reverberación** $T$, el tiempo que tarda el nivel de energía
sonora en caer 60 dB tras detenerse la fuente, se predice aquí a partir del
**volumen** de una sala, sus **áreas de contorno** y los **coeficientes de
absorción** de sus superficies, mediante las fórmulas clásicas de la acústica
estadística. Es la contraparte de diseño del tiempo de reverberación *medido* de
[Acústica de salas](/phonometry/es/guides/room-acoustics/) (ISO 3382) y
complementa el modelo de EN 12354-6 de
[Absorción acústica en recintos](/phonometry/es/guides/enclosed-space-absorption/),
que especializa la misma física a la cláusula 4 de esa norma.

phonometry ofrece cinco modelos, ordenados según cuánto tienen en cuenta una
distribución de absorción **no uniforme**:

| Modelo | Término de absorción en $T = k\,V / (\text{término} + 4mV)$ | Idóneo para |
|:---|:---|:---|
| **Sabine** | $A = \sum_i S_i\alpha_i$ | absorción baja y uniforme |
| **Eyring** (Norris-Eyring) | $-S\ln(1-\bar\alpha)$ | absorción fuerte y uniforme |
| **Millington-Sette** | $-\sum_i S_i\ln(1-\alpha_i)$ | unas pocas superficies muy absorbentes |
| **Fitzroy** | media **aritmética** ponderada por área de tres tiempos de Eyring axiales | salas anisótropas |
| **Arau-Puchades** | media **geométrica** ponderada por área de los mismos tres | salas anisótropas (recomendado por el autor) |

con la constante de Sabine $k = 24\ln 10 / c_0$ (así $k = 0{,}161$ para
$c_0 = 343\ \mathrm{m/s}$) y el término de absorción del aire $4mV$.

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import environmental, room

# Una sala de 10 x 7 x 3.5 m: paredes frontales duras, paredes laterales con
# tratamiento ligero y un par suelo/techo muy absorbente (moqueta y techo acústico).
bands = [125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0]
alpha_x = [0.06, 0.07, 0.08, 0.09, 0.10, 0.10]
alpha_y = [0.12, 0.14, 0.16, 0.18, 0.20, 0.20]
alpha_z = [0.30, 0.50, 0.65, 0.78, 0.82, 0.80]
m = environmental.air_attenuation_m(bands, 20.0, 50.0)   # aire a 20 C / 50 % HR
res = room.reverberation_time_models((10.0, 7.0, 3.5),
                                     (alpha_x, alpha_y, alpha_z),
                                     air_attenuation=m, frequencies=bands)
res.plot(language="es")   # las cinco curvas de modelo por banda
plt.show()
```

</details>

## 1. Sabine, Eyring y Millington-Sette

Los tres modelos estadísticos toman el volumen de la sala y una lista de
superficies `(área, coeficiente_de_absorción)`. **Sabine** solo es exacto para
absorción baja y uniforme; **Eyring** sustituye el área de absorción por
$-S\ln(1-\bar\alpha)$ y es correcto donde Sabine sobrestima $T$;
**Millington-Sette** suma el término de Eyring superficie a superficie, de modo
que una única superficie perfectamente absorbente lleva $T$ a cero.

$$
T_{\text{Sab}} = \frac{k V}{\sum_i S_i\alpha_i}, \qquad
T_{\text{Eyr}} = \frac{k V}{-S\ln(1-\bar\alpha)}, \qquad
T_{\text{Mil}} = \frac{k V}{-\sum_i S_i\ln(1-\alpha_i)}.
$$

```python
from phonometry import room

# Sala rectangular 8 x 5 x 3 m (V = 120 m3, S = 158 m2), alpha uniforme = 0,2.
surfaces = [(40.0, 0.2), (40.0, 0.2), (24.0, 0.2),
            (24.0, 0.2), (15.0, 0.2), (15.0, 0.2)]
print(round(room.sabine_reverberation_time(120.0, surfaces), 3))            # 0.612 s
print(round(room.eyring_reverberation_time(120.0, surfaces), 3))            # 0.548 s
print(round(room.millington_sette_reverberation_time(120.0, surfaces), 3))  # 0.548 s
```

Para una distribución **uniforme**, Eyring y Millington-Sette coinciden, y ambos
quedan por debajo de Sabine; la sobrestimación de Sabine con absorción alta es
la razón de ser de Eyring. Cuando $\alpha \to 0$, Eyring se reduce a Sabine. La
absorción del aire entra en todos los modelos a través del coeficiente de
atenuación de potencia $m$ (en neper por metro, de la
[absorción atmosférica](/phonometry/es/guides/outdoor-propagation/) de
ISO 9613-1):

```python
from phonometry import environmental, room

m = environmental.air_attenuation_m(2000.0, temperature=20.0, relative_humidity=50.0)
surfaces = [(40.0, 0.3), (40.0, 0.3), (24.0, 0.3),
            (24.0, 0.3), (15.0, 0.3), (15.0, 0.3)]
print(round(room.eyring_reverberation_time(120.0, surfaces, air_attenuation=m), 3))
```

Todos los modelos estadísticos suponen además un **campo difuso**, y las
bajas frecuencias son las primeras en romper esa suposición: por debajo de
la frecuencia de Schroeder la sala responde como un conjunto de modos
discretos, no como una mezcla reverberante. La simulación FDTD 2D siguiente
excita una sala rígida de 5 m por 3,5 m exactamente en su modo (2,1) y
después entre dos modos; el patrón de onda estacionaria que se forma en
resonancia es lo que Sabine y Eyring no pueden ver.

## 2. Fitzroy y Arau-Puchades (salas anisótropas)

Cuando la absorción se concentra en un eje (un suelo enmoquetado y un techo
acústico frente a paredes por lo demás duras), una única media $\bar\alpha$
tergiversa el campo. **Fitzroy** y **Arau-Puchades** dividen una sala
rectangular en los tres pares de paredes opuestas y combinan los tiempos de
reverberación de Eyring *axiales* $T_i$ (cada uno con la superficie total $S$ y
la absorción media $\bar\alpha_i$ del par de paredes perpendicular al eje $i$):

$$
T_{\text{Fitz}} = \sum_i \frac{S_i}{S}\,T_i \quad(\text{aritmética}), \qquad
T_{\text{Arau}} = \prod_i T_i^{\,S_i/S} \quad(\text{geométrica}).
$$

```python
from phonometry import room

# Sala 8 x 5 x 3 m, par de paredes x absorbente (alpha 0,5), duro el resto (0,1).
dims = (8.0, 5.0, 3.0)
absorption = (0.5, 0.1, 0.1)   # alpha medio de los pares de paredes (x, y, z)
print(round(room.arau_puchades_reverberation_time(dims, absorption), 3))  # 0.812 s
print(round(room.fitzroy_reverberation_time(dims, absorption), 3))        # 0.974 s
```

Por la desigualdad de las medias aritmética y geométrica, el tiempo de
Arau-Puchades nunca supera al de Fitzroy; se sabe que Fitzroy sobrepredice
cuando un par de paredes es muy reflectante, por lo que Arau-Puchades recomienda
la media geométrica. Ambos se reducen exactamente a Eyring para una distribución
de absorción uniforme.

## 3. Comparación de los cinco modelos por banda

`reverberation_time_models` construye las seis superficies de contorno de una
sala rectangular a partir de sus dimensiones y las tres absorciones medias de
los pares de paredes, evalúa los cinco modelos en igualdad de condiciones y
devuelve un `ReverberationModelResult` cuyo `.plot()` dibuja la figura anterior.

```python
from phonometry import room

# Sala 10 x 7 x 3,5 m, suelo/techo absorbentes frente a paredes más duras.
res = room.reverberation_time_models(
    (10.0, 7.0, 3.5),
    (
        [0.06, 0.07, 0.08, 0.09, 0.10, 0.10],   # par x: paredes de fondo duras
        [0.12, 0.14, 0.16, 0.18, 0.20, 0.20],   # par y: paredes poco tratadas
        [0.30, 0.50, 0.65, 0.78, 0.82, 0.80],   # par z: moqueta + techo acústico
    ),
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
)
print(res.sabine.round(2))         # [0.74 0.47 0.37 0.31 0.3  0.3 ]
print(res.arau_puchades.round(2))  # [0.79 0.51 0.38 0.29 0.26 0.27]
print(res.fitzroy.round(2))        # [1.02 0.79 0.66 0.57 0.51 0.51]
res.plot()   # las curvas de los cinco modelos por banda (la figura de arriba)
```

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import environmental, room

m = environmental.air_attenuation_m([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0], 20.0, 50.0)
room.reverberation_time_models(
    (10.0, 7.0, 3.5),
    (
        [0.06, 0.07, 0.08, 0.09, 0.10, 0.10],
        [0.12, 0.14, 0.16, 0.18, 0.20, 0.20],
        [0.30, 0.50, 0.65, 0.78, 0.82, 0.80],
    ),
    air_attenuation=m,
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
).plot(language="es")
plt.show()
```

</details>

## 4. Elegir un modelo, y cuándo fallan todos

Las cinco fórmulas no compiten en un único eje de precisión; cada una tiene
su dominio de validez:

- **Sabine** es la herramienta para salas vivas con absorción baja y
  razonablemente repartida ($\bar\alpha$ media hasta aproximadamente 0,2):
  aulas, salas de actos, cámaras reverberantes. Es además la convención
  integrada en la práctica de medida, porque el coeficiente de absorción de
  ISO 354 se *define* mediante la fórmula de Sabine, así que devolver datos
  de cámara reverberante a Sabine es autoconsistente incluso donde la
  fórmula se tensa. Su defecto estructural aparece con absorción alta: con
  $\alpha = 1$ en todas las superficies (una abertura en todas las
  direcciones) sigue prediciendo un tiempo de reverberación finito.
- **Eyring** es la elección para salas tratadas de forma uniforme con
  absorción considerable: estudios, oficinas tratadas, salas de escucha.
  Alcanza $T = 0$ con absorción total, y su corrección sobre Sabine crece
  con $\bar\alpha$ (en torno a un 10 % más corto con $\bar\alpha = 0{,}2$,
  un 30 % con 0,5).
- **Millington-Sette** maneja una mezcla de superficies muy absorbentes y
  duras mejor que una única media, pero está pensado para coeficientes
  medidos por debajo de la unidad: una sola superficie con $\alpha_i = 1$
  lleva toda la predicción a cero. Los coeficientes de cámara reverberante
  iguales o superiores a 1,0 (un resultado documentado de ISO 354, ver la
  sección de absorción de
  [Acústica de salas](/phonometry/es/guides/room-acoustics/)) quedan fuera
  del dominio del término logarítmico, así que phonometry aplica a cada
  fórmula su propio dominio: Sabine acepta esos coeficientes tal cual (su
  $A = \sum_i S_i\alpha_i$ lineal sigue siendo finita); Eyring los acepta
  siempre que la media que entra en $\ln(1-\bar\alpha)$ quede por debajo
  de 1 (Fitzroy y Arau-Puchades toman como entrada las propias medias de
  cada par de paredes, así que cada una debe estar ya por debajo de 1);
  Millington-Sette rechaza cualquier coeficiente igual o superior a 1. Para usar Millington de
  todos modos, llevar un coeficiente así a $[0, 1)$ es una decisión de
  modelado que la fórmula no prescribe: el ajuste que elijas (es habitual
  limitarlo justo por debajo de 1) debe registrarse junto a la predicción.
- **Fitzroy** y **Arau-Puchades** apuntan a salas rectangulares con la
  absorción concentrada en un eje, la oficina o vivienda típica con suelo y
  techo blandos entre paredes duras. La media geométrica de Arau templa la
  conocida sobrepredicción de Fitzroy cuando un par de paredes es muy
  reflectante.

**Cuándo fallan todas las fórmulas.** Las cinco heredan la misma hipótesis:
un campo difuso, con sonido llegando por igual desde todas las direcciones
en todos los puntos, que permanece difuso mientras decae. Las rupturas
habituales:

- **Por debajo de la frecuencia de Schroeder** la banda contiene un puñado
  de modos discretos (la animación del §1) y un tiempo de reverberación
  estadístico ni siquiera está definido; cada modo decae a su propio ritmo,
  fijado por las impedancias de las paredes que realmente toca.
- **Los volúmenes acoplados** (una sala con la caja escénica abierta, dos
  recintos a través de una puerta) producen decaimientos de doble
  pendiente; no existe un único $T$, y los T20 y T30 medidos discrepan (el
  diagnóstico de curvatura de
  [Acústica de salas](/phonometry/es/guides/room-acoustics/)).
- **Las salas desproporcionadas** (pasillos, salas bajas y extensas) con la
  absorción en un solo par de superficies mantienen un campo rasante
  paralelo a las superficies duras que el absorbente apenas toca; el tiempo
  medido puede llegar a duplicar cualquier predicción estadística, la
  experiencia práctica recogida en EN 12354-6 (ver
  [Absorción acústica en recintos](/phonometry/es/guides/enclosed-space-absorption/)).
- **Las geometrías focalizantes** (cúpulas, paredes traseras curvas)
  concentran la energía tardía en lugar de mezclarla, produciendo
  decaimientos dependientes de la posición que ninguna fórmula de un solo
  número puede representar.

Los objetos difusores restauran la mezcla que los modelos suponen: una sala
amueblada sigue la predicción estadística claramente mejor que la misma
sala vacía, más allá de lo que explica el área de absorción propia del
mobiliario. En la práctica, indica una *banda* de predicciones (Sabine y
Eyring, o Fitzroy y Arau-Puchades en los casos axiales) en lugar de un
único valor; donde los modelos se separan, la sala está diciendo que su
campo no es difuso.

## 5. Informe de predicción (`.report()`)

`ReverberationModelResult.report(path)` genera una ficha PDF de una página de la
predicción: una línea de base que la marca como **predicción en fase de diseño**
por los cinco modelos de acústica estadística, un bloque de cabecera de
metadatos opcional (cliente, sala, descripción, volumen de la sala, superficie
total, condiciones climáticas), una tabla por bandas con una columna de tiempo
de reverberación por modelo junto a la gráfica de comparación de modelos
(`.plot()`), y el tiempo de reverberación de frecuencias medias destacado a
partir de Arau-Puchades (el modelo recomendado para una distribución de
absorción no uniforme) con la dispersión entre modelos al lado. Es una
predicción, no una medición: los cinco modelos acotan el tiempo de reverberación
que probablemente se produzca, por lo que no se emite ningún veredicto
CUMPLE/NO CUMPLE. Un tiempo de reverberación objetivo indicado mediante el campo
`requirement` de los metadatos se imprime solo como línea de referencia, ya que
el tiempo de reverberación de una sala es un intervalo objetivo y no una
magnitud en la que simplemente cuanto más alto o más bajo, mejor. Usa el mismo
contenedor `ReportMetadata` y el mismo motor de renderizado que las demás
fichas; pasar `metadata=None` produce una ficha de predicción básica. El
renderizado necesita reportlab (`pip install phonometry[report]`); solo se
admite `engine="reportlab"`. La ficha se renderiza en inglés por defecto; pasa
`language="es"` para una ficha en español (cadenas fijas traducidas y separador
decimal de coma).

```python
from phonometry import reverberation_time_models, ReportMetadata

result = reverberation_time_models(
    (8.0, 5.0, 3.0),                       # sala tipo caja, un par de paredes tratado
    ([0.10, 0.15, 0.30, 0.45, 0.55, 0.60], # par de paredes tratado, por banda de octava
     [0.08, 0.10, 0.12, 0.15, 0.18, 0.20], # paredes laterales
     [0.05, 0.08, 0.10, 0.12, 0.15, 0.18]),# suelo/techo
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
)
result.report(
    "reverberation_fiche.pdf",
    metadata=ReportMetadata(
        specimen="Aula, una pared revestida con un absorbente de banda ancha",
        test_room="Aula C1",
        temperature=20.0, relative_humidity=50.0,
        laboratory="Laboratorio de referencia Phonometry",
        requirement=0.8,          # impreso como línea de referencia, sin veredicto
    ),
    language="es",
)                                 # la tabla de los cinco modelos + el T_mid destacado
```

La ficha de ejemplo se regenera con `make reports` y se mantiene renderizada en
el repositorio; haz clic en la vista previa para abrir el PDF.

## Qué cubre esta guía

**Cubierto.** Las fórmulas clásicas del tiempo de reverberación de la
acústica estadística de Sabine (1922), Eyring (1930), Millington-Sette
(1932), Fitzroy (1959) y Arau-Puchades (1988), cada una con su propia
comprobación de dominio de validez y el término de absorción del aire
derivado de la ISO 9613-1, mediante `room.sabine_reverberation_time`,
`room.eyring_reverberation_time`, `room.millington_sette_reverberation_time`,
`room.fitzroy_reverberation_time`, `room.arau_puchades_reverberation_time`
y la función combinada `room.reverberation_time_models`.

**No cubierto.** El propio modelo del apartado 4 de la EN 12354-6 (un
cálculo de Sabine con un término de objetos añadido y el término de aire de
la ISO 9613-1) es un cálculo distinto, definido por esa norma, que vive en
la
[guía de absorción acústica en recintos](/phonometry/es/guides/enclosed-space-absorption/),
no aquí. Ninguna de las cinco fórmulas modela volúmenes acoplados, salas
desproporcionadas o geometrías focalizadoras: sus decaimientos de doble
pendiente o dependientes de la posición quedan fuera de toda hipótesis de
campo difuso (apartado 4). Para un decaimiento medido que muestre esos
síntomas, usa el diagnóstico de curvatura T20/T30 de la
[guía de Acústica de salas](/phonometry/es/guides/room-acoustics/) en lugar
de una predicción estadística.

## Véase también

- Referencia de la API: [`room.reverberation_prediction`](/phonometry/es/reference/api/rooms/reverberation-prediction/) y [`environmental.air_absorption`](/phonometry/es/reference/api/environment/air-absorption/).
