19 Звуковые таблицы стилей

Содержание

19.1 Введение в звуковые таблицы стилей

В сообществе людей с ослабленным зрением и людей, не имеющих возможности вводить текст с клавиатуры, широко используется звуковое воспроизведение документов, в основе которого лежит использование синтезатора речи и "звуковых пиктограмм". Чаще всего звуковое воспроизведение осуществляется путем преобразования документа в простой текст, который затем подается на вход специализированной программы или устройства, считывающего содержимое экрана и произносящего вслух все отображенные на нем символы. Это снижает эффективность представления по сравнению со случаем, когда структура документа остается неизменной. Свойства таблиц стилей, используемые при звуковом воспроизведении, (в среде поливариантного представления) могут выступать в качестве дополнения или альтернативы для свойств, используемых при визуальном отображении.

Помимо очевидных преимуществ, предоставляемых процедурой звукового воспроизведения в плане доступа к документам, существует ряд других достоинств, проявляющихся при ее использовании для прослушивания информации в салонах автомобилей, в системах промышленной и медицинской документации (сети Intranet), на досуге в домашних условиях, в качестве вспомогательного средства для пользователей, которые хотят научиться читать или испытывают определенные трудности при чтении.

При использовании свойств, управляющих звуковым воспроизведением, область представления формируется из трехмерного физического пространства (объемного звука) и пространства времени (в котором можно осуществлять упорядочивание звуков, воспроизводя одни перед, во время или после других). Кроме этого, свойства CSS позволяют разработчикам настраивать параметры синтезируемой речи (тип голоса, его частоту, интонацию и прочее).

Пример(ы):

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

Следуя этим правилам, синтезатор речи будет воспроизводить заголовки (набранные чем-то вроде "звукового шрифта") насыщенным голосом низкой тональности, который называется "paul". Воспроизведению заголовков будет предшествовать воссоздание звукового шаблона, определяемого заданным URL. Если звуковая система поддерживает трехмерное звучание, то абзацы, имеющие класс "heidi", будут слышны спереди слева, а абзацы с классом "peter" - справа от слушателя. Абзацы, имеющие класс "goat", будут воспроизводиться очень тихо.

19.2 Свойства, управляющие громкостью: 'volume'

'volume'
Значение:  <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit
Начальное значение:  medium
Область применения:  все элементы
Наследование:  да
Процентное задание значений:   относительно наследуемого значения
Ассоциированные устройства:  устройства звукового воспроизведения

Громкостью называется средний уровень волнового фронта. Т.е. сильно флектирующий голос, громкость которого равна 50, местами может с легкостью превышать этот уровень. Исходя из удобства прослушивания, все значения могут настраиваться человеком, например, посредством управления физическим уровнем громкости (в результате которого оба значения 0 и 100 увеличиваются пропорционально). В частности, данное свойство позволяет выполнять настройку динамического диапазона.

Принимаемые им значения имеют следующий смысл:

<number>
Любое число в диапазоне от '0' до '100', где '0' обозначает минимальный слышимый уровень громкости, а 100 - максимальный уровень комфортного прослушивания.
<percentage>
Процентное соотношение вычисляется относительно наследуемого значения, а затем ограничивается значениями из диапазона от '0' до '100'.
silent
Полное отсутствие звука. Значение '0' не эквивалентно значению 'silent'.
x-soft
Аналогично значению '0'.
soft
Аналогично значению '25'.
medium
Аналогично значению '50'.
loud
Аналогично значению '75'.
x-loud
Аналогично значению '100'.

Агенты пользователей должны предоставлять слушателю возможность настройки значений, соответствующих '0' и '100'. Ни одна из настроек не является универсальной, так что при выборе подходящих для нее значений принимаются во внимание используемое оборудование (динамики или наушники), окружение (салон автомобиля, домашняя обстановка или библиотека) и персональные настройки. Приведем несколько примеров:

Во всех случаях может использоваться одна и та же таблица стилей разработчика. При этом только для уровней '0' и '100' необходимо будет установить те значения, которые удовлетворят клиента.

19.3 Свойства, управляющие воспроизведением речи: 'speak'

'speak'
Значение:  normal | none | spell-out | inherit
Начальное значение:  normal
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Ассоциированные устройства:  устройства звукового воспроизведения

Это свойство определяет, будет ли текст озвучиваться, и если да, то каким образом это будет сделано (аналогично свойству 'display'). Его возможные значения:

none
Запрещает озвучивание, так что элемент не требует времени на свое представление. Следует заметить, однако, что дочерние элементы могут переопределить это значение и воспроизводиться вслух. (Чтобы гарантированно запретить звуковое воспроизведение элемента и его дочерних элементов, необходимо использовать свойство 'display'.)
normal
Для воспроизведения элемента и его дочерних элементов используются правила произношения, определяемые разговорным языком.
spell-out
Слово произносится по буквам (рекомендуется для аббревиатур и сокращений).

Обратите внимание на существующее различие между двумя элементами, свойства 'volume' и 'speak' которых принимают значения 'silent' и 'none' соответственно. Представление первого элемента займет столько же времени, сколько требуется на его воспроизведение, включая все паузы, расположенные до и после него, но только при этом звук генерироваться не будет. Представление второго элемента вовсе не требует времени, т.к. он не представляется (хотя его дочерние элементы могут представляться).

19.4 Свойства, управляющие паузой: 'pause-before', 'pause-after' и 'pause'

'pause-before'
Значение:  <time> | <percentage> | inherit
Начальное значение:  зависит от агента пользователя
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  см. нижеследующий текст
Ассоциированные устройства:  устройства звукового воспроизведения
'pause-after'
Значение:  <time> | <percentage> | inherit
Начальное значение:  зависит от агента пользователя
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  см. нижеследующий текст
Ассоциированные устройства:  устройства звукового воспроизведения

Эти свойства задают паузу, которая должна быть выдержана перед воспроизведением содержимого элемента (или после него). Значения имеют следующий смысл:

<time>
Обозначает паузу в абсолютных единицах измерения времени (секундах и миллисекундах).
<percentage>
Указывает на инверсию значения свойства 'speech-rate'. Например, если частота воспроизведения речи равна 120 словам в минуту (т.е. произношение одного слова занимает полсекунды или 500 мс), то значения свойства 'pause-before', равные 100% и 20%, означают, соответственно, паузу в 500 мс и 100 мс.

Пауза вставляется между содержимым элемента и содержимым любого из свойств 'cue-before' или 'cue-after'.

Для создания более устойчивых таблиц стилей при работе с большими изменениями в частоте воспроизведения речи авторам следует использовать относительные единицы измерения.

'pause'
Значение:  [ [<time> | <percentage>]{1,2} ] | inherit
Начальное значение:  зависит от агента пользователя
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  см. описания свойств 'pause-before' и 'pause-after'
Устройства:  устройства звукового воспроизведения

Свойство 'pause' - это свойство сокращенной записи для определения свойств 'pause-before' и 'pause-after'. Если для него задано два значения, то первое присваивается свойству 'pause-before', а второе - свойству 'pause-after'. Если задано только одно значение, то оно присваивается обоим свойствам.

Пример(ы):

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 Свойства, управляющие вставкой реплик: 'cue-before', 'cue-after' и 'cue'

'cue-before'
Значение:  <uri> | none | inherit
Начальное значение:  none
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения
'cue-after'
Значение:  <uri> | none | inherit
Начальное значение:  none
Применяется:  все элементы
Наследование:  нет
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Звуковые пиктограммы - это один из способов выделения семантических элементов. Для определения границ элемента до и/или после него могут воспроизводиться определенные звуки. Значения имеют следующий смысл:

<uri>
Этот URI должен указывать на ресурс звуковой пиктограммы. Если по этому URI находится другая информация, например, изображение, то этот ресурс игнорируется, а свойство обрабатывается как если бы было установлено значение 'none'.
none
Звуковая пиктограмма не определена.

Пример(ы):

A {cue-before: url("bell.aiff"); cue-after: url("dong.wav") } H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }

'cue'
Значение:  [ <'cue-before'> || <'cue-after'> ] | inherit
Начальное значение:  не определяется для свойств сокращенной записи
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Свойство 'cue' - это свойство сокращенной записи для определения свойств 'cue-before' и 'cue-after'. Если для него задано два значения, то первое присваивается свойству 'cue-before', а второе - свойству 'cue-after'. Если задано только одно значение, то оно присваивается обоим свойствам.

Пример(ы):

Следующие два правила эквивалентны: H1 {cue-before: url("pop.au"); cue-after: url("pop.au") } H1 {cue: url("pop.au") }

Если агенту пользователя не удается воспроизвести звуковую пиктограмму (например, это не позволяет сделать окружение пользователя), рекомендуется воспроизводить альтернативную реплику (например, выдача предупреждающего сообщения или сигнала и др.)

Дополнительную информацию о методах генерации содержимого можно найти в разделе, посвященном псевдоэлементам :before и :after.

19.6 Свойства микширования: 'play-during'

'play-during'
Значение:  <uri> mix? repeat? | auto | none | inherit
Начальное значение:  auto
Область применения:  все элементы
Наследование:  нет
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Аналогично свойствам 'cue-before' и 'cue-after', данное свойство определяет фон, который будет звучать во время воспроизведения содержимого элемента. Значения имеют следующий смысл:

<uri>
Звуковой файл, находящийся по адресу, указываемому данным <uri>, используется в качестве фонового во время воспроизведения содержимого элемента.
mix
В случае задания этого ключевого слова звуковой файл, наследуемый от свойства 'play-during' родительского элемента, продолжает воспроизводиться, а звуковой файл, расположенный по заданному <uri> микшируется с ним. Если значение 'mix' не задано, то фоновый звук этого элемента заменяет фоновый звук его родительского элемента.
repeat
В случае задания этого ключевого слова звуковой файл будет повторяться на протяжении всего процесса воспроизведения содержимого данного элемента. Это напоминает использование свойства 'background-repeat'. Если продолжительность звукового файла превышает продолжительность элемента, то он обрезается по времени воспроизведения элемента.
auto
Продолжается воспроизведение звукового файла родительского элемента (он не начинается заново, как в случае, когда это свойство является наследуемым).
none
Это ключевое слово означает, что никакие звуковые файлы не воспроизводятся. На время представления текущего элемента воспроизведение звукового файла родительского элемента (если таковой имеется) прерывается и возобновляется, когда по завершении представления текущего элемента.

Пример(ы):

BLOCKQUOTE.sad { play-during: url("violins.aiff") } BLOCKQUOTE Q { play-during: url("harp.wav") mix } SPAN.quiet { play-during: none }

19.7 Свойства для создания пространственных эффектов: 'azimuth' и 'elevation'

Эффекты пространственного звучания являются важной стилистической составляющей озвучиваемой презентации. Они предоставляют естественный способ для раздельного воспроизведения нескольких голосов, как это происходит в реальной жизни (разговаривая, люди редко находятся в одном месте в помещении). Использование стереодинамиков позволяет создавать латеральное тон-ателье. В свою очередь, использование стереофонических наушников или приобретающих все большую популярность домашних центров с пятью динамиками позволяет создавать полноценный объемный звук, а установки с несколькими динамиками могут создавать реальную трехмерную тон-студию. Язык VRML 2.0 также поддерживает эффекты пространственного звучания, свидетельствуя о том, что в свое время оборудование, воспроизводящее пространственный звук, станет более доступным по розничной цене.

'azimuth'
Значение:  <angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit
Начальное значение:  center
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Значения имеют следующий смысл:

<angle>
Направление воспроизведения определяется значением угла, находящимся в диапазоне от '-360deg' до '360deg'. Значение '0deg' говорит о воспроизведении звука спереди в центре тон-студии. Значение '90deg' - о воспроизведении звука справа, '180deg' - о воспроизведении звука сзади, '270deg' (или эквивалентное ему и более легкое в использовании значение '-90deg') - о воспроизведении звука слева.
left-side
Аналогично значению '270deg'. При воспроизведении сзади аналогично значению '270deg'.
far-left
Аналогично значению '300deg'. При воспроизведении сзади аналогично значению '240deg'.
left
Аналогично значению '320deg'. При воспроизведении сзади аналогично значению '220deg'.
center-left
Аналогично значению '340deg'. При воспроизведении сзади аналогично значению '200deg'.
center
Аналогично значению '0deg'. При воспроизведении сзади аналогично значению '180deg'.
center-right
Аналогично значению '20deg'. При воспроизведении сзади аналогично значению '160deg'.
right
Аналогично значению '40deg'. При воспроизведении сзади аналогично значению '140deg'.
far-right
Аналогично значению '60deg'. При воспроизведении сзади аналогично значению '120deg'.
right-side
Аналогично значению '90deg'. При воспроизведении сзади аналогично значению '90deg'.
leftwards
Перемещает звук влево относительно текущего направления. Вернее, уменьшает значение угла на 20 градусов. Вычисления осуществляются по модулю, равному 360 градусам. Следует заметить, что более корректная формулировка термина 'leftwards' звучит следующим образом: "повернуть против часовой стрелки". Действительно, значение постоянно уменьшается на 20 градусов, даже если наследуемый азимут уже находится позади слушателя (а в этом случае звук фактически перемещается вправо).
rightwards
Перемещает звук вправо относительно текущего направления. Вернее, увеличивает значение угла на 20 градусов. Информация о вычислениях приведена в предыдущем пункте, посвященном значению 'leftwards'.

Наиболее вероятной областью использования данного свойства является добавление одного и того же сигнала в различные каналы с разной громкостью. При этом для создания эффекта студийной записи также можно использовать сдвиг фаз, цифровую задержку и другие подобные технологии. Конкретные методы, применяемые для создания этого эффекта, и количество используемых динамиков зависят от пользовательского агента. Данное свойство, просто, определяет желаемый конечный результат.

Пример(ы):

H1 { azimuth: 30deg } TD.a { azimuth: far-right } /* 60 градусов */ #12 { azimuth: behind far-right } /* 120 градусов */ P.comment { azimuth: behind } /* 180 градусов */

Если задан пространственный азимут и выходному устройству не удается воспроизвести звук позади слушателя, то агентам пользователя необходимо преобразовать значения, определенные в задней полусфере, в значения, определенные в передней полусфере. Один из возможных методов преобразования состоит в следующем:

'elevation'
Значение:  <angle> | below | level | above | higher | lower | inherit
Начальное значение:  level
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Значения данного свойства имеют следующий смысл:

<angle>
Задает значение угла, находящееся в диапазоне от '-90deg' до '90deg' и определяющее высоту над уровнем горизонта, на котором находится слушатель. Этот уровень определяется значением '0deg'. Значение '90deg' определяет положение непосредственно над головой, а '-90deg' - под ногами.
below
Аналогично значению '-90deg'.
level
Аналогично значению '0deg'.
above
Аналогично значению '90deg'.
higher
Увеличивает значение текущего угла на 10 градусов.
lower
Уменьшает значение текущего угла на 10 градусов.

Конкретные методы, применяемые для создания этого эффекта, и количество используемых динамиков не определены. Данное свойство просто определяет желаемый конечный результат.

Пример(ы):

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

19.8 Свойства, управляющие параметрами голоса: 'speech-rate', 'voice-family', 'pitch', 'pitch-range', 'stress' и 'richness'

'speech-rate'
Значение:  <number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit
Начальное значение:  medium
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Это свойство задает частоту воспроизведения слов. Обратите внимание, что допускается использование как абсолютных, так и относительных значений ключевых слов (сравните со свойством 'font-size'). Принимаемые им значения имеют следующий смысл:

<number>
Задает скорость речи, определяя количество слов, произносимых в минуту. Она варьируется в зависимости от языка, но, тем не менее, поддерживается синтезаторами речи в широком диапазоне.
x-slow
Аналогично скорости в 80 слов в минуту
slow
Аналогично скорости в 120 слов в минуту
medium
Аналогично скорости в 180 - 200 слов в минуту
fast
Аналогично скорости в 300 слов в минуту.
x-fast
Аналогично скорости в 500 слов в минуту.
faster
Увеличивает текущее количество слов, произносимых в минуту, на 40.
slower
Уменьшает текущее количество слов, произносимых в минуту, на 40.
'voice-family'
Значение:  [[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit
Начальное значение:  зависит от пользовательского агента
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Значение представляет собой список названий семейств голосов, разделенных запятыми и упорядоченных по приоритету (сравните со свойством 'font-family'). Значения имеют следующий смысл:

<generic-voice>
Значениями являются семейства голосов. Возможные значения: 'male' (мужской голос), 'female' (женский голос) и 'child' (детский голос).
<specific-voice>
Значениями представляют собой конкретные экземпляры (например, comedian, trinoids, carlos, lani).

Пример(ы):

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

Название конкретного голоса может и даже должно быть заключено в кавычки, если какие-либо из содержащихся в нем слов не соответствуют правилам синтаксиса идентификаторов. Кроме того, в кавычки рекомендуется заключать названия конкретных голосов, состоящие из нескольких слов. Если кавычки опущены, то все пустое пространство, располагающееся до и после названия голоса, игнорируется, а все последовательности пустого пространства внутри названия преобразуется в один пробел.

'pitch'
Значение:  <frequency> | x-low | low | medium | high | x-high | inherit
Начальное значение:  medium
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Задает среднюю высоту (частоту) голоса. Средняя высота голоса определяется семейством голосов. Например, средняя высота стандартного мужского голоса приблизительно равна 120 Гц, а для женского голоса она составляет около 210 Гц.

Принимаемые данным свойством значения имеют следующий смысл:

<frequency>
Задает среднюю высоту голоса в герцах (Гц).
x-low, low, medium, high, x-high
Эти значения не отображаются в абсолютные значения частоты, т.к. они зависят от семейства голосов. Агенты пользователей должны отображать эти значения в соответствующие частоты исходя из используемого семейства голосов и окружения пользователя. При этом значения должны отображаться в соответствующем порядке (т.е. значению 'x-low' должна сопоставляться более низкая частота, чем значению 'low', и т.д.).
'pitch-range'
Значение:  <number> | inherit
Начальное значение:  50
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Определяет вариацию относительно средней высоты голоса. Воспринимаемая высота человеческого голоса определяется основной частотой и обычно имеет значение 120 Гц для мужского голоса и 210 Гц для женского. Звучание человеческого голоса сопровождается изменениями в его интонации и высоте, что придает ему дополнительную выразительность и смысловую окраску. Поэтому очень оживленный, т.е. флективный голос, будет задействовать очень широкий диапазон частот. Исходя из этого, определяются границы диапазона таких вариаций, т.е. определяется, насколько сильными могут быть отклонения от основной частоты.

Принимаемые этим свойством значения имеют следующий смысл:

<number>
Величина, заключенная в пределах от '0' от '100'. Диапазон частот, равный '0', определяет монотонный голос. Диапазон частот, равный '50', определяет голос с нормальной интонацией. Диапазоны частот свыше 50 определяют оживленные голоса.
'stress'
Значение:  <number> | inherit
Начальное значение:  50
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Задает высоту "локальных пиков" на фоне основной интонации голоса. Например, в английском языке используется много ударений, так что различным частям предложения могут назначаться первичные, вторичные или третичные ударения. Значение свойства 'stress' контролирует уровень всплесков, имеющих место при реализации этих ударений. Данное свойство используется вместе со свойством 'pitch-range' и позволяет разработчикам использовать звуковые дисплеи высокого качества.

Принимаемые данным свойством значения имеют следующий смысл:

<number>
Величина, заключенная в пределах от '0' и '100'. Смысловая нагрузка значений зависит от языка, на котором произносится текст. Например, для английского языка значение '50' для стандартного мужского голоса (средняя частота равна 122 Гц) с обычной интонацией и выражением будет отличаться от аналогичного значения для итальянского языка.
'richness'
Значение:  <number> | inherit
Начальное значение:  50
Применяется:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Задает насыщенность, или яркость, голоса. Сильный голос будет хорошо слышен в большом помещении, а тихий, или гладкий, - нет. (Термин "гладкий" относится к форме волнового фронта.)

Принимаемые им значения имеют следующий смысл:

<number>
Величина, заключенная в пределах от '0' до '100'. Чем выше голос, тем он лучше будет слышен. Если задано низкое значение, то будет воспроизводиться тихий, мягкий голос.

19.9 Свойства озвучивания: 'speak-punctuation' и 'speak-numeral'

Еще одно свойство speak-header, используемое для управления озвучиванием, описано в главе "Таблицы".

'speak-punctuation'
Значение:  code | none | inherit
Начальное значение:  none
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Данное свойство определяет метод озвучивания знаков пунктуации. Принимаемые им значения имеют следующий смысл:

code
Знаки пунктуации, такие как точка с запятой, скобки и др., будут произноситься явно.
none
Знаки пунктуации не будут произноситься, а вместо этого будут вставляться различные паузы.
'speak-numeral'
Значение:  digits | continuous | inherit
Начальное значение:  continuous
Область применения:  все элементы
Наследование:  да
Процентное задание значений:  нет
Устройства:  устройства звукового воспроизведения

Данное свойство определяет метод озвучивания чисел. Принимаемые им значения имеют следующий смысл:

digits
Число произносится по цифрам. Таким образом, "237" произносится как "два, три, семь".
continuous
Число произносится целиком. Таким образом, "237" произносится как "двести тридцать семь". Произношение слов определяется разговорным языком.