Una oficina diáfana no es un problema de reverberación; es un problema de privacidad, y una sala que queda bien en los parámetros de sala cerrada puede suspenderlo igualmente. ISO 3382-3 caracteriza por ello la oficina con cuatro números únicos — , , y el ruido de fondo medio — medidos a lo largo de una línea de puestos de trabajo, alejándose de un hablante. Esta guía cubre esa cadena de medición — las magnitudes, la línea de medición a escala y la ficha acreditada — y después le da la vuelta a la pregunta: en fase de proyecto, antes de que exista ninguna oficina ni ningún restaurante, el modelo de Long de ruido autogenerado por los ocupantes predice el fondo que genera una sala ocupada a partir de sus propios ocupantes, y convierte una relación habla-ruido objetivo en un área de absorción por mesa. Primero la medición, después el diseño; las dos mitades no comparten más que la sala. Las respuestas al impulso y los niveles que la sustentan se adquieren como en Medición de la respuesta al impulso; el STI por posición sale de la guía del Índice de transmisión del habla; los parámetros de decaimiento de sala cerrada viven en Acústica de salas.
Privacidad del habla a lo largo de una línea de puestos
Sección titulada «Privacidad del habla a lo largo de una línea de puestos»La acústica de oficinas diáfanas trata de la privacidad del habla: con
qué rapidez el habla de un hablante se desvanece hasta la ininteligibilidad a
medida que uno se aleja. Los niveles y el STI se miden a lo largo de una fila
de puestos de trabajo (al menos 4 posiciones, preferiblemente 6–10), y cuatro
magnitudes de un solo número resumen la sala: la distancia de distracción
, la tasa de decaimiento espacial , el nivel de habla a 4 m
y el ruido de fondo medio ponderado A
(apartado 6.4). La distancia de privacidad y el STI en el puesto más
cercano son añadidos opcionales; open_plan_metrics devuelve ,
, y . La tasa de decaimiento
espacial del habla ponderada A es la pendiente del nivel frente a
, escalada a una cifra por duplicación usando solo las posiciones
de 2–16 m,
con leído en la misma recta a 4 m. La distancia de distracción (STI = 0,50) y la distancia de privacidad (STI = 0,20) provienen de una regresión lineal del STI frente a la distancia.
Las dos distancias se leen sobre la recta ajustada, y el apartado 6.3
permite que la lectura caiga fuera del tramo medido: la Figura 3 b) dibuja la
recta prolongada hasta el cruce. Así que un que cae dentro de la línea es
una medición, mientras que un bastante más allá de la última posición es
una extrapolación cuya confianza decae con la distancia: decláralo con el tramo
medido al lado (« = 17 m, extrapolado desde posiciones hasta 16 m»). La
norma también prevé oficinas en las que el STI nunca baja a 0,20 — «puede
resultar imposible determinar la distancia de privacidad si el STI > 0,20 en
todas las posiciones» — y eso es lo que significa aquí un nan, no un fallo. Un
STI no decreciente a lo largo de la línea suele indicar que la última posición
quedó cerca de una superficie reflectante, donde suben tanto el nivel como el
STI; el apartado 6.2 dice que se descarte esa posición de los ajustes de
y en lugar de darle vueltas.
El Anexo A de la ISO 3382-3 es informativo, pero fija los dos extremos de la escala:
| Magnitud | Oficina mala típica | Objetivo bueno |
|---|---|---|
| < 5 dB | ≥ 7 dB | |
| > 50 dB | ≤ 48 dB | |
| > 10 m | ≤ 5 m |
Esos intervalos son informativos, y las guías nacionales o el pliego del cliente prevalecen sobre ellos. Lee y como una pareja: la tasa de decaimiento es una pendiente y el nivel a 4 m es su ordenada, así que citar cualquiera de los dos por separado favorece o condena la sala.
es la cuarta magnitud exigida y no es un adorno: el ruido de fondo se mide en bandas de octava en todas las posiciones con la misma integración de s, se pondera A y se promedia sobre la línea, y esa media es el enmascarador frente al que se calcula el STI de cada posición. Promediarlo espacialmente es lo que deja y sin ambigüedad. Es también la razón de que el diseño de una oficina diáfana tenga dos palancas y no una — atenuación (mamparas, techo absorbente, distribución: suben y bajan ) y enmascaramiento (subir el fondo para que el habla pierda antes la inteligibilidad) — y de que la oficina se mida amueblada, desocupada y con las instalaciones en marcha. Una oficina medida con la ventilación o el sistema de enmascaramiento bajados devuelve un STI mayor en todas las posiciones y desplaza las dos distancias metros hacia fuera sin que nada haya cambiado en la sala.
import numpy as npfrom phonometry import room
# Una línea de laboratorio: los niveles están construidos con 7 dB limpios por# duplicación y el STI con una recta de -0,03 por metro, para que cada número# impreso pueda comprobarse a mano. Una línea medida no es tan pulcra (ver abajo).r = np.array([2.0, 4.0, 6.0, 8.0, 12.0, 16.0]) # distancias al hablante (m)lp = 65.0 - 7.0 * np.log2(r) # nivel de habla ponderado A (dB)sti = 0.70 - 0.03 * r # STI por posición
m = room.open_plan_metrics(r, lp, sti)print(round(m.d2s, 1), round(m.lp_as_4m, 1)) # 7.0 dB, 51.0 dBprint(round(m.rd, 1), round(m.rp, 1)) # 6.7 m, 16.7 mm.plot() # la regresión de decaimiento espacial de la figura de abajoLeer esta oficina. = 7,0 dB es exactamente el umbral de oficina buena del Anexo A, pero = 51,0 dB queda por encima de la línea de 50 dB de oficina mala, y se queda aun así en 6,7 m. Es una buena tasa de decaimiento gastada desde un nivel de partida demasiado alto, así que la corrección es atenuar cerca del hablante — una mampara, una isla acústica sobre el puesto — y no ganar más decaimiento más lejos. Y una línea medida no se parece a esta: las posiciones se dispersan en torno a la recta ajustada, típicamente uno o dos decibelios, con las cercanas tiradas hacia arriba por el campo directo y las lejanas aplanadas por el suelo de ruido de fondo. Lo que se declara es la regresión, no ninguna posición suelta: se lee sobre la recta aunque no hubiera ningún micrófono a 4 m, que es también la razón de que se prefieran seis posiciones — cuatro apenas sujetan una pendiente en cuanto hay que descartar una de ellas.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import room
r = np.array([2.0, 4.0, 6.0, 8.0, 12.0, 16.0]) # distancias al hablante (m)lp = 65.0 - 7.0 * np.log2(r) # nivel de habla ponderado A (dB)sti = 0.70 - 0.03 * r # STI por posiciónm = room.open_plan_metrics(r, lp, sti)
# En una línea: la regresión D2,S reconstruida con los campos del resultado,# con los cruces rD / rP marcados (la figura superior añade además los puntos# medidos y el eje de STI):m.plot(language="es")plt.show()import matplotlib.pyplot as pltimport numpy as npfrom phonometry import room
r = np.array([2.0, 4.0, 6.0, 8.0, 12.0, 16.0]) # distancias al hablante (m)lp = 65.0 - 7.0 * np.log2(r) # nivel de habla ponderado A (dB)sti = 0.70 - 0.03 * r # STI por posiciónm = room.open_plan_metrics(r, lp, sti)
# Decaimiento espacial: Lp,A,S medido frente a la distancia en eje logarítmico,# la regresión D2,S reconstruida con los campos del resultado, y el STI con los# cruces rD / rP en un eje gemelo:b = -m.d2s / np.log10(2.0) # pendiente de la regresión frente a lg(r)a = m.lp_as_4m - b * np.log10(4.0) # ordenada desde el nivel a 4 mrr = np.logspace(np.log10(2.0), np.log10(16.0), 100)
fig, ax = plt.subplots()ax.semilogx(r, lp, "o", label="Lp,A,S medido")ax.semilogx(rr, a + b * np.log10(rr), "--", label=f"D2,S = {m.d2s:.1f} dB")ax.plot(4.0, m.lp_as_4m, "D", label=f"Lp,A,S,4m = {m.lp_as_4m:.0f} dB")ax.set_xlabel("Distancia al hablante r [m]")ax.set_ylabel("Nivel de habla ponderado A [dB]")ax.set_xlim(1.8, 20.0)
twin = ax.twinx()twin.semilogx(r, sti, "s-", color="#2ca02c", label="STI")twin.axvline(m.rd, ls=":", color="#2ca02c")twin.axvline(m.rp, ls=":", color="#9467bd")twin.annotate(f"rD = {m.rd:.1f} m", (m.rd, 0.52))twin.annotate(f"rP = {m.rp:.1f} m", (m.rp, 0.22))twin.set_ylabel("STI")twin.set_ylim(0.0, 1.0)
lines, labels = ax.get_legend_handles_labels()tl, tlab = twin.get_legend_handles_labels()ax.legend(lines + tl, labels + tlab, loc="best")plt.show()Frente a la escala del Anexo A, esa única oficina queda entre dos salas muy distintas:
Los dos extremos del Anexo A sobre un mismo eje. La oficina tratada cumple los tres objetivos; la sin tratar incumple los tres, y su distancia de privacidad — 24 m leídos sobre una línea de 16 m — es exactamente la extrapolación de la que se advertía arriba.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as np# `room` es el import del primer fragmento de arriba.
positions = np.array([2.0, 3.0, 4.0, 6.0, 8.0, 11.0, 16.0])for d2s, lp_4m, sti_0, sti_slope in ((8.0, 47.0, 0.62, 0.0267), (4.0, 52.0, 0.75, 0.0227)): slope = -d2s / np.log10(2.0) levels = (lp_4m - slope * np.log10(4.0)) + slope * np.log10(positions) res = room.open_plan_metrics(positions, levels, sti_0 - sti_slope * positions) print(round(res.d2s, 1), round(res.lp_as_4m, 1), round(res.rd, 1), round(res.rp, 1)) # 8.0 47.0 4.5 15.7 / 4.0 52.0 11.0 24.2 plt.semilogx(positions, levels, "o--")plt.show()La propia línea merece una planta a escala. plot_open_plan_geometry dibuja
la fuente, la línea de micrófonos entre los puestos de trabajo y las dos
distancias sobre el eje, y un resultado que retuvo sus posiciones redibuja su
propia línea con m.plot_geometry().
Todas las magnitudes de ISO 3382-3 salen de esta única línea: seis micrófonos de 2 m a 16 m entre los puestos de trabajo, con y cayendo entre ellos.
Mostrar el código de esta figura
import matplotlib.pyplot as pltfrom phonometry import room
# La línea de 2-16 m del ejemplo, con las distancias de distracción y# de privacidad marcadas sobre el eje.room.plot_open_plan_geometry([2.0, 4.0, 6.0, 8.0, 12.0, 16.0], rd=6.5, rp=13.0, language="es")plt.show()
# Un resultado retiene sus posiciones, así que m.plot_geometry() dibuja# su propia línea con los rD y rP de la regresión.Medir la línea
Sección titulada «Medir la línea»Los apartados 5.1 y 5.2 fijan todo lo que el dibujo de arriba deja implícito.
La fuente (5.1.1). Un altavoz omnidireccional radiando ruido rosa, que cumpla los requisitos de omnidireccionalidad de la ISO 3382-1 — la norma es explícita sobre el porqué: quien trabaja en una oficina diáfana no habla de forma continua en ninguna dirección fija. Una señal determinista de espectro rosa (una MLS o un barrido, adquiridos como en la guía de la respuesta al impulso) es un sustituto admitido, y los resultados se obtienen de la respuesta al impulso. Su potencia acústica se verifica como en la ISO 3382-1, con la fuente a 1,2 m, y el apartado 6.2 fija el nivel: suficiente en cada banda de octava para que el ruido rosa supere al fondo en 6 dB en la posición más lejana.
La cadena de recepción (5.1.2). Un sonómetro que cumpla la clase 1 de la IEC 61672-1, un micrófono omnidireccional (incluido todo lo que se le acople) y filtros de octava conformes a la IEC 61260. Si la señal se graba para procesarla después, toda la cadena tiene que cumplir.
El estado de la sala (5.2.1). Se mide amueblada, sin nadie presente salvo los operadores, y con la climatización y cualquier sistema de enmascaramiento funcionando a la potencia de un día de trabajo normal. La norma enuncia el fallo directamente: si las fuentes funcionan a potencia reducida, los valores de STI salen demasiado altos, lo que sobrestima tanto como . Y como no hay personas, el enmascaramiento que aporta la conversación real tampoco está en la medición, así que las distancias reales en uso son más cortas que las medidas.
La línea (5.2.2). Cruza los puestos de trabajo y no tiene por qué ser recta. Se prefieren de 6 a 10 posiciones sucesivas y el mínimo es 4, con la primera en el puesto más cercano. La fuente y el micrófono se sitúan ambos a la altura de la cabeza en un puesto, 1,2 m sobre el suelo — los puestos de trabajo de pie quedan fuera de alcance —, y al menos a 0,5 m de las mesas y a 2,0 m de las paredes y demás superficies reflectantes. Se usan al menos dos posiciones de fuente; si solo cabe una línea, se mide con dos fuentes emitiendo en sentidos opuestos. Allí donde cambian el techo o el mobiliario, la oficina se trata como zonas distintas, cada una con su propio juego de números únicos.
Qué se registra en cada punto (5.2.3). Cuatro cosas: el nivel de ruido rosa por bandas de octava, el STI, el nivel de fondo por bandas de octava y la distancia a la fuente — de 125 Hz a 8 kHz, con un tiempo de integración de al menos 10 s (más largo con un fondo no estacionario, como el tráfico).
Por qué la ventana se detiene en 2 m y en 16 m. El apartado 6.2 solo admite en la regresión de las posiciones entre 2 m y 16 m, y los dos extremos tienen su razón. Más cerca de 2 m el receptor está en el campo directo del hablante, cuyos 6 dB por duplicación son una propiedad del campo libre y no de la oficina; más allá de 16 m el nivel de habla ha alcanzado normalmente el fondo, de modo que la regresión estaría ajustando ruido. Una línea de seis posiciones de 2 m a 16 m mantiene así al menos cuatro puntos dentro del ajuste aunque haya que descartar el último por estar cerca de una pared.
Del ruido rosa medido a
Sección titulada «Del ruido rosa medido a Lp,A,S,n»Un altavoz no es un hablante, así que ISO 3382-3 no usa nunca su nivel directamente. El apartado 6.2 mide la sala con ruido rosa y después vuelve a vestir el resultado con el espectro de una voz real. De cada posición no se guarda su nivel absoluto, sino la atenuación banda a banda respecto a la fuente a 1 m (Ec. 1-2), de modo que el nivel de salida del altavoz se cancela y solo tiene que quedar lo bastante por encima del fondo:
Esa atenuación se aplica después al espectro de habla de esfuerzo normal (Ec. 3), se pondera A y se suma en energía sobre las siete bandas de octava (Ec. 4):
La Tabla 1 aporta el espectro omnidireccional de esfuerzo normal y las ponderaciones A:
| Banda | [Hz] | [dB] | [dB] |
|---|---|---|---|
| 1 | 125 | 49,9 | −16,1 |
| 2 | 250 | 54,3 | −8,6 |
| 3 | 500 | 58,0 | −3,2 |
| 4 | 1000 | 52,0 | 0,0 |
| 5 | 2000 | 44,8 | +1,2 |
| 6 | 4000 | 38,8 | +1,0 |
| 7 | 8000 | 33,5 | −1,1 |
cuyo total ponderado A es 57,4 dB: una voz que habla con normalidad a 1 m.
La lectura ponderada A del ruido rosa en el sonómetro no es la entrada que
espera open_plan_metrics. Meterla da un nivel absoluto que es el del
altavoz, no el de un hablante, así que sale directamente mal y
queda sesgada por la diferencia espectral entre el ruido rosa y el
habla. Ejecuta antes la cadena de cuatro pasos:
import numpy as np# `room` es el import del bloque de open_plan_metrics de arriba.
# Tabla 1 de ISO 3382-3: habla unisex de esfuerzo normal a 1 m, omnidireccional,# y la ponderación A, bandas de octava de 125 Hz a 8 kHz.speech_1m = np.array([49.9, 54.3, 58.0, 52.0, 44.8, 38.8, 33.5])a_weight = np.array([-16.1, -8.6, -3.2, 0.0, 1.2, 1.0, -1.1])
# Niveles de ruido rosa medidos por banda de octava, una fila por posición de medición.pink = np.array([ [72.0, 71.0, 70.0, 69.0, 67.0, 64.0, 60.0], [67.0, 66.0, 64.5, 63.0, 60.5, 57.0, 52.5], [63.5, 62.0, 60.0, 58.0, 55.0, 51.0, 46.0], [60.0, 58.5, 56.0, 53.5, 50.0, 45.5, 40.0],])source_1m = np.full(7, 90.0) - 11.0 # Ec. (1): Lp,Ls,1m = Lw,Ls - 11 dB
d_n = source_1m - pink # Ec. (2): atenuación por bandaspeech_n = speech_1m - d_n # Ec. (3): revestida de hablalp_a_s = 10 * np.log10(np.sum(10 ** ((speech_n + a_weight) / 10), axis=1))print(np.round(lp_a_s, 1)) # [48. 42.4 37.8 33.8] Ec. (4)
dist = np.array([2.0, 4.0, 8.0, 16.0])chain = room.open_plan_metrics(dist, lp_a_s, 0.70 - 0.03 * dist)print(round(chain.d2s, 1), round(chain.lp_as_4m, 1)) # 4.7 42.9La aritmética de bandas en sí — ponderación A y suma en energía — es la misma que en Niveles.
Parámetros de open_plan_metrics()
Sección titulada «Parámetros de open_plan_metrics()»| Parámetro | Tipo | Unidades | Rango / valor por defecto | Notas |
|---|---|---|---|---|
positions_m | array 1D | m | ≥ 4 posiciones, todas > 0 | Distancias fuente-receptor |
spl_a_speech | array 1D | dB | misma longitud | Nivel de habla ponderado A por posición, procedente de la cadena de las Ec. (1)-(4) del apartado 6.2 — no los dB(A) de ruido rosa medidos |
sti_values | array 1D | — | misma longitud | STI por posición (método completo de IEC 60268-16) |
Devuelve un OpenPlanResult con d2s, lp_as_4m, rd y rp; su
.plot() redibuja la regresión de decaimiento espacial del apartado 6.2 a
partir de esos cuatro campos y marca rd / rp.
d2s/lp_as_4m son nan si menos de dos posiciones caen en 2–16 m;
rd/rp son nan cuando el STI no decrece con la distancia. El STI por
posición puede medirse a su vez con las herramientas STIPA de la
guía del índice de transmisión del habla.
Informe ISO 3382-3 (.report())
Sección titulada «Informe ISO 3382-3 (.report())»OpenPlanResult.report(path) renderiza una ficha PDF de una página con el
formato de un informe de medición de privacidad acústica en oficinas diáfanas:
la línea de base normativa, un bloque de cabecera de metadatos opcional, una tabla
compacta de las cuatro magnitudes que devuelve open_plan_metrics (,
, la distancia de distracción y la distancia de privacidad
) apilada sobre la gráfica de decaimiento espacial a todo el ancho del
resultado (.plot(), la regresión del apartado 6.2 en el eje logarítmico de
distancia con la lectura a 4 m y los cruces / marcados, la curva al
estilo de la Figura 3), el enmarcado con las demás magnitudes al lado,
y un pie
con el descargo fijo. La ISO 3382-3 caracteriza un espacio en lugar de
definir un cumple/no cumple intrínseco, por lo que la fila de veredicto aparece solo
cuando se suministra una tasa de decaimiento espacial objetivo a través del
campo requirement de los metadatos (ReportMetadata(requirement=...),
interpretada como el mínimo aceptable en dB, según los intervalos de
calidad informativos del Anexo A donde un mayor decaimiento espacial es mejor;
la sala cumple igualando o superando el objetivo). Usa el mismo contenedor
ReportMetadata y el mismo motor de renderizado que la
ficha de acústica de salas ISO
3382-1/-2;
los
campos propios de oficinas diáfanas area (superficie del suelo),
source_positions y receiver_positions (el número de posiciones de medición)
rellenan la cabecera, junto con client, test_room (la oficina o zona),
specimen (la descripción y el estado de amueblamiento), instrumentation,
temperature, relative_humidity, pressure, measurement_standard,
test_date, laboratory, operator, report_id y notes. Al pasar
metadata=None se obtiene una ficha de caracterización simple. La ficha
incrusta la gráfica de decaimiento espacial, por lo que el renderizado necesita
tanto reportlab como matplotlib (pip install "phonometry[report,plot]"); 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).
import numpy as npfrom phonometry import room, ReportMetadata
r = np.array([2.0, 3.0, 4.0, 6.0, 8.0, 11.0, 16.0]) # distancias al hablante (m)# Otra línea de laboratorio, construida con 7 dB limpios por duplicación como# antes; una medida se dispersa un decibelio o dos en torno al ajuste.lp = 62.0 - 7.0 * np.log2(r) # nivel de habla ponderado A (dB)sti = 0.65 - 0.03 * r # STI por posición
result = room.open_plan_metrics(r, lp, sti)result.report( "ficha_oficina_diafana.pdf", metadata=ReportMetadata( test_room="Oficina diáfana B", specimen="Amueblada, desocupada, con ruido de fondo", area=420.0, source_positions=2, receiver_positions=7, measurement_standard="ISO 3382-3", temperature=22.0, relative_humidity=45.0, laboratory="Laboratorio de referencia Phonometry", requirement=7.0, # añade un veredicto frente a un D2,S objetivo ), language="es",) # D2,S + Lp,A,S,4m, rD, rP y la curva de decaimientoLa ficha de ejemplo se regenera con make reports y se mantiene renderizada en
el repositorio; pulsa la vista previa para abrir el PDF.

Ficha de oficina diáfana de una página: una cabecera de metadatos (cliente, oficina/zona, descripción, superficie del suelo, posiciones de fuente y de medición, instrumentación, temperatura, humedad y presión), la tabla de las cuatro magnitudes de número único (D2,S = 7,0 dB por duplicación, Lp,A,S,4m = 48,0 dB, rD = 5,0 m, rP = 15,0 m) sobre la gráfica de decaimiento espacial en un eje logarítmico de distancia con la regresión de D2,S, la lectura a 4 m y los cruces rD y rP, el D2,S enmarcado, y un veredicto CUMPLE frente al objetivo de 7,0 dB.
Ruido autogenerado por los ocupantes
Sección titulada «Ruido autogenerado por los ocupantes»La ISO 3382-3 de arriba mide una oficina. La pregunta complementaria en fase de proyecto es una predicción: en una sala cuya única fuente de ruido son sus propios ocupantes, ¿cuánto sube el fondo y sigue funcionando la conversación? Long (Architectural Acoustics 2.ª ed., cap. 17, ecs. (17.50) a (17.54)) plantea los dos niveles que compiten en el oyente. La señal es el campo directo de la persona sentada enfrente,
y el ruido es el campo reverberante que levantan hablantes simultáneos,
con el nivel de potencia acústica de un hablante (unos 70 dB en conversación normal), la directividad frontal del hablante (unos 2), la distancia hablante-oyente y el área de absorción equivalente por mesa ocupada, de modo que es la absorción total de la sala.
from phonometry import room
# El restaurante duro de Long: unos 20 m² de absorción, un hablante con# Lw = 70 dB y un oyente a 1,2 m al otro lado de la mesa.print(round(room.speech_direct_level(1.2))) # campo directo de 60 dBprint(round(room.crowd_noise_level(1, 20.0))) # 63 dB con un hablanteprint(round(room.crowd_noise_level(20, 20.0))) # 76 dB con 20 mesas
# Un techo de alfa 0,9 sobre la sala de 13,7 x 13,7 m añade 170 m² de absorción.print(round(room.crowd_noise_level(20, 20.0 + 170.0))) # 66 dBRestar ambos da la relación habla-ruido, y este es el resultado que merece la pena recordar:
No sobrevive ni ni . Una sala más llena no es intrínsecamente peor, porque cada mesa nueva aporta a la vez un hablante y su propia cuota de absorción. Lo que decide si un restaurante funciona es la absorción por mesa, no la absorción de la sala. Exigir dB para una comunicación adecuada a una separación a través de la mesa, y dB para que no se escuche a una mesa vecina situada a , se traduce en un par de cotas de diseño (ecs. (17.53) y (17.54)):
from phonometry import room
print(round(room.absorption_per_table(1.0, -6.0), 2)) # 6.31 m2 por mesa a 1 mprint(round(room.absorption_per_table(2.5, -9.0), 1)) # 19.8 m2 con paso de 2,5 m
# Una distribución real: 1,2 m a través de la mesa, 2,0 m hasta la siguiente.print(round(room.absorption_per_table(1.2, -6.0), 2)) # 9.09 m2, cota inferiorprint(round(room.absorption_per_table(2.0, -9.0), 2)) # 12.66 m2, cota superior
crowd = room.crowd_noise([20.0, 95.0, 190.0], distance=1.2)crowd.plot() # ruido autogenerado vs ocupación, frente al límite de -6 dBLas dos cotas son una ventana, y puede estar vacía. Exigir significa que la ventana solo existe cuando : junta las mesas más que eso y no hay absorción alguna que permita conversar a través de tu propia mesa sin que te oigan en la de al lado. La distribución de arriba pasa, con y 3,6 m² de margen entre las cotas.
Izquierda: para una distribución, las dos desigualdades dejan una banda de absorción por mesa factible. Derecha: cuánto mide esa banda a medida que las mesas se separan — por debajo de tiene anchura negativa, que es el enunciado geométrico de que conversación y privacidad se han vuelto incompatibles sea cual sea el material del techo.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as np# `room` es el import del bloque de arriba.
span = np.linspace(0.6, 3.2, 200)plt.plot(span, room.absorption_per_table(span, -6.0), label="comunicación")plt.plot(span, room.absorption_per_table(span, -9.0), label="privacidad")
r_s, r_t = 1.2, 2.0lower = float(room.absorption_per_table(r_s, -6.0))upper = float(room.absorption_per_table(r_t, -9.0))plt.axhspan(lower, upper, alpha=0.2)print(round(upper - lower, 1), round(r_t / r_s, 2)) # 3.6 1.67print(round(float(np.sqrt(6.31 / 3.16)), 2)) # 1.41: la razón de cierreplt.legend(); plt.show()De dónde sale el propio . Para una sala que ya existe, mide el tiempo de reverberación según la ISO 3382-2 e invierte Sabine, — la misma convención que define la ISO 354 —, con las guías de respuesta al impulso y Acústica de salas aportando . Para una sala en proyecto, mídela superficie a superficie como en Absorción acústica en recintos. En cualquiera de los dos casos , con el número de mesas ocupadas simultáneamente — no los comensales, y no las mesas instaladas. Eso es lo que hace que un restaurante a media entrada sea una sala distinta de uno lleno con la misma absorción, y es la razón de que añadir mesas con la absorción fija sea lo que empuja una sala más allá de su límite. Significa también que un T30 medido con la sala vacía basta para predecir cómo sonará llena.
Los mismos 20 hablantes en tres salas. La sala dura (20 m² de absorción) cruza el límite de comunicación antes de que se ocupe la cuarta mesa; añadir el techo absorbente del ejemplo de Long (190 m² en total) mantiene las 20 mesas por debajo. Las curvas son paralelas porque la ocupación siempre cuesta : la única variable de diseño es el desplazamiento vertical, que es la absorción.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import room
# Una línea: el barrido de ocupación directamente desde el resultado.result = room.crowd_noise([20.0, 95.0, 190.0], distance=1.2)result.plot()plt.show()
# O dibujarlo a mano desde la ecuación (17.51):n = np.arange(1, 21)fig, ax = plt.subplots()for area in (20.0, 95.0, 190.0): ax.plot(n, room.crowd_noise_level(n, area), label=f"A = {area:.0f} m²")signal = room.speech_direct_level(1.2)ax.axhline(signal, ls="--", label="Habla a 1,2 m")ax.axhline(signal + 6.0, ls=":", label="Límite de comunicación")ax.set(xlabel="Hablantes simultáneos N", ylabel="Nivel de ruido autogenerado [dB]")ax.legend()plt.show()Parámetros de crowd_noise()
Sección titulada «Parámetros de crowd_noise()»| Parámetro | Tipo | Unidades | Rango / defecto | Notas |
|---|---|---|---|---|
absorption_areas | float o array 1D | m² | > 0 | Áreas de absorción total de la sala a comparar |
talkers | array 1D, opcional | — | ≥ 1, defecto 1..20 | Eje de ocupación |
distance | float | m | > 0, defecto 1,2 | Distancia hablante-oyente |
sound_power_level | float | dB re 1 pW | defecto 70 | del hablante |
directivity | float | — | > 0, defecto 2 | del hablante |
Devuelve un CrowdNoiseResult (talkers, absorption_areas, levels,
signal_level, communication_level, speech_to_noise()) con .plot().
Las piezas speech_direct_level, crowd_noise_level, speech_to_noise_ratio
y absorption_per_table son invocables directamente.
Qué cubre esta guía
Sección titulada «Qué cubre esta guía»Cubierto
Las magnitudes de oficina diáfana del apartado 4 y los apartados 6.2/6.3 de la ISO 3382-3:2012 (, , , ) de
room.open_plan_metrics, con el dibujo a escala de la línea de medición (room.plot_open_plan_geometryy.plot_geometry()) y la ficha ISO 3382-3 de una página con.report(). Las condiciones de medición de los apartados 5.1 y 5.2 y los intervalos de calidad del Anexo A se citan aquí para planificar y para leer los resultados. El modelo de ruido autogenerado por los ocupantes del capítulo 17 de Architectural Acoustics 2.ª ed. de Long (ecs. (17.50) a (17.54)) medianteroom.crowd_noisey sus piezas, con la ventana de diseño de las ecs. (17.53)-(17.54) y su condición de cierre.No cubierto
El STI por posición de la ISO 3382-3 se toma como entrada de
open_plan_metricsen lugar de calcularse dentro de la función: mídelo con las herramientas STIPA de la guía del Índice de transmisión del habla. La cuarta magnitud de número único exigida, el ruido de fondo medio ponderado A , tampoco se calcula aquí: es la media energética ponderada A de los niveles de fondo por banda de octava de cada posición, y le corresponde ir en el informe junto a las tres que sí produce esta página. Tampoco se comprueba ninguna de las condiciones de medición de los apartados 5.1 y 5.2: la función consume distancias, niveles y valores de STI vengan de donde vengan, así que la directividad de la fuente, el estado amueblado y desocupado y la captura del ruido de fondo son responsabilidad del operador y no de la biblioteca. La edición implementada está fijada en la ISO 3382-3:2012; la revisión sucesora ISO 3382-3:2022 retira la distancia de privacidad , añade la distancia de confort y traslada el STI por posición al método indirecto de la IEC 60268-16, y no es la comprobada aquí. El modelo de ruido autogenerado es un cálculo de diseño y deliberadamente no modela el reflejo de Lombard: se cancela en mientras todo el mundo alce la voz por igual, de modo que el modelo explica por qué el nivel se dispara en una sala dura, no dónde se detiene. Supone además un campo reverberante difuso y una única cifra de absorción por mesa, así que no dice nada de las mamparas, la absorción local ni de dónde está cada mesa dentro de la sala.
Véase también
Sección titulada «Véase también»- Acústica de salas: los parámetros de decaimiento ISO 3382-1/2 de la misma sala.
- Medición de la respuesta al impulso: la adquisición tras los niveles por posición.
- Índice de transmisión del habla:
la medición STI/STIPA que alimenta los
sti_valuespor posición. - Índice de inteligibilidad del habla: la mirada de ANSI S3.5 a la misma pregunta de inteligibilidad.
- Niveles: los niveles ponderados A tras el decaimiento espacial.
- Teoría: las derivaciones de acústica de salas en las que se apoya esta página.
- Referencia de la API:
room.open_plan. - Teoría: Respuesta al impulso y parámetros de acústica de salas: la teoría de decaimiento y absorción frente a la que se mide la distancia de distracción de ISO 3382-3.
Referencias
Sección titulada «Referencias»- International Organization for Standardization. (2012). Acoustics — Measurement of room acoustic parameters — Part 3: Open plan offices (ISO 3382-3:2012). Las magnitudes de privacidad del habla en oficinas diáfanas que esta página implementa. Revisada después como ISO 3382-3:2022 (https://www.iso.org/standard/77437.html); la edición de 2012 es la implementada.
- Long, M. (2014). Architectural acoustics (2.ª ed.). Academic Press. https://doi.org/10.1016/C2012-0-03257-5El modelo de ruido autogenerado por los ocupantes del capítulo 17, ecuaciones (17.50) a (17.54).