T. V. Raman
Raman@adobe.com

Style Sheets For Producing Spoken Renderings

This document defined style-sheet extensions that add property-value definitions specific to aural renderings. This initial specification attempts to define properties that will be general while at the same time allowing browser implementors maximal flexibility in exploiting the features provided by different auditory displays. As the functionality provided by such displays becomes standardized this specification will evolve to encompass the features they provide.

Note that speech style-sheets play the dual role of specifying how a document should be rendered aurally to a user who is functionally blind, i.e. is not currently looking at a visual display, and may also specify how a visual rendering should be augmented with sound cues to provide a truly multimodal rendering.

Design Philosophy

A simple minded approach would dictate that an aural browser use the information present in the standard stylesheet to convey the same information aurally. This would only fit the scenario of producing a faithful aural presentation of a WWW document to someone who cannot see the visual display.

We adopt the more sophisticated solution of defining a separate (possibly cascaded) speech style-sheet so as to:

This said, an auditory browser is free to use the information provided by the standard visual stylesheet to augment the aural rendering where necessary. Thus, when rendering a well-written document that uses the emphasis tag to mark emphasized phrases, such an aural browser would use the speech properties specified for emphasis in the speech stylesheet. However, if a document uses layout specific tags such as <IT> an aural browser can fall back on a default rendering that maps specific speech properties to the visual layout tags. In general, the speech stylesheet will not attempt to specify the mapping between visual layout tags and speech properties, instead leaving it to specific browser implementations to decide how such tags are rendered.

Aural Properties

In the following, we enumerate each property along with its possible values. Explanatory paragraphs describe how a browser might use such properties and their possible effect. The syntax used in the speech style-sheet will be the same as defined in CSS1 --hence, this document will not explicitly define the syntax. For all purposes, this document should be considered as an appendix to (or part of) the CSS1 specification.

Speech Properties

Speech properties specify the voice characterestic to be used when rednering specific document elements.

:volume
Number (decibels)

The volume of the speaker. Specified in decibels.

:left-volume
number 1--100 (percentage)

Specifies the speaker volume for the left-channel. Devices not supporting stereo output may ignore this setting.

:right-volume
number 1--100 (percent)

Specifies the speaker volume for the right-channel. Devices not supporting stereo output may ignore this setting.

:voice-family
string

Analogous to the :font-family property. This specifies the kind of voice to be used, and can be something generic such as male or something more specific such as comedian or something very specific such as paul. We recommend the same approach as used in the case of :font-family --the style sheet provide a list of possible values ranging from most to least specific and allow the browser to pick the most specific voice that it can find on the output device in use.

:speech-rate
Number (wordsper minute)

Specifies the speaking rate.

:average-pitch
number (hertz)

Specifies the average pitch of the speaking voice in hertz (hz).

:pitch-range
number (percentage variation 0--200)

Specifies variation in average pitch. A pitch range of 0 produces a flat, monotonic voice. A pitch range of 100 produces normal inflection. Pitch ranges greater than 100 produce animated voices.

:stress
number (0--100)

Specifies the level of stress (assertiveness or emphasis) of the speaking voice. English is a stressed language, and different parts of a sentence are assigned primary, secondary or tertiary stress. The value of property :stress controls amount of inflection that results from these stress markers. Different speech devices may require the setting of one or more device-specific parameters to achieve this effect.

Increasing the value of this property results in the speech being more strongly inflected. It is in a sense dual to property :pitch-range and is provided to allow developpers to exploit higher-end auditory displays.

:richness
number (0--100)

Specifies the richness (brightness) of the speaking voice. Different speech devices may require the setting of one or more device-specific parameters to achieve this effect.

The effect of increasing richness is to produce a voice that carries --reducing richness produces a soft, mellifluous voice.

:speech-other
List of name value pairs.

Allows implementors to experiment with features available on specific speech devices. The use of this property is device-specific, but is provided as an escape mechanismsince auditory displays are not yet as standardized as their visual counterparts. Implementors are encouraged to use this property only where absolutely necessary. In many cases, the desired effect can be abstracted using the properties defined earlier and having the device-specific component of the browser map a single abstract property to a collection of device specific properties.

Miscellaneous Speech Settings

In addition to specifying voice properties, a speech style-sheet also specifies auxillary information such as the amount of pause to insert before or after rendering document elements.
:pause-before-pause
number (milliseconds) Amount of pause. (analogous to white space.)

Specifies the number of milliseconds of silence to insert before rendering a document element. In situations where the :pause-before-pause intersects the :pause-after-pause of the preceding document element, we compute the amount of pause to insert in a manner similar to that used to compute the amount of intervening whitespace in producing visual renderings.

:pause-after-pause
number (milliseconds) Amount of pause. (analogous to white space.)

Specifies the number of milliseconds of silence to insert after rendering a document element.

:pause-around-pause
number (milliseconds) Amount of pause. (analogous to white space.)

Specifies the number of milliseconds of silence to insert before and after rendering a document element. Though this effect can be achieved by using :pause-before and :pause-after in conjunction, style-sheet designers are encouraged to use :pause-around where appropriate since it makes the intent clearer. Perhaps :before :after and :around should be modifiers so they can be generally applied to other property settings?

:pronunciation-mode
string

Specify the pronunciation mode to be used when speaking a document element. Pronunciation modes can include

The set of values for this property is left open so that designers can exploit all features available in a specific device. Style-sheet designers can specify a list of values for specifying a particular option in a amanner analogous to that described in specifying :voice-family. Browsers are expected to choose the most specific setting available on the current output device. Thus, for property :speak-time, a style sheet could specify :speak-military-time and :speak-am-pm etc.

The device-specific component of a browser is expected to map those values that it does not understand to a suitable default. Alternatively, the device-specific component of the browser may choose to transform the contents of the document element to a form that is suitable to be rendered by the specific device. To give an example:

Consider the value date-string. Given a content string of the form Jan 1, 1996 an aural browser could:

:language
string

Language to use when rendering the contents of the document element. Specified by using the appropriate ISO encoding for international languages.

:country
string

Specified using ISO encoding for specifying country codes. Can be used in conjunction with :language to specify British or American English. (See property :dialect below for variations in speaking style within a country.) This property will be useful for multilingual speech devices capable of switching between languages.

:dialect
string

Specifies the dialect to be used, e.g.: american-mid-western-english.

Non-Speech Auditory Cues

Non-speech sounds can be used to produce auditory icons. Such auditory icons serve to augment the aural rendering and provide succinct cues.

:before-sound
Filename or URL.

Specifies a file containing sound data. The sound is played before rendering the document element to produce an auditory icon.

:after-sound
Filename or URL.

Specifies a file containing sound data. The sound is played after rendering the document element to produce an auditory icon.

:around-sound
Filename or URL.

Specifies a file containing sound data. The sound is played around rendering the document element to produce an auditory icon.

:during-sound
Filename or URL.

Specifies a file containing sound data. The sound is played repeatedly during rendering the document element to produce an auditory icon that provides an aural backdrop.

Advanced Settings

In the future, auditory displays may want to exploit spatial audio for producing rich aural layout. Spatial audio --a digital signal processing technique that involves convolving sound data with appropriate filters to produce spatially located sounds-- can be used to make sounds appear to originate from different points in the listener's auditory space.
:spatial-audio
:azimuth number :elevation number Azimuth and elevation are specified in degrees and together specify the point in auditory space from which the sound appears to originate.

Open Questions

It would be generally useful to allow style-sheets to specify relative changes i.e. increment or decrement the value of a particular property. How should the specification handle this?
Email: raman@adobe.com
Last modified: Mon Feb 12 16:29:56 1996