Ir al contenido

Índice de transmisión del habla (STI)

Normas aplicables: IEC 60268Referencias: Houtgast y Steeneken 1985

Un sistema de megafonía, un interfono, un aula reverberante: cada uno es un canal de transmisión entre la boca de quien habla y el oído de quien escucha, y cada uno degrada el habla a su manera. El índice de transmisión del habla (STI) de IEC 60268-16 valora ese canal con un único número en midiendo cuánta de la envolvente del habla sobrevive al trayecto. Esta página cubre la física de transferencia de modulación en la que se basa el índice, el método indirecto desde una respuesta al impulso medida en la sala y la medición STIPA directa con su señal de ensayo normalizada.

¿Cómo calculo el índice de transmisión del habla de IEC 60268-16 con Python?

Sección titulada «¿Cómo calculo el índice de transmisión del habla de IEC 60268-16 con Python?»

A partir de una respuesta al impulso medida en la sala, llama a speech.sti_from_impulse_response(ir, fs, snr=25.0). El resultado da sti en la escala de 0 a 1, su letra de valoración rating del Anexo F y los siete índices de transferencia de modulación por banda de octava. Para la medición directa, reproduce speech.stipa_signal(fs) en la sala y pasa la grabación a speech.stipa(recording, fs).

1. La función de transferencia de modulación

Sección titulada «1. La función de transferencia de modulación»

La reverberación y el ruido no amortiguan el habla de manera uniforme; emborronan su envolvente: las modulaciones lentas de intensidad (0,63–12,5 Hz) que transportan las sílabas. El STI cuantifica cuánta de esa modulación sobrevive de la boca al oído, por banda de octava, como la función de transferencia de modulación (MTF) . Un canal tipo delta mantiene (STI = 1); la reverberación filtra paso bajo la envolvente siguiendo la forma cerrada de Schroeder, y el ruido estacionario la escala:

La profundidad de modulación es lo que merece la pena medir porque la inteligibilidad viaja en la profundidad de los valles de la envolvente, no en la sonoridad de los picos. Quien habla alterna ráfagas de energía (vocales) con casi silencios (oclusiones, arranques de fricativas) al ritmo de las sílabas, y quien escucha segmenta el habla oyendo esos valles. Una cola reverberante rellena los valles por detrás, porque la energía tardía se esparce en los huecos; el ruido estacionario eleva su suelo. En ambos casos la profundidad de modulación recibida se encoge, y con ella el contraste entre sonidos del habla, aunque el nivel medio apenas cambie. El método completo sondea en 14 frecuencias de modulación (de 0,63 Hz a 12,5 Hz en pasos de tercio de octava) en cada una de las 7 bandas de octava de 125 Hz a 8 kHz, convierte cada en una relación señal-ruido efectiva acotada a ±15 dB y combina los resultados, ponderados por banda, en el índice: el STI es una SNR efectiva de la envolvente, llevada a .

Eso es una afirmación sobre una forma de onda, así que merece la pena verla sobre una. El clip de abajo envía una envolvente de 4 Hz con modulación plena — una ráfaga y un hueco al ritmo de las sílabas por cada cuarto de segundo — a través de la banda de octava de 1 kHz de una sala, y deja que primero el tiempo de reverberación y después el ruido la desmonten. La traza recibida es la sonda convolucionada con la misma sobre la que corre la integral de Schroeder de arriba, así que la profundidad que puedes medir en la pantalla es la que devuelve la biblioteca. Las dos mitades están dibujadas con la media recibida constante, que es justo de lo que se trata: un sonómetro apuntado a cualquier fotograma de este clip lee el mismo número, y el índice no.

Una envolvente de intensidad de cuatro hercios con modulación plena se recibe a través de la banda de octava de un kilohercio de una sala. Mientras el tiempo de reverberación barre de 0,30 a 2,50 segundos los picos bajan y los valles se rellenan hacia una línea media que no se mueve, y la profundidad de modulación medida cae de 0,90 a 0,26; la curva de transferencia de modulación de al lado baja en cada una de las catorce frecuencias de modulación, los siete índices de transferencia de modulación por banda caen con ella y el índice de transmisión del habla recorre desde 0,84 hasta 0,40. Después, con un tiempo de reverberación fijo de un segundo, la relación señal-ruido de habla barre de 25 a 0 decibelios: en su lugar sube un suelo de ruido sombreado bajo la traza, la media sigue sin moverse y la profundidad vuelve a caer, hasta 0,28, para un índice de transmisión del habla de 0,36.

Descargar la animación (WebM)

Dos mecanismos, una sola magnitud. La reverberación esparce energía por los huecos, así que la envolvente se encoge en torno a su media; el ruido estacionario rellena los huecos desde abajo, así que sube un suelo por debajo. Ninguno de los dos cambia el nivel medio, y los dos destruyen el contraste con el que quien escucha segmenta las sílabas.

Una envolvente de intensidad de cuatro hercios con modulación plena se recibe a través de la banda de octava de un kilohercio de una sala. Mientras el tiempo de reverberación barre de 0,30 a 2,50 segundos los picos bajan y los valles se rellenan hacia una línea media que no se mueve, y la profundidad de modulación medida cae de 0,90 a 0,26; la curva de transferencia de modulación de al lado baja en cada una de las catorce frecuencias de modulación, los siete índices de transferencia de modulación por banda caen con ella y el índice de transmisión del habla recorre desde 0,84 hasta 0,40. Después, con un tiempo de reverberación fijo de un segundo, la relación señal-ruido de habla barre de 25 a 0 decibelios: en su lugar sube un suelo de ruido sombreado bajo la traza, la media sigue sin moverse y la profundidad vuelve a caer, hasta 0,28, para un índice de transmisión del habla de 0,36.

Descargar la animación (WebM)

Dos mecanismos, una sola magnitud. La reverberación esparce energía por los huecos, así que la envolvente se encoge en torno a su media; el ruido estacionario rellena los huecos desde abajo, así que sube un suelo por debajo. Ninguno de los dos cambia el nivel medio, y los dos destruyen el contraste con el que quien escucha segmenta las sílabas.

Las dos degradaciones no se parecen en nada en esa curva, y por eso el índice necesita la entera y no un solo número:

Dos paneles de la función de transferencia de modulación en la banda de octava de 1 kHz, m frente a las catorce frecuencias de modulación de 0,63 a 12,5 Hz sobre un eje logarítmico. Izquierda: tiempos de reverberación de 0,3, 0,9 y 2,5 segundos dan tres curvas paso bajo cuyo codo baja en frecuencia a medida que se alarga el decaimiento, cada una acompañada de la predicción de Schroeder en forma cerrada a trazos, con las dos frecuencias de modulación STIPA de esta banda marcadas en 2 y 10 Hz. Derecha: con un tiempo de reverberación fijo de 0,9 segundos, relaciones señal-ruido de habla de 20, 10 y 0 dB escalan la misma curva sin ruido por un factor que no depende de la frecuencia de modulación, con la curva de 0 dB situada en torno a la mitad de la curva sin ruidoDos paneles de la función de transferencia de modulación en la banda de octava de 1 kHz, m frente a las catorce frecuencias de modulación de 0,63 a 12,5 Hz sobre un eje logarítmico. Izquierda: tiempos de reverberación de 0,3, 0,9 y 2,5 segundos dan tres curvas paso bajo cuyo codo baja en frecuencia a medida que se alarga el decaimiento, cada una acompañada de la predicción de Schroeder en forma cerrada a trazos, con las dos frecuencias de modulación STIPA de esta banda marcadas en 2 y 10 Hz. Derecha: con un tiempo de reverberación fijo de 0,9 segundos, relaciones señal-ruido de habla de 20, 10 y 0 dB escalan la misma curva sin ruido por un factor que no depende de la frecuencia de modulación, con la curva de 0 dB situada en torno a la mitad de la curva sin ruido

La reverberación y el ruido degradan la misma magnitud de dos maneras distinguibles. Un decaimiento es un filtro paso bajo sobre la envolvente, y alargarlo baja el codo (las líneas a trazos son la forma cerrada de arriba, que los puntos medidos siguen de cerca). El ruido estacionario, en cambio, multiplica toda la curva por , que es plano en : a 0 dB ese factor vale exactamente un medio. Una sola frecuencia de modulación no puede distinguir una cosa de la otra, y por eso el método completo sondea catorce y el STIPA sigue sondeando dos por banda (marcadas en el panel izquierdo para esta banda).

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import speech
fs = 48000
rng = np.random.default_rng(0)
# Las 14 frecuencias de modulación del STI completo (0,63 Hz a 12,5 Hz, tercio de octava).
MOD_FREQS = np.array([0.63, 0.80, 1.00, 1.25, 1.60, 2.00, 2.50,
3.15, 4.00, 5.00, 6.30, 8.00, 10.0, 12.5])
def decay(t60):
n = np.arange(int(2.5 * t60 * fs))
return rng.standard_normal(n.size) * np.exp(-6.9078 * n / fs / t60)
fig, (ax_t, ax_n) = plt.subplots(1, 2, figsize=(12.6, 5.2))
for t60 in (0.3, 0.9, 2.5):
mtf = speech.sti_from_impulse_response(decay(t60), fs).mtf[3] # 1 kHz
ax_t.semilogx(MOD_FREQS, mtf, "o-", label=f"T60 = {t60} s")
closed = 1 / np.sqrt(1 + (2 * np.pi * MOD_FREQS * t60 / 13.8) ** 2)
ax_t.semilogx(MOD_FREQS, closed, "--")
ir = decay(0.9)
for snr in (20.0, 10.0, 0.0):
mtf = speech.sti_from_impulse_response(ir, fs, snr=snr).mtf[3]
ax_n.semilogx(MOD_FREQS, mtf, "o-", label=f"SNR = {snr:g} dB")
ax_t.legend(); ax_n.legend()
plt.show()
STI frente al tiempo de reverberación con las bandas de valoración del Anexo F de IEC 60268-16 sombreadasSTI frente al tiempo de reverberación con las bandas de valoración del Anexo F de IEC 60268-16 sombreadas

Los marcadores son ejecuciones completas de sti_from_impulse_response sobre decaimientos sintetizados; la línea a trazos es la predicción analítica de Schroeder, así que su acuerdo es la comprobación de coherencia del propio método indirecto. La escalera sombreada del margen derecho es la escala de valoración del Anexo F, de U a A+, la letra de rating que devuelve el resultado, de modo que la curva se lee directamente como la clase que puede alcanzar una sala con ese tiempo de reverberación.

Mostrar el código de esta figura
# Las dos cosas que muestra la figura: los puntos medidos frente a la forma
# cerrada, y la escalera del Anexo F contra la que se leen.
t60_points = [0.3, 0.5, 0.8, 1.2, 2.0, 3.0, 5.0]
alpha = np.array([0.085, 0.127, 0.230, 0.233, 0.309, 0.224, 0.173]) # Ed.5 masculina
beta = np.array([0.085, 0.078, 0.065, 0.011, 0.047, 0.095])
def analytic_sti(t60):
m = 1 / np.sqrt(1 + (2 * np.pi * MOD_FREQS * t60 / 13.8) ** 2)
snr_eff = np.clip(10 * np.log10(m / (1 - m)), -15.0, 15.0) # el recorte a ±15 dB
mti = np.full(7, ((snr_eff + 15.0) / 30.0).mean())
return float(alpha @ mti - beta @ np.sqrt(mti[:-1] * mti[1:]))
measured = [speech.sti_from_impulse_response(decay(t), fs).sti
for t in t60_points]
print(np.round(measured, 3)) # [0.827 0.731 0.641 0.555 0.437 0.368 0.269]
fig, ax = plt.subplots(figsize=(10, 6))
edges = [0.36, 0.40, 0.44, 0.48, 0.52, 0.56, 0.60, 0.64, 0.68, 0.72, 0.76]
letters = ["U", "J", "I", "H", "G", "F", "E", "D", "C", "B", "A", "A+"]
for lo, hi, letter in zip([0.15, *edges], [*edges, 0.95], letters):
ax.axhspan(lo, hi, color=plt.get_cmap("RdYlGn")(letters.index(letter) / 11),
alpha=0.18, lw=0, zorder=0)
ax.text(1.005, (lo + hi) / 2, letter, transform=ax.get_yaxis_transform(),
va="center", fontsize=8)
dense = np.logspace(np.log10(0.25), np.log10(6.0), 200)
ax.semilogx(dense, [analytic_sti(t) for t in dense], "--")
ax.semilogx(t60_points, measured, "o")
ax.set_xlabel("Tiempo de reverberación T60 [s]")
ax.set_ylabel("STI")
ax.set_ylim(0.15, 0.95)
plt.show()

Las dos vías de abajo parten de una señal que recorrió un camino real, y el apartado 7 concreta qué la produce. La página cubre dos mediciones físicamente distintas, un hablante sin amplificar en una sala y un sistema de sonido excitado eléctricamente, y el montaje se diferencia sobre todo en por dónde entra la señal.

Dos paneles de la medición física del STI. Panel A, un hablante sin amplificar: una sección de la sala con una boca artificial sobre soporte a 1,5 m de altura de boca apuntando en la dirección de habla, una llamada de nivel de 60 dB(A) a 1 m por delante de la boca como recurso cuando el nivel de habla de operación no se ajusta con el método del Anexo J, un micrófono de medida a 1,2 m de altura de oído sentado con una cota de separación libre respecto a la superficie reflectante más próxima, una segunda posición de recepción en trazo tenue más atrás, y un recuadro en planta con varias posiciones de recepción repartidas por la zona de público. Panel B, un sistema de sonido: la misma sala con una línea de altavoces de techo, una flecha de inyección eléctrica en la entrada del sistema etiquetada como nivel ajustado al del habla según el Anexo J, micrófonos a la altura de escucha en dos zonas de cobertura, y un micrófono de ruido ambiente con el sistema apagado. Ambos paneles etiquetan el receptor como omnidireccional, de tipo campo difuso y calibrado, y una franja al pie dice: la valoración del espacio es la media de las posiciones menos una desviación típicaDos paneles de la medición física del STI. Panel A, un hablante sin amplificar: una sección de la sala con una boca artificial sobre soporte a 1,5 m de altura de boca apuntando en la dirección de habla, una llamada de nivel de 60 dB(A) a 1 m por delante de la boca como recurso cuando el nivel de habla de operación no se ajusta con el método del Anexo J, un micrófono de medida a 1,2 m de altura de oído sentado con una cota de separación libre respecto a la superficie reflectante más próxima, una segunda posición de recepción en trazo tenue más atrás, y un recuadro en planta con varias posiciones de recepción repartidas por la zona de público. Panel B, un sistema de sonido: la misma sala con una línea de altavoces de techo, una flecha de inyección eléctrica en la entrada del sistema etiquetada como nivel ajustado al del habla según el Anexo J, micrófonos a la altura de escucha en dos zonas de cobertura, y un micrófono de ruido ambiente con el sistema apagado. Ambos paneles etiquetan el receptor como omnidireccional, de tipo campo difuso y calibrado, y una franja al pie dice: la valoración del espacio es la media de las posiciones menos una desviación típica

La fuente. Para un hablante sin amplificar se usa una boca artificial o simulador de boca con directividad de cabeza y boca (la norma remite a la ITU-T P.51), porque en un espacio de escucha la inteligibilidad depende de la directividad de la fuente. A falta de ella puede usarse un altavoz de fuente única, de alta calidad y con un diámetro de cono no mayor de 100 mm, y debe describirse junto con los resultados. Hay que verificar que la respuesta en frecuencia de la fuente en tercios de octava queda dentro de ±1 dB en el rango que necesita la señal elegida, de 88 Hz a 11,3 kHz para una señal de STI completo o de respuesta al impulso, o banda de octava a banda de octava de 125 Hz a 8 kHz para STIPA, medida en campo libre, y ecualizarla si no lo está. Después se coloca en el eje del micrófono, en la posición y a la distancia reales del hablante, apuntando en la dirección normal de habla (apartado 7.2 a a c).

El nivel. El nivel de habla de operación se ajusta con el procedimiento del Anexo J. Cuando ese ajuste no está disponible, el recurso de la norma es un nivel equivalente de 60 dB(A) a 1 m por delante de la boca artificial o del altavoz de ensayo. Esto no es un detalle que pueda adivinarse a partir de la sala: un micrófono de proximidad capta un nivel de habla de unos 86 dB(A) a 94 dB(A) a entre 5 cm y 2 cm, y uno de cuello de cisne de unos 80 dB(A) a 86 dB(A) a entre 10 cm y 5 cm (apartado 7.2 d). Para un sistema de sonido la señal se inyecta eléctricamente, lo más cerca posible de la entrada normal para que queden incluidos todos los ecualizadores, retardos y procesadores de la cadena, y se ajusta al nivel del habla en ese punto con el mismo método del Anexo J (apartado 7.4).

El receptor. El dispositivo de medida, micrófono, oído artificial o simulador de cabeza, debe estar calibrado acústicamente en sensibilidad y en respuesta en frecuencia, y la medición se hace en la posición normal del oyente y a la altura de escucha (unos 1,2 m sentado y 1,6 m de pie). Un micrófono único debe ser omnidireccional y de tipo campo difuso; un micrófono direccional da resultados que no se correlacionan con el modelo del STI y no se recomienda (apartados 4.1 y 7.3). Para auriculares se usa un micrófono intraaural o un oído artificial. El ruido ambiente se mide en el mismo punto con la fuente apagada, para poder introducirlo con ambient= o como snr=.

Antes de culpar a la sala, verifica la integridad de la señal de ensayo con una medida de retorno: eso caza un archivo corrupto o sobrecomprimido, y la norma desaconseja los formatos con compresión digital, señalando que se ha comprobado que funcionan los esquemas de al menos 128 kbit/s (apartado 7.2 a).

import numpy as np
from phonometry import speech
fs = 48000
# Una respuesta al impulso medida en la sala (decaimiento sintetizado para que el ejemplo funcione)
ir = np.random.default_rng(0).standard_normal(fs) * np.exp(-6.9 * np.arange(fs) / fs / 0.5)
# Método indirecto: desde una respuesta al impulso medida en la sala
res = speech.sti_from_impulse_response(ir, fs, snr=25.0)
print(f"STI = {res.sti:.2f} ({res.rating})") # 0.73 (A)
# Medición STIPA directa: reproduce speech.stipa_signal() en la sala y grábala
test = speech.stipa_signal(fs, seconds=18.0, level_db=80.0)
recording = test # en la práctica, la señal del micrófono tras la reproducción
res = speech.stipa(recording, fs)
res.plot() # barras del índice de transferencia de modulación (MTI) por banda; STI y valoración en el título

De dónde sale snr=. Es la segunda entrada del método indirecto y lleva toda la degradación por ruido, así que su procedencia importa tanto como la de la respuesta al impulso. Para cada banda de octava es el nivel de banda de la señal de habla en la posición del oyente menos el nivel de banda del ruido ambiente medido en esa misma posición con la fuente apagada, y por eso el argumento admite un vector de 7: el ruido ambiente real rara vez es plano, y un ruido de climatización concentrado en 125 Hz y 250 Hz cuesta a las bandas graves mucho más de lo que sugiere una única cifra de banda ancha. Con snr=None el cálculo supone un canal sin ruido, así que el resultado es el límite propio de la sala y una cota superior de lo que experimentará cualquier oyente; citarlo como un STI medido es exactamente lo que hace que una sala parezca aceptable sobre el papel. Mide una vez el espectro ambiente, mide o estima el espectro del habla en la posición y pasa la diferencia banda a banda; o, cuando importan los niveles absolutos porque entran en juego el enmascaramiento auditivo y el umbral de recepción, pasa level= y ambient= en su lugar para que se apliquen las etapas dependientes del nivel de la norma en vez de un cociente puro.

Venga de donde venga, conviene leer el resultado banda a banda antes de citar el número único: el STI es una combinación ponderada de siete índices de transferencia de modulación por banda de octava, y una sala suele fallar en una parte concreta del espectro, no de forma uniforme.

Índice de transferencia de modulación por banda de octava de 125 Hz a 8 kHz para una sala con tiempo de reverberación de 0,9 s y relación señal-ruido de habla de 15 dB: las siete barras quedan juntas entre 0,54 y 0,60 aproximadamente, con STI = 0,58 y valoración E del Anexo FÍndice de transferencia de modulación por banda de octava de 125 Hz a 8 kHz para una sala con tiempo de reverberación de 0,9 s y relación señal-ruido de habla de 15 dB: las siete barras quedan juntas entre 0,54 y 0,60 aproximadamente, con STI = 0,58 y valoración E del Anexo F
Mostrar el código de esta figura
import numpy as np
import matplotlib.pyplot as plt
from phonometry import speech
# Una sala reverberante (T60 = 0,9 s) medida con una relación señal-ruido de
# habla de 15 dB: una caída exponencial sintetizada hace de respuesta al
# impulso medida.
fs = 48000
rng = np.random.default_rng(0)
n = np.arange(fs)
ir = rng.standard_normal(fs) * np.exp(-6.9078 * n / fs / 0.9)
res = speech.sti_from_impulse_response(ir, fs, snr=15.0)
print(round(res.sti, 3), res.rating) # 0.583 E
# En una línea: las barras de MTI por banda con el STI y su valoración.
res.plot(language="es")
plt.show()
# A mano, reproduciendo lo que dibuja STIResult.plot():
bandas = [125, 250, 500, 1000, 2000, 4000, 8000]
fig, ax = plt.subplots()
ax.bar(np.arange(len(bandas)), res.mti)
ax.set_xticks(np.arange(len(bandas)))
ax.set_xticklabels([f"{b}" for b in bandas])
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Índice de transferencia de modulación MTI")
ax.set_ylim(0.0, 1.0)
ax.set_title(f"STI = {res.sti:.2f} (valoración {res.rating})")
plt.show()

En esta sala los siete índices quedan dentro de 0,06 entre sí, la firma de una caída uniforme en todo el espectro más un suelo de ruido de banda ancha. Un perfil que se hunde en 125 Hz y 250 Hz apunta a reverberación en graves (poca absorción a baja frecuencia), mientras que uno que cae solo en 4 kHz y 8 kHz suele significar que el altavoz no cubre con sonido directo la posición del oyente, porque el aire y la directividad se llevan primero las bandas agudas. Son remedios distintos, y solo la vista por bandas los distingue.

La medición directa envía la señal STIPA por toda la cadena dibujada abajo, desde la fuente a través de la sala hasta el micrófono y hasta el análisis de modulación por banda que produce el índice.

Cadena de medición del STI: señal de la fuente STIPA a través de la sala hasta el micrófono y el análisis de la MTFCadena de medición del STI: señal de la fuente STIPA a través de la sala hasta el micrófono y el análisis de la MTF

stipa emite un UserWarning cuando la grabación es más corta que los 15 s recomendados (práctica STIPA de IEC 60268-16, de 15 s a 25 s): por debajo de eso las componentes de modulación lentas se promedian sobre muy pocos periodos y el STI queda sesgado a la baja (un bucle de retorno ideal da STI ≈ 0,956 a 5 s frente a ≈ 0,998 a 18 s).

La implementación sigue la Edición 5 (2020): el PDF normativo de la Edición 4 es la base y cada cambio de la Ed. 5 está atribuido a su fuente en el código; el único delta numérico es el espectro de habla masculina revisado del apartado A.6.1. CI comprueba los vectores de verificación de la propia norma: los seis pares de bandas de los factores de ponderación a ±0,001 STI, la tabla de correspondencia ↔ STI, los puntos de control del enmascaramiento dependiente del nivel y decaimientos con la forma de Schroeder a cuatro valores de .

El analizador también se verifica de extremo a extremo con las señales del banco de verificación de IEC 60268-16 rev 5 de stipa.info (Embedded Acoustics BV): la escalera de profundidad de modulación del método directo (Anexo C.3.2), los decaimientos exponenciales del método indirecto frente a la MTF de Schroeder en forma cerrada (C.3.3), la prueba de pendiente del banco de filtros con un tono adyacente sin modular a +41 dB (C.4.2, ), los pares de bandas de los factores de ponderación (A.2.2) y la prueba de distorsión de fase del banco de filtros con portadoras en los bordes de media octava (A.3.1.2, |sesgo de STI| < 0,01 en TI = 0,1–0,9). Las cinco series pasan con las funciones dependientes del nivel desactivadas, como prescribe el banco. Los 49 WAV certificados permanecen en local (datos de terceros, no versionados); CI reconstruye las mismas señales de forma sintética en la serie de conformidad.

Todos los ejemplos de esta página terminan en una letra, y la letra es la parte que lee el cliente. El Anexo F divide la escala en bandas con bordes en 0,36, 0,40, 0,44… 0,76, y la Tabla G.1 del Anexo G da un ejemplo de para qué se usa cada banda. STIResult.rating devuelve la letra; el valor nominal de STI de la tabla de abajo es el centro de la banda:

ValoraciónRango de STINominalUso típico (Anexo G, Tabla G.1)
A+≥ 0,76Estudios de grabación; excelente pero rara vez alcanzable
A0,72–0,760,74Teatros, auditorios de palabra, parlamentos, juzgados, sistemas de ayuda a la audición
B0,68–0,720,70Teatros, auditorios de palabra, teleconferencia
C0,64–0,680,66Mensajes complejos con palabras desconocidas
D0,60–0,640,62Aulas magnas, aulas, salas de conciertos
E0,56–0,600,58Salas de conciertos, iglesias modernas; megafonía de alta calidad
F0,52–0,560,54Megafonía en centros comerciales y edificios públicos, sistemas de alarma por voz, catedrales
G0,48–0,520,50Valor objetivo de los sistemas de alarma por voz
H0,44–0,480,46Alarma por voz y megafonía en entornos acústicos difíciles; límite inferior normal para alarma por voz
I0,40–0,440,42Alarma por voz y megafonía en espacios muy difíciles
J0,36–0,400,38No apto para sistemas de megafonía
U< 0,36No apto para sistemas de megafonía

De ahí se siguen tres cosas. El conocido requisito «STI ≥ 0,5» del trabajo de alarma por voz es la banda G, cuyo comentario en la Tabla G.1 es literalmente «valor objetivo de los sistemas de alarma por voz»; la propia NOTA 1 de la Tabla G.1 añade que sus valores son objetivos mínimos. La escala es deliberadamente gruesa, una banda por cada 0,04 de STI, porque ese paso «se basa en la incertidumbre típica de las mediciones directas de STI», así que una banda de diferencia es lo mínimo por lo que merece la pena discutir y citar tres decimales de STI es falsa precisión. Y 0,04 es más fino que la dispersión entre repeticiones de ≈ 0,03 de una medición STIPA que se señala más abajo, así que una letra puede moverse entre repeticiones sin que el STI haya cambiado en sustancia. Los anexos F y G son informativos, y el objeto y campo de aplicación de la Edición 5 dice sin rodeos que el documento no da criterios para certificar un canal de transmisión, así que un requisito de proyecto se escribe como un STI numérico y la letra se usa para declararlo.

De las posiciones a una valoración del espacio

Sección titulada «De las posiciones a una valoración del espacio»

El STI es una propiedad de un único camino de fuente a oyente, así que verificar una sala o una instalación de alarma por voz es un conjunto de mediciones, no una sola. Coloca el micrófono a la altura de oído de la postura prevista (unos 1,2 m sentado y 1,6 m de pie), reparte las posiciones por la zona atendida incluyendo los rincones acústicamente peores y no los cómodos, y mantén al menos una posición en cada zona de cobertura de altavoz de un sistema distribuido: el apartado 7.6.4 pide «un número representativo de emplazamientos».

La regla de reducción es la parte en la que es fácil equivocarse. El apartado 7.6.4 dice que tomar la media simple de los resultados puede inducir a error, y que una cifra única mejor, que tiene en cuenta la variación espacial, es la media menos una desviación típica, a veces llamada valoración del espacio, y el valor que una posición dada tiene alrededor de un 84 % de probabilidad de alcanzar si los resultados son gaussianos. Mejor todavía es representar la distribución estadística completa. La consecuencia práctica para una ficha: cuando se fija un requirement, hay que decir si el número enmarcado es una posición, la peor posición o la media menos una desviación típica, porque son tres veredictos distintos contra el mismo límite; y las bandas de 0,04 de ancho del Anexo F son la resolución natural a la que resumir la dispersión.

Cada vía tiene modos de fallo que la norma hace explícitos:

  • Canales no lineales o variantes en el tiempo. El método indirecto supone un canal lineal e invariante en el tiempo: una respuesta al impulso no puede representar el recorte, los compresores, el control automático de ganancia ni un vocoder. Para un sistema de sonido con procesado no lineal en la cadena, usa el método directo: la señal STIPA al menos atraviesa la cadena real, y la señal del STI completo es la opción fiable cuando la distorsión es severa (IEC 60268-16, apartado 6.3 y Tabla 3).
  • Efectos dependientes del nivel. El STI no es invariante con el nivel: el enmascaramiento auditivo y el umbral de recepción actúan sobre los niveles de banda absolutos en el oyente. Reproduce la señal de ensayo al nivel de operación del sistema (la práctica del Anexo J de la norma la fija 3 dB por encima del del habla continua en la posición) y pasa level= y ambient= para que el análisis los incluya; una respuesta al impulso medida a nivel alto y reescalada después pierde estos efectos por completo.
  • Ruido de fondo impulsivo y fluctuante. Una herramienta que cae o un murmullo durante una medición directa corrompe las profundidades de modulación medidas (apartado 7.13). El remedio de la norma es la vía indirecta: promedia la respuesta al impulso con MLS o barridos para obtener una MTF sin ruido y añade después la degradación por ruido mediante snr= o level=/ambient=. Una comprobación rápida es ejecutar el analizador con la fuente apagada; el STI residual debería quedar por debajo de 0,20.
  • Dispersión estadística. La señal STIPA es ruido pseudoaleatorio, así que mediciones directas repetidas se dispersan hasta alrededor de 0,03 STI incluso en condiciones estacionarias (y más en ruido fluctuante); repite y compara en lugar de fiarte de una sola pasada, y respeta la duración mínima que señala el UserWarning de arriba.

De esos cuatro, la dependencia del nivel es la que se descarta con más facilidad, así que merece la pena ver de qué tamaño es:

El STI de una única respuesta al impulso fija con un tiempo de reverberación de 0,9 segundos, representado frente al nivel global de habla en el oyente de 40 a 100 dB SPL con un espectro de ruido ambiente fijo. Con nivel y ambiente indicados, la curva sube con fuerza desde 0,25 a 40 dB, alcanza un máximo ancho de unos 0,60 cerca de 72 dB y vuelve a caer hasta 0,55 a 100 dB; sin ellos el resultado es una línea a trazos plana en 0,609. El umbral de recepción está anotado en el extremo bajo y el enmascaramiento auditivo en el alto, y está marcado el nivel de recurso de la norma de 60 dB(A) a 1 mEl STI de una única respuesta al impulso fija con un tiempo de reverberación de 0,9 segundos, representado frente al nivel global de habla en el oyente de 40 a 100 dB SPL con un espectro de ruido ambiente fijo. Con nivel y ambiente indicados, la curva sube con fuerza desde 0,25 a 40 dB, alcanza un máximo ancho de unos 0,60 cerca de 72 dB y vuelve a caer hasta 0,55 a 100 dB; sin ellos el resultado es una línea a trazos plana en 0,609. El umbral de recepción está anotado en el extremo bajo y el enmascaramiento auditivo en el alto, y está marcado el nivel de recurso de la norma de 60 dB(A) a 1 m

La misma sala, la misma respuesta al impulso, y un número que cambia en más de un tercio de la escala. Por debajo de unos 55 dB el habla apenas se despega del ruido propio de la sala y el umbral de recepción de la Tabla A.3 empieza a morder; por encima de unos 80 dB el enmascaramiento auditivo de la Tabla A.2 deja que las bandas graves fuertes enmascaren a las agudas. Entre medias hay una meseta ancha, y por eso medir al nivel de operación no es una manía: una respuesta al impulso medida a nivel alto y reescalada después se queda en la línea a trazos plana y solo vale para un nivel que nadie anotó.

Mostrar el código de esta figura
# `ir` y `fs` son la sala reverberante de esta sección.
ambient = np.array([45.0, 40.0, 35.0, 30.0, 28.0, 25.0, 22.0]) # dB SPL
# El espectro de habla masculina de la Ed.5, apartado A.6.1, relativo a la banda de 500 Hz.
shape = np.array([-2.5, 0.5, 0.0, -6.0, -12.0, -18.0, -24.0])
shape_total = 10 * np.log10(np.sum(10 ** (shape / 10)))
totals = np.arange(40.0, 100.5, 2.5)
curve = [speech.sti_from_impulse_response(
ir, fs, level=shape - shape_total + t, ambient=ambient).sti for t in totals]
print(round(min(curve), 3), round(max(curve), 3)) # 0.246 0.604
print(round(speech.sti_from_impulse_response(ir, fs).sti, 3)) # 0.609
fig, ax = plt.subplots()
ax.plot(totals, curve)
ax.axhline(speech.sti_from_impulse_response(ir, fs).sti, linestyle="--")
ax.set_xlabel("Nivel global de habla en el oyente [dB SPL]")
ax.set_ylabel("STI")
plt.show()

Parámetros de sti_from_impulse_response() / stipa()

Sección titulada «Parámetros de sti_from_impulse_response() / stipa()»
ParámetroTipoUnidadesRango / valor por defectoNotas
ir / xarray 1Dcualquiera / Pano vacíoRespuesta al impulso (indirecto) o grabación STIPA (directo)
fsintHz> 0
snrfloat o vector de 7, opcionaldBpor defecto NoneAñade la degradación por ruido estacionario
levelvector de 7, opcionaldB SPLpor defecto NoneActiva el enmascaramiento auditivo + umbral de recepción (Tablas A.2/A.3)
ambientvector de 7, opcionaldB SPLrequiere levelNiveles de banda del ruido ambiente
referencearray 1D, opcional (stipa)por defecto NoneSeñal de la fuente medida en lugar del nominal

Ambas devuelven STIResult: sti, mti (7 bandas), mtf (7×14 o 7×2), band_levels, rating (letra del Anexo F, A+U).

STIResult.report(path) genera una ficha PDF de una página dispuesta como un informe de verificación de inteligibilidad de un sistema de megafonía o de alarma por voz: una línea de base normativa que indica el método de medición (el método indirecto de STI completo a partir de una respuesta al impulso, o el método directo STIPA sobre una señal grabada), un bloque de metadatos opcional, una tabla del índice de transferencia de modulación MTI por bandas de octava junto a las barras de MTI por banda (el .plot() del propio resultado), el número único enmarcado STI = X con la banda de valoración del Anexo F, una fila de veredicto opcional y un pie con el descargo fijo. Usa el mismo contenedor ReportMetadata y el mismo motor que la ficha de aislamiento de ISO 717; un requirement indicado se interpreta como el STI mínimo exigido (un STI mayor cumple). La generación necesita reportlab y, para la figura que incrusta la ficha, matplotlib (pip install "phonometry[report,plot]"); solo se admite engine="reportlab". Pasa language="es" para la ficha en español.

from phonometry import ReportMetadata, speech
res = speech.sti_from_impulse_response(ir, fs)
res.report(
"sti_fiche.pdf",
metadata=ReportMetadata(
specimen="Línea de altavoces de alarma por voz en vestíbulo",
measurement_standard="IEC 60268-16",
laboratory="Laboratorio de referencia Phonometry",
requirement=0.5, # STI mínimo exigido (un STI mayor cumple)
),
language="es",
)

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

Informe de ejemplo STI IEC 60268-16 (PDF)

Ficha de índice de transmisión del habla de una página: cabecera de metadatos, tabla del índice de transferencia de modulación por bandas de octava, barras de MTI por banda, el número único enmarcado STI = 0,64 con la banda de valoración del Anexo F y un veredicto CUMPLE frente a un mínimo de 0,5.

Descargar el informe (PDF)

Ficha de índice de transmisión del habla (STIResult.report), STI con la banda del Anexo F.
  • Cubierto

    La IEC 60268-16:2020 (Edición 5) para la opción de habla masculina, la única que conserva la Edición 5: la función de transferencia de modulación y la correspondencia m a STI (apartados A.5.2 a A.5.6), el método indirecto de STI completo desde una respuesta al impulso medida mediante speech.sti_from_impulse_response(), el método directo STIPA del Anexo B mediante speech.stipa_signal() y speech.stipa(), el espectro de la señal de ensayo masculina de la Ed.5 del apartado A.6.1, las correcciones de enmascaramiento auditivo dependiente del nivel y de umbral de recepción de las Tablas A.2 y A.3 (level= y ambient=), y las letras de valoración del Anexo F devueltas como STIResult.rating.

  • No cubierto

    La medición directa de STI completo (la señal de ensayo de 14 frecuencias de modulación reproducida y grabada a través de la cadena real, según el apartado 6.3 y la Tabla 3, recomendada arriba cuando la distorsión es severa) no está implementada: solo están disponibles la señal directa STIPA (stipa_signal/stipa) y el cálculo indirecto de STI completo desde una respuesta al impulso. La opción de habla femenina no falta en la biblioteca: la propia Edición 5 la eliminó (preámbulo, punto d), así que no queda nada por implementar.

  • Acústica de salas: la respuesta al impulso medida que consume el método indirecto, y las métricas de oficinas diáfanas (ISO 3382-3) construidas sobre el STI por posición.
  • Índice de inteligibilidad del habla: el índice basado en audibilidad de ANSI S3.5 que complementa al STI.
  • Sonoridad y Métricas de calidad sonora: sonoridad, agudeza, tonalidad y aspereza del sonido recibido.
  • Teoría: la derivación de la transferencia de modulación y la correspondencia ↔ STI.
  • Referencia de la API: speech.sti.
  • Teoría: Transferencia de modulación y STI: la función de transferencia de modulación, por qué m es un cociente de profundidades de modulación y cómo la matriz de m por bandas de octava se reduce a un único índice.
  • Houtgast, T. y Steeneken, H. J. M. (1985). A review of the MTF concept in room acoustics and its use for estimating speech intelligibility in auditoria. The Journal of the Acoustical Society of America, 77(3), 1069-1077. https://doi.org/10.1121/1.392224El marco de transferencia de modulación de la sección 1 y la correspondencia m ↔ STI sobre la que se construye el índice.
  • International Electrotechnical Commission. (2020). Sound system equipment — Part 16: Objective rating of speech intelligibility by speech transmission index (IEC 60268-16:2020 (Edición 5)). La función de transferencia de modulación y la correspondencia m ↔ STI, la señal de ensayo STIPA y el método directo, el método indirecto desde la respuesta al impulso, el enmascaramiento auditivo y el umbral de recepción (Tablas A.2/A.3), el espectro de habla masculina revisado (apartado A.6.1) y las letras de valoración del Anexo F. El PDF normativo de la Edición 4 es la base y cada cambio de la Ed. 5 está atribuido a su fuente, siendo el único delta numérico el espectro de habla masculina revisado del apartado A.6.1.