Inhaltsverzeichnis
19 Akustische StylesheetsDie akustische Darstellung eines Dokuments, die von blinden Benutzern sowie Benutzern, die keine visuelle Ausgabe nutzen können, bereits häufig eingesetzt wird, kombiniert Sprachsynthese und „akustische Icons“. Häufig erfolgt diese akustische Darstellung durch die Konvertierung des Dokuments in einfachen Text, der dann einer so genannten Bildschirmleser-Software oder -Hardware übergeben wird, die einfach alle Zeichen auf dem Bildschirm liest. Das Ergebnis ist eine weniger effektive Darstellung, als würde die Dokumentstruktur beibehalten. Stylesheet-Eigenschaften für eine akustische Darstellung können mit den visuellen Eigenschaften (gemischte Medien) kombiniert oder als akustische Alternative zur visuellen Darstellung verwendet werden.
Neben den offensichtlichen Vorteilen, die sie in Hinblick auf den Zugriff bringen, gibt es noch andere große Märkte für rein akustisch angebotene Informationen, wie beispielsweise für Autofahrer, industrielle und medizinische Dokumentationssysteme, Home-Entertainment, oder um Benutzer zu unterstützen, die gerade lesen lernen oder Probleme mit dem Lesen haben.
Bei der Verwendung akustischer Eigenschaften besteht die Zeichenfläche aus einem dreidimensionalen physischen Raum (Klangumgebung) und einem temporären Raum (man kann Klang vor während und nach anderen Klängen spezifizieren). Darüber hinaus erlauben die CSS-Eigenschaften den Autoren, die Qualität synthetisierter Sprache zu variieren (Sprachtyp, Frequenz, Modulation usw.).
Beispiel
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.ziege { volume: x-soft }
Damit wird der Sprachsynthesizer angewiesen, die Überschriften in der Sprache (eine Art „Audio-Schrift“) namens „paul“ zu sprechen, in einem flachen Ton, aber mit einer sehr umfangreichen Stimme zu sprechen. Bevor die Überschriften gesprochen werden, wird ein Sound-Sample von dem angegebenen URL abgespielt. Absätze mit der Klasse „heidi“ sollen so erscheinen, dass sie von vorne links kommen (falls das Soundsystem räumliches Audio beherrscht), und Absätze mit der Klasse „peter“ von rechts. Absätze mit der Klasse „ziege“ werden sehr weich gesprochen.
Wert: |
<number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit |
Ausgangswert: |
medium |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentzahlen |
Beziehen sich auf den geerbten Wert |
Medium |
aural |
'volume' bezieht sich auf die Medien-Lautstärke der Wellenform. Mit anderen Worten, eine hochmodulierte Stimme mit einer Lautstärke von 50 könnte sehr viel höhere Spitzenwerte haben. Die Gesamtwerte können sehr wahrscheinlich für den Menschen annehmbar angepasst werden, beispielsweise mit einer physischen Lautstärkenregelung (die sowohl die 0- als auch die 100-Werte proportional vergrößern würde); diese Eigenschaft passt also den dynamischen Bereich an.
Die Werte haben die folgende Bedeutung:
Die Benutzerprogramme sollen es dem Zuhörer gestatten, die Werte für '0' und '100' zu setzen. Es gibt keine allgemein verwendbare Einstellung; geeignete Werte sind von der verwendeten Ausrüstung abhängig (Lautsprecher, Kopfhörer), von der Umgebung (im Auto, Heimkino, Bibliothek) und von den persönlichen Vorlieben. Einige Beispiele:
In all diesen Fällen könnte dasselbe Autor-Stylesheet verwendet werden, indem die Einstellungen für '0' und '100' auf der Client-Seite festgelegt werden.
Wert: |
normal | none | spell-out | inherit |
Ausgangswert: |
normal |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Diese Eigenschaft gibt an, ob und wie Text akustisch dargestellt wird (etwa vergleichbar mit der Eigenschaft 'display'). Die möglichen Werte sind:
Beachten Sie den Unterschied zwischen einem Element, dessen 'volume'-Eigenschaft den Wert 'silent' hat, und einem Element, dessen 'speak'-Eigenschaft den Wert 'none' hat. Das erstere benötigt dieselbe Zeit, als wäre es ausgesprochen worden, inklusive der Pause vor und nach dem Element, aber es wird keine hörbare Ausgabe erzeugt. Das letztere benötigt keine Zeit und wird nicht dargestellt (während seine Ableitungen sehr wohl dargestellt werden können).
Wert: |
<time> | <percentage> | inherit |
Ausgangswert: |
Vom Benutzerprogramm abhängig |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsätze: |
Siehe Text. |
Medium |
aural |
Wert: |
<time> | <percentage> | inherit |
Ausgangswert: |
Vom Benutzerprogramm abhängig |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsätze: |
Siehe Text. |
Medium: |
aural |
Diese Eigenschaften geben eine Pause an, die vor (oder nach) dem Sprechen eines Elementinhalts eingehalten werden soll. Die Werte haben die folgenden Bedeutungen:
Die Pause wird zwischen dem Elementinhalt und dem Inhalt von 'cue-before' oder 'cue-after', falls vorhanden, eingefügt.
Autoren sollten relative Einheiten verwenden, um angesichts großer Abweichungen der Sprechgeschwindigkeiten robustere Stylesheets zu erstellen.
Wert: |
[[<zeit> | <percentage>]{1,2}] | inherit |
Ausgangswert: |
Vom Benutzerprogramm abhängig. |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsatz: |
Siehe Beschreibungen zu 'pause-before' und 'pause-after'. |
Medium |
aural |
Die 'pause'-Eigenschaft ist eine Abkürzung für die Einstellung von 'pause-before' und 'pause-after'. Werden zwei Werte angegeben, ist der erste Wert 'pause-before', der zweite Wert ist 'pause-after'. Ist nur ein Wert angegeben, gilt er für beide Eigenschaften.
Beispiel
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 */
Wert: |
<uri> | none | inherit |
Ausgangswert: |
none |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsätze: |
N/A |
Medium |
aural |
Wert: |
<uri> | none | inherit |
Ausgangswert: |
none |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsätze: |
N/A |
Medium |
aural |
Akustische Icons stellen eine weitere Möglichkeit dar, semantische Elemente voneinander zu unterscheiden. Klänge können vor und/oder nach dem Element abgespielt werden, um sie voneinander abzugrenzen. Die Werte haben die folgenden Bedeutungen:
Beispiel
A {cue-before: url("bell.aiff"); cue-after: url("dong.wav") }
H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
Wert: |
[<'cue-before'> | | <'cue-after'>] | inherit |
Ausgangswert: |
Für abkürzende Eigenschaften nicht definiert. |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsatz: |
N/A |
Medium |
aural |
Die 'cue'-Eigenschaft ist eine Abkürzung für die Einstellung von 'cue-before' und 'cue-after'. Werden zwei Werte angegeben, bezieht sich der erste auf 'cue-before', der zweite auf 'cue-after'. Wird nur ein Wert angegeben, gilt er für beide Eigenschaften.
Beispiel
Die beiden folgenden Regeln sind äquivalent:
H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
H1 {cue: url("pop.au") }
Kann ein Benutzerprogramm ein akustisches Icon nicht darstellen (wenn es beispielsweise die Umgebung des Benutzers nicht erlaubt), empfehlen wir, einen alternativen Hinweis zu erzeugen (z.B. die Anzeige einer Warnung, die Ausgabe eines Warntons usw.).
Wert: |
<uri> mix? repeat? | auto | none | inherit |
Ausgangswert: |
auto |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Nein |
Prozentsätze: |
N/A |
Medium: |
aural |
Ähnlich den Eigenschaften 'cue-before' und 'cue-after' gibt diese Eigenschaft einen Sound an, der als Hintergrund abgespielt werden soll, während der Inhalt eines Elements gesprochen wird. Die Werte haben die folgenden Bedeutungen:
Beispiel
BLOCKQUOTE.sad { play-during: url("violins.aiff") }
BLOCKQUOTE Q { play-during: url("harp.wav") mix }
SPAN.quiet { play-during: none }
Räumliches Audio ist eine wichtige stilistische Eigenschaft für die akustische Darstellung. Es bietet eine natürliche Möglichkeit, mehrere Stimmen voneinander zu unterscheiden, so wie im richtigen Leben (die Menschen stehen nur selten alle am selben Punkt in einem Raum). Stereo-Lautsprecher erzeugen Soundquellen von verschiedenen Seiten. Bi-akustische Kopfhörer oder die immer beliebter werdenden Heimkinos mit 5 Lautsprechern können vollständigen Surround-Sound erzeugen, und Einstellungen mit mehreren Lautsprechern können ein wirklich dreidimensionales Klangbild erzeugen. VRML 2.0 beinhaltet ebenfalls räumliches Audio, was bedeutet, dass es mit der Zeit auch immer mehr Hardware für räumliches Audio im Verbraucherpreisbereich geben wird.
Wert |
<angle> | [[left-side | far-left | left | center-left | center | center-right | right | far-right | right-side] | | behind] | leftwards | rightwards | inherit |
Ausgangswert: |
center |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Die Werte haben die folgenden Bedeutungen:
Diese Eigenschaft wird am wahrscheinlichsten implementiert, indem dasselbe Signal in unterschiedliche Kanäle mit unterschiedlichen Lautstärken gemischt wird. Dabei könnten auch eine Phasenverschiebung, eine digitale Verzögerung oder andere, ähnliche Techniken verwendet werden, um die Illusion einer Klangbühne zu erzielen. Welche Mittel genau eingesetzt werden, um diesen Effekt zu erzielen, sowie die Anzahl der verwendeten Lautsprecher, sind vom Benutzerprogramm abhängig; diese Eigenschaft identifiziert nur das gewünschte Endergebnis.
Beispiel
H1 { azimuth: 30deg }
TD.a { azimuth: far-right } /* 60deg */
#12 { azimuth: behind far-right } /* 120deg */
P.comment { azimuth: behind } /* 180deg */
Wird ein räumlicher Azimuth angegeben und das Ausgabegerät kann keine Sounds hinter der Position des Zuhörers erzeugen, sollten die Benutzerprogramme Werte der rückwärtigen Halbkugel in Werte der vorderen Halbkugel umwandeln. Eine Methode sieht wie folgt aus:
Wert: |
<angle> | below | level | above | higher | lower | inherit |
Ausgangswert: |
level |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentwerte: |
N/A |
Medium: |
aural |
Die Werte für diese Eigenschaft haben die folgenden Bedeutungen:
Welche Mittel für die Erzielung dieses Effekts eingesetzt werden und die Anzahl der verwendeten Lautsprecher, ist nicht definiert. Diese Eigenschaft definiert nur das gewünschte Endergebnis.
Beispiel
H1 { elevation: above }
TR.a { elevation: 60deg }
TR.b { elevation: 30deg }
TR.c { elevation: level }
Wert: |
<number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit |
Anfangswert: |
Medium |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentzahlen: |
N/A |
Medium: |
aural |
Diese Eigenschaft gibt die Sprechgeschwindigkeit an. Beachten Sie, dass sowohl absolute als auch relative Schlüsselwortwerte erlaubt sind (siehe auch 'font-size', 15.2.4). Die Werte haben die folgende Bedeutung:
Wert: |
[[<specific-voice> | <generic-voice>],]* [<specific-voice> | <generic-voice> | inherit |
Ausgangswert |
Vom Benutzerprogramm abhängig |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze |
N/A |
Medium |
aural |
Der Wert ist eine durch Kommas getrennte, nach Priorität geordnete Liste mit Sprachfamiliennamen (zu vergleichen mit 'font-family'). Die Werte haben die folgenden Bedeutungen:
Beispiel
H1 { voice-family: announcer, male }
P.part.romeo { voice-family: romeo, male }
P.part.juliet { voice-family: juliet, female }
Die Namen bestimmter Stimmen können in Anführungszeichen eingeschlossen werden. Sie müssen in Anführungszeichen eingeschlossen werden, wenn Wörter, aus denen sich der Name zusammensetzt, nicht den Syntaxregeln für Bezeichner entsprechen. Außerdem wird empfohlen, dass bestimmte Stimmen in Anführungszeichen eingeschlossen werden, deren Namen sich aus mehreren Wörtern zusammensetzen. Werden die Anführungszeichen weggelassen, werden alle Leerraumzeichen vor und hinter dem Stimmnamen ignoriert und Folgen beliebig vieler Leerraumzeichen innerhalb des Stimmnamens zu einem einzigen Leerzeichen umgewandelt.
Wert: |
<frequency> | x-low | low | medium | high | x-high | inherit |
Ausgangswert: |
medium |
Angewendet auf: |
Alle Elemente |
Vererbt |
Ja |
Prozentsätze |
N/A |
Medium: |
aural |
Gibt die durchschnittliche Stimmung (eine Frequenz) der Sprechstimme an. Die durchschnittliche Stimmung einer Stimme ist von der Stimmfamilie abhängig. Die durchschnittliche Stimmung für eine männliche Standardstimme beispielsweise liegt bei etwa 120 Hz, für eine weibliche Stimme etwa bei 210 Hz.
Die Werte haben die folgenden Bedeutungen:
Wert: |
<number> | inherit |
Ausgangswert: |
50 |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Gibt die Abweichung von der durchschnittlichen Stimmung an. Die wahrgenommene Stimmung einer menschlichen Stimme wird durch die Grundfrequenz festgelegt und weist normalerweise einen Wert von 120 Hz für eine männliche Stimme und 210 Hz für eine weibliche Stimme auf; diese Abweichungen vermitteln zusätzliche Bedeutung und Betonung. Eine hoch animierte Stimme, das heißt, eine Stimme, die stark abgewandelt ist, weist einen hohen Stimmungsbereich auf. Diese Eigenschaft bestimmt den Bereich, über den diese Variationen auftreten, das heißt, wie stark die Grundfrequenz von der durchschnittlichen Stimmung abweichen darf.
Die Werte haben die folgenden Bedeutungen:
Wert: |
<number> | inherit |
Ausgangswert: |
50 |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Gibt die Höhe „lokaler Spitzen“ in der Intonationskontur einer Stimme an. Beispielsweise ist Englisch eine betonte Sprache, und unterschiedliche Abschnitte eines Satzes erhalten eine primäre, sekundäre oder tertiäre Betonung. Der Wert von 'stress' steuert die Abweichung, die aus diesen Betonungszeichen resultiert. Diese Eigenschaft begleitet die Eigenschaft 'pitch-range' und wird bereitgestellt, um den Entwicklern die Möglichkeit zu eröffnen, professionelle akustische Ausgabegeräte zu nutzen.
Die Werte haben die folgenden Bedeutungen:
Wert: |
<number> | inherit |
Ausgangswert: |
50 |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze |
N/A |
Medium: |
aural |
Gibt den Umfang der Sprechstimme an. Eine umfassende Stimme „trägt“ in einem großen Raum, eine glatte Stimme nicht. (Der Begriff „glatt“ bezieht sich auf die Darstellung der Wellenform.)
Die Werte haben die folgenden Bedeutungen:
Eine zusätzliche Spracheigenschaft, speak-header, ist im Kapitel 17 über Tabellen beschrieben.
Wert: |
code | none | inherit |
Ausgangswert: |
none |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Diese Eigenschaft legt fest, wie die Interpunktion ausgesprochen wird. Die Werte haben die folgenden Bedeutungen:
Wert: |
digits | continuous | inherit |
Ausgangswert: |
continuous |
Angewendet auf: |
Alle Elemente |
Vererbt: |
Ja |
Prozentsätze: |
N/A |
Medium: |
aural |
Diese Eigenschaft steuert, wie Zahlen ausgesprochen werden. Die Werte haben die folgenden Bedeutungen: