19 Hojas de estilo auditivas

Contenidos

19.1 Introducción a las hojas de estilo auditivas

El procesamiento sonoro de un documento, comúnmente usado ya por las comunidades de ciegos y discapacitados visuales, combina la síntesis de voz e "íconos sonoros". A menudo tal representación sonora se produce convirtiendo al documento en texto puro y procesándolo con un lector de pantalla --programa o dispositivo que simplemente lee todos los caracteres sobre la pantalla--. Esto resulta en una representación menos efectiva que la que se conseguiría si se mantuviera la estructura del documento. Las hojas de estilo para la presentación sonora pueden utilizarse conjuntamente con las propiedades visuales (mezcla de medios) o como una alternativa sonora a la presentación visual.

Además de las obvias ventajas de accesibilidad, hay otros grandes mercados para escuchar la información, incluyendo el uso en automóviles, sistemas de documentación industrial y médica (intranets), entretenimiento hogareño y ayuda a los usuarios que están aprendiendo a leer o que tienen dificultades de lectura.

Cuando se usan las propiedades auditivas, el lienzo consiste en un espacio físico tridimensional (sonido circundante) y un espacio temporal (uno puede especifar sonidos antes, durante y después de otros sonidos). Las propiedades CSS también permiten a los autores variar la calidad en la síntesis de la voz (tipo de voz, frecuencia, inflexión, etc.).

Ejemplo(s):

H1, H2, H3, H4, H5, H6 {
    voice-family: pablo;
    stress: 20;
    richness: 90;
    cue-before: url("ping.au")
}
P.heidi { azimuth: center-left }
P.pedro { azimuth: right }
P.suave  { volume: x-soft }

Esto dirigirá al sintetizador de voz a leer los títulos con una voz (una especie de "fuente auditiva") llamada "pablo", en un tono llano, pero en voz muy alta. Antes de decir los títulos, se escuchará un archivo de sonido del URL dado. Los párrafos con clase "heidi" parecerán venir del frente y la izquierda (si el sistema de sonidos soporta el audio espacial), y los párrafos con clase "pedro" vendrán de la derecha. Los párrafos con clase "suave" serán muy suaves.

19.2 Propiedades del volumen: 'volume'

'volume'
Valor:  <número> | <porcentaje> | silent | x-soft | soft | medium | loud | x-loud | inherit
Inicial:  medium
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  referidos al valor heredado
Medios:  auditivos

Volume se refiere al volumen medio del sonido. En otras palabras, una voz altamente modulada a un volumen de 50 podría alcanzar bastante más que eso. Los valores globales pueden ser ajustado por las personas para mayor confort, por ejemplo con un control físico del volumen (que aumentaría los valores 0 y 100 proporcionalmente), lo que esta propiedad hace es ajustar el rango dinámico.

Los valores tienen los siguientes significados:

<número>
Cualquier número entre '0' y '100'. '0' representa el mínimo nivel de volumen audible y 100 corresponde al máximo nivel confortable.
<porcentaje>
Los valores de porcentaje son calculados con relación al valor heredado, y son entonces son recortados a un rango de '0' a '100'.
silent
Ningún sonido en absoluto. El valor '0' no significa lo mismo que 'silent'.
x-soft
Igual a '0'.
soft
Igual a '25'.
medium
Igual a '50'.
loud
Igual a '75'.
x-loud
Igual a '100'.

Las aplicaciones del usuario deben permitir que los valores correspondientes a '0' y '100' sean determinados por el oyente. Ninguna configuración es universalmente aplicable; los valores apropiados dependen del equipamiento en uso (parlantes, auriculares), el medio ambiente (en el automóvil, un equipo hogareño, la biblioteca) y las preferencias personales. Algunos ejemplos:

La misma hoja de estilo del autor puede ser usada en todos los casos, simplemente ajustando adecuadamente los puntos '0' y '100' del lado del cliente.

19.3 Propiedades del habla: 'speak'

'speak'
Valor:  normal | none | spell-out | inherit
Inicial:  normal
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Esta propiedades especifica si el texto se procesará sonoramente y en ese caso, de qué manera (algo análogo a la propiedad 'visibility' en algunos sentidos y a 'display' en otros). Los posibles valores son:

none
Suprime el procesamiento sonoro para que el elemento no requiera tiempo para procesarse. Observer, sin embargo, que los descendientes pueden anular este valor y ser expresados verbalmente. (Para asegurarse de suprimir el procesamiento de un elemento y sus descendientes, utilice la propiedad 'display').
normal
Utiliza las reglas de pronunciación adecuadas al idioma para el procesamiento de un elemento y sus descendientes.
spell-out
Deletrea el texto una letra por vez (útil para siglas y abreviaturas).

Note la diferencia entre un elemento cuya propiedad 'volume' tiene un valor de 'silent' y un elemento cuya propiedad 'speak' tiene el valor 'none'. El procesamiento toma el mismo tiempo que si hubiera sido expresado, incluyendo cualquier pausa antes y después del elemento, pero ningún sonido es generado. El último no requiere ningún tiempo y no es procesado (aunque sus descendientes pueden serlo).

19.4 Propiedades de la pausa: 'pause-before', 'pause-after' y 'pause'

'pause-before'
Valor:  <tiempo> | <porcentaje> | inherit
Inicial:  depende de la aplicación del usuario
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  ver el texto
Medios:  auditivos
'pause-after'
Valor:  <timtiempo> | <porcentaje> | inherit
Inicial:  depende de la aplicación del usuario
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  ver el texto
Medios:  auditivos

Estas propiedades especifican una pausa que debe observarse antes (o después) de expresar verbalmente el contenido de un elemento. Los valores tienen los siguientes significados:

<tiempo>
Expresa la pausa en unidades de tiempo absolutas (segundos y milisegundos).
<porcentaje>
Se refiere al inverso del valor de la propiedad 'speech-rate'. Por ejemplo, si 'speech-rate' es de 120 palabras por minuto (es decir, una palabra toma medio segundo, o 500ms) entonces una 'pause-before' de 100% significa una pausa de 500 ms y una 'pause-before' de 20% significa 100ms.

Las pausas se insertan entre el contenido del elemento y cualquier contenido 'cue-before' o 'cue-after'.

Los autores deben usar unidades relativas para crear hojas de estilo más sólidas ante los grandes cambios en la velocidad del discurso (speech-rate).

'pause'
Valor:  [ [<tiempo> | <porcentaje>]{1,2} ] | inherit
Inicial:  depende de la aplicación del usuario
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  ver las descripciones de 'pause-before' y 'pause-after'
Medios:  auditivos

La propiedad 'pause' es una fórmula abreviada para determinar 'pause-before' y 'pause-after'. Si se dan dos valores, el primer valor es 'pause-before' y el segundo es 'pause-after'. Si sólo se da un valor, éste se aplica a ambas propiedades.

Ejemplo(s):

H1 { pause: 20ms } /* pause-before: 20ms; pause-after: 20ms */
H2 { pause: 30ms 40ms } /* pause-before: 30ms; pause-after: 40ms */
H3 { pause-after: 10ms } /* pause-before: ?; pause-after: 10ms */

19.5 Propiedades de la señal: 'cue-before', 'cue-after' y 'cue'

'cue-before'
Valor:  <uri> | none | inherit
Inicial:  none
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  N/A
Medios:  auditivos
'cue-after'
Value:  <uri> | none | inherit
Inicial:  none
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  N/A
Medios:  auditivos

Los íconos sonoros son otra manera de distinguir los elementos semánticos. Los sonidos pueden oirse antes y/o después del elemento para delimitarlo. Los valores tienen los siguientes significados:

<uri>
El URI debe señalar un recurso de ícono sonoro. Si el URI resulta en otra cosa que un archivo de audio, como una imagen, el recurso debe ignorarse y la propiedad tratada con si tuviera el valor 'none'.
none
Ningún ícono sonoro es especificado.

Ejemplo(s):

A {cue-before: url("bell.aiff"); cue-after: url("dong.wav") }
H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
'cue'
Valor:  [ <'cue-before'> || <'cue-after'> ] | inherit
Inicial:  no definido para las propiedades resumidas
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  N/A
Medios:  auditivos

La propiedad 'cue' es una fórmula resumida para fijar 'cue-before' and 'cue-after'. Si se especifican dos valores, el primer valor es 'cue-before' y el segundo es 'cue-after'. Si solamente se especifica un valor, éste se aplica a ambas propiedades.

Ejemplo(s):

Las siguientes dos reglas son equivalentes:

H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
H1 {cue: url("pop.au") }

Si una aplicación del usuario no puede procesar un ícono sonoro (ej., el sistema del usuario no lo permite), recomendamos que produzca una señal alternativa (por ej., haciendo aparecer un aviso, emitiendo un sonido de advertencia, etc.).

Por favor, ver las secciones sobre los pseudo-elementos :before y :after por información acerca de otras técnicas de generación de contenidos.

19.6 Propiedades de la mezcla: 'play-during'

'play-during'
Valor:  <uri> mix? repeat? | auto | none | inherit
Inicial:  auto
Se aplica a:  todos los elementos
Se hereda:  no
Porcentajes:  N/A
Medios:  auditivos

Similar a las propiedades 'cue-before' y 'cue-after', estas propiedades especifican un sonido que será escuchado como fondo mientras el contenido de un elemento es enunciado. Los valores tienen los siguientes significados:

<uri>
El sonido designado por este <uri> se escucha como fondo mientras el contenido del elemento es enunciado.
mix
Cuando está presente, esta palabra clave significa que el sonido heredado de la propiedad 'play-during' del elemento padre continúa escuchándose y el sonido designado por el <uri> es mezclado con él. Si 'mix' no es especificado, el sonido de fondo del elemento reemplaza al del padre.
repeat
Cuando está presente, esta palabra clave significa que el sonido se repetirá si es demasiado corto para completar toda la duración del elemento. De otro modo, el sonido se escucha una vez y entonces se detiene. Esto es similar a la propiedad 'background-repeat'. Si el sonido es demasiado largo para el elemento, es cortado una vez que el elemento ha sido enunciado.
auto
El sonido del elemento padre continúa escuchándose (no es reiniciado, que habría sido el caso si la propiedad hubiera sido heredada).
none
Esta palabra clave significa que hay silencio. El sonido del elemento padre (si lo hubiera) es silenciado durante el elemento actual y continúa después del elemento actual.

Ejemplo(s):

BLOCKQUOTE.triste { play-during: url("violines.aiff") }
BLOCKQUOTE Q   { play-during: url("arpa.wav") mix }
SPAN.silencio     { play-during: none }

19.7 Propiedades espaciales: 'azimuth' y 'elevation'

El audio espacial es una importante propiedad de estilo para la presentación auditiva. Proporciona un modo natural de articular varias voces separadamente, como en la vida real (las personas raramente están todas en el mismo lugar de un cuarto). Los parlantes en estéreo producen sonidos laterales. Los auriculares bi-aurales o los equipos hogareños de 5 parlantes de creciente popularidad pueden generar un sonido completamente envolvente, y los equipos de múltiples parlantes pueden crear un verdadero sonido tridimensional. VRML 2.0 también incluye el audio espacial, lo que implica que en poco tiempo el equipamiento de audio espacial, a un precio accesible para el consumidor, estará más ampliamente disponible.

'azimuth'
Valor:  <ángulo> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit
Inicial:  center
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Los valores tienen los siguientes significados:

<ángulo>
La posición se describe en términos de un ángulo dentro del rango '-360deg' a '360deg'. El valor '0deg' significa adelante en el centro del espacio de sonido. '90deg' es a la derecha, '180deg' atrás y '270deg' (o, de modo equivalente y más conveniente, '-90deg') a la izquierda.
left-side
Igual a '270deg'. Con 'behind', '270deg'.
far-left
Igual a '300deg'. Con 'behind', '240deg'.
left
Igual a '320deg'. Con 'behind', '220deg'.
center-left
Igual a '340deg'. Con 'behind', '200deg'.
center
Igual a '0deg'. Con 'behind', '180deg'.
center-right
Igual a '20deg'. Con 'behind', '160deg'.
right
Igual a '40deg'. Con 'behind', '140deg'.
far-right
Igual a '60deg'. Con 'behind', '120deg'.
right-side
Igual a '90deg'. Con 'behind', '90deg'.
leftwards
Mueve el sonido a la izquierda, con relación al ángulo actual. Más precisamente, le resta 20 grados. La aritmética se lleva en módulos de 360 grados. Observe que 'leftwards' es más precisamente descripto como 'rotado en sentido contrario a las agujas del reloj', debido a que siempre resta 20 grados, aún si el azimut heredado ya está detrás del oyente (en cuyo caso el sonido parece en realidad moverse a la derecha).
rightwards
Mueve el sonido a la derecha, con relación al ángulo actual. Más precisamente, agrega 20 grados. Ver 'leftwards' por la aritmética.

Esta propiedad probablemente será implementada mezclando la misma señal en distintos canales a diferente volumen. Podría usarse también cambio de fase, pausa digital u otras técnicas para proporcionar la ilusión de un espacio de sonido. Los medios exactos para lograr este efecto y el número de parlantes utilizados para hacerlo dependen de la aplicación del usuario, esta propiedad sólo identifica el resultado final deseado.

Ejemplo(s):

H1   { azimuth: 30deg }
TD.a { azimuth: far-right }          /*  60deg */
#12  { azimuth: behind far-right }   /* 120deg */
P.comentario { azimuth: behind }     /* 180deg */

Si el azimut espacial es especificado y el dispositivo de salida no puede producir sonidos detrás de la posición del oyente, las aplicaciones del usuario deben convertir los valores en la retaguardia del hemisferio en valores hacia adelante del hemisferio. Un método es el siguiente:

'elevation'
Valor:  <ángulo> | below | level | above | higher | lower | inherit
Inicial:  level
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Los valores para esta propiedad tienen los siguientes significados:

<ángulo>
Especifia la elevación como un ángulo, entre '-90deg' y '90deg'. '0deg' significa el horizonte de enfrente, que vagamente significa a nivel del oyente. '90deg' significa directamente sobre la cabeza y '-90deg' significa directamente debajo.
below
Igual a '-90deg'.
level
Igual a '0deg'.
above
Igual a '90deg'.
higher
Agrega 10 grados a la elevación actual.
lower
Resta 10 grados a la elevación actual.

Los medios exactos para lograr este efecto y el número de parlantes utilizados para hacerlo son indefinidos. Esta propiedad sólo identifica el resultado final deseado.

Ejemplo(s):

H1   { elevation: above }
TR.a { elevation: 60deg }
TR.b { elevation: 30deg }
TR.c { elevation: level }

19.8 Propiedades de las características de la voz: 'speech-rate', 'voice-family', 'pitch', 'pitch-range', 'stress' y 'richness'

'speech-rate'
Valor:  <número> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit
Inicial:  medium
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Esta propiedad especifica la velocidad de dicción. Observe que se permiten tanto palabras clave absolutas como relativas (compare con 'font-size'). Los valores tienen los siguientes significados:

<número>
Especifica la velocidad de dicción en palabras por minuto, una cantidad que varía un poco según el idioma pero no obstante es ampliamente soportada por los sintetizadores de voz.
x-slow
Igual a 80 palabras por minuto.
slow
Igual a 120 palabras por minuto.
medium
Igual a 180 - 200 palabras por minuto.
fast
Igual a 300 palabras por minuto.
x-fast
Igual a 500 palabras por minuto.
faster
Agrega 40 palabras por minuto a la velocidad de dicción actual.
slower
Resta 40 palabras por minuto a la velocidad de dicción actual.
'voice-family'
Value:  [[<voz-específica> | <voz-genérica> ],]* [<voz-específica> | <voz-genérica> ] | inherit
Inicial:  depende de la aplicación del usuario
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

El valor es una lista de prioridades separadas por comas, de nombres de familias de voces (compare con 'font-family'). Los valores tienen los siguientes significados:

<voz-genérica>
Los valores son familias de voces. Los posibles valores son 'male' (hombre), 'female' (mujer) y 'child' (niño).
<voz-específica>
Los valores son instancias específicas (ej., comediante, carlos, lani).

Ejemplo(s):

H1 { voice-family: anunciador, male }
P.part.romeo  { voice-family: romeo, male }
P.part.juliet { voice-family: julieta, female }

Los nombres de las voces específicas pueden ir entrecomilladas, y de hecho deben ir entre comillas si alguna de las palabras que conforman el nombre no están conformes a las reglas sintácticas de los identificadores. También se recomienda entrecomillar las voces específicas con un nombre conformado por más de una palabra. Si las comillas son omitidas, cualquier carácter de espacio en blanco antes y después del nombre de la familia de voces es ignorado y cualquier secuencia de caracteres de espacios en blanco dentro del nombre de la familia de voces se convierte en un espacio simple.

'pitch'
Valor:  <frecuencia> | x-low | low | medium | high | x-high | inherit
Inicial:  medium
Se aplica :  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Especifica el tono promedio (o frecuencia) de la voz articulada. El tono promedio de una voz depende de la familia de voces. Por ejemplo, el tono promedio de una voz masculina normal está alrededor de los 120Hz, pero para una voz femenina, ronda los 210Hz.

Los valores tienen los siguientes significados:

<frecuencia>
Especifica en hertz (Hz) el tono promedio de la voz articulada.
x-low, low, medium, high, x-high
Estos valores no equivalen a frecuencias absolutas porque estos valores dependen de la familia de voces. Las aplicaciones del usuario deben hacer corresponder estos valores con las frecuencias apropiadas en base a la familia de voces y al entorno del usuario. Sin embargo, las aplicaciones del usuario deben distribuir estos valores en orden (es decir, 'x-low' es una frecuencia más baja que 'low', etc.).
'pitch-range'
Valor:  <número> | inherit
Inicial:  50
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Especifica la variación en el tono promedio. El tono percibido de una voz humana está determinado por la frecuencia básica y típicamente tiene un valor de 120Hz para una voz masculina y 210Hz para una voz femenina. Los idiomas humanos se hablan variando la inflexión y el tono; estas variaciones transmiten significados y énfasis adicionales. Así, una voz muy animada, es decir, una con muchas inflexiones, muestra una amplia gama de tonos. Esta propiedad especifica el rango dentro del cuál se producen estas variaciones, es decir, cuánto se puede desviar la frecuencia básica del tono promedio.

Los valores tienen los siguientes significados:

<número>
Un valor entre '0' y '100'. Un rango de tonos de '0' produce voces monótonas, chatas. Un rango de tonos de 50 produce inflexiones normales. Los rangos de tonos mayores a 50 producen voces animadas.
'stress'
Valor:  <número> | inherit
Inicial:  50
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Especifica la altura de los "picos" en el perfil de entonaciones de una voz. Por ejemplo, el inglés es un idioma acentuado, y las distintas partes de una oración tienen asignados énfasis primarios, secundarios y terciarios. El valor de 'stress' controla la cantidad de inflexiones que resultan de estos acentos. Esta propiedad es compañera de la propiedad 'pitch-range' y se proporciona para permitir a los diseñadores aprovechar los sistemas de recepción más fieles.

Los valores tienen los siguientes significados:

<número>
Un valor, entre '0' y '100'. El significado de los valores depende del idioma en que se habla. Por ejemplo, un nivel de '50' para una voz angloparlante masculina normal (tono promedio = 122Hz), hablando con entonación y énfasis normales tendría un significado distinto a '50' para una voz italiana.
'richness'
Valor:  <número> | inherit
Inicial:  50
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Especifica la riqueza, o claridad, de la voz que habla. Una voz viva será "transportada" por un cuarto grande, una voz suave no. (El término "suave" se refiere a cómo se vé la forma de la onda cuando se dibuja.)

Los valores tienen los siguientes significados:

<número>
Un valor entre '0' y '100'. Mientras más alto es el valor, más será transportada la voz. Un valor más bajo producirá una voz meliflua, suave.

19.9 Propiedades del discurso: 'speak-punctuation' y 'speak-numeral'

Una propiedad del discurso adicional, speak-header, se describe en el capítulo sobre tablas

'speak-punctuation'
Valor:  code | none | inherit
Inicial:  none
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Esta propiedad especifica cómo se manifiesta la puntuación. Los valores tienen los siguientes significados:

code
Los signos de puntuación como puntos y comas, llaves y demás se manifiestan literalmente.
none
Los signos de puntuación no se manifiestan, pero en cambio son procesados como distintas pausas.
'speak-numeral'
Valor:  digits | continuous | inherit
Inicial:  continuous
Se aplica a:  todos los elementos
Se hereda:  si
Porcentajes:  N/A
Medios:  auditivos

Esta propiedad controla cómo se expresan los números. Los valores tienen los siguientes significados:

digits
Se expresan los números como dígitos individuales. Así, "237" es expresado "Dos Tres Siete".
continuous
Se expresan los números como un número completo. Así, "237" es expresado "doscientos treinta y siete". La representación en palabras depende del idioma.
Copyright  ©  1998 W3C (MIT, INRIA, Keio ), All Rights Reserved.

Traducción: Carlos Benavidez