Akustik im WWW Soundunterstiutzung in webbasierten Sprachen

Werbung
Akustik im WWW
Soundunterstutzung in webbasierten Sprachen
Projektgruppe AirWeb
Dagmar Wendt
Juni 2000
1
INHALTSVERZEICHNIS
Inhaltsverzeichnis
1
Einleitung
2
2
(X)HTML
3
3
CSS
4
JavaScript
5
VRML
6
Java
7
Zusammenfassung und Ausblick
2.1 akustische Moglichkeiten von (X)HTML . . . . . . . . . . . . . .
2.2 Weiterentwicklung von (X)HTML . . . . . . . . . . . . . . . . . .
3.1 akustische Moglichkeiten .
3.1.1 Volume . . . . . .
3.1.2 Speak . . . . . . .
3.1.3 Pause . . . . . . .
3.1.4 Cue . . . . . . . .
3.1.5 Mixing . . . . . . .
3.1.6 Spatial . . . . . . .
3.1.7 Voice charcteristics
3.1.8 Speech . . . . . . .
3.2 Weiterentwicklung . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
7
7
7
7
8
8
8
8
9
9
10
4.1 akustische Moglichkeiten . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Weiterentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1 akustische Moglichkeiten . . . . . . . . . . . . .
5.1.1 Sound node . . . . . . . . . . . . . . . .
5.1.2 AudioClip node und MovieTexture node
5.2 Weiterentwicklung . . . . . . . . . . . . . . . .
6.1 akustische Moglichkeiten . . . . . .
6.1.1 Java Media Framework API
6.1.2 Java Speech API . . . . . .
6.1.3 Java Sound API . . . . . .
6.1.4 Java 3D API . . . . . . . .
6.2 Weiterentwicklung . . . . . . . . .
. .
.
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
12
12
13
13
13
14
15
15
16
17
7.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 Diskussionspunkte nach dem Vortrag . . . . . . . . . . . . . . . . 17
7.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1
1
EINLEITUNG
2
Einleitung
Das WWW (World Wide Web) setzt auf dem seit den 60er Jahren bestehendem
Internet auf. Die Basis des WWW sind das Hypertext Transfer Protocol HTTP
und das HTML-Dateiformat.
Das WWW ist mit den heutigen Ausgabemedien fur Blinde und Sehbehinderte nur schwer zu nutzen. WWW-Seiten werden zum Teil akustisch dargestellt,
indem (X)HTML-Dateien in normalen Text konvertiert werden, der dann vorgelesen wird. Der IBM Homepage Reader mit seiner Unterscheidung zwischen
Links und normalem Text ist ein Beispiel fur einen Reader, der die syntaktische
Struktur einer (X)HTML-Datei zumindest teilweise akustisch abbildet.
Die Projektgruppe AirWeb hat das Ziel, einen auditiven Interaktionsraum
fur webbasierte, grasche Benutzungsoberachen zu erzeugen. Bei einem Interaktionsraum handelt es sich um einen Raum, in dem eine Wechselbeziehung
im Verhalten von Benutzer und Raum erfolgt. Ein auditiver Interaktionsraum
enthalt zahlreiche mit dem Gehor wahrnehmbare Elemente.
Ein solcher Interaktionsraum wurde es Blinden und Sehbehinderten starker
als derzeitige Reader erleichtern, auf einer Webseite und im WWW allgemein
zu navigieren.

Um einen auditiven Interaktionsraum zu erstellen, ist es wichtig einen Uberblick uber die derzeitigen Websprachen und Webstandards zu haben. Vor allem
eventuell vorhandene, direkt umsetzbare akustische Moglichkeiten sind fur die
PG von Interesse.
In dieser Ausarbeitung wird zunachst mit (X)HTML die Grundsprache des
WWW vorgestellt. Die Erganzungssprachen\ zu (X)HTML, CSS und Java"
Script, folgen anschlieend. Mit VRML wird ein drei-dimensionales, multimediales HTML-Analog vorgestellt. Zuletzt werden einige Java-APIs, die fur die
Erstellung eines auditiven Interaktionsraums benutzt werden konnten, betrachtet.
2
2
(X)HTML
3
(X)HTML
(X)HTML steht fur (ex tensible) H ypert ext M arkup Language. Die Idee einer
computergestutzten Hypertextsprache lat sich bis in die 40er Jahre des 20.
Jahrhunderts zuruckverfolgen. 1990 wurde diese Idee unter anderem von Tim
Berners-Lee wieder aufgegrien. Ziel der Ernder des WWW war es, wissenschaftliche Dokumente online sichtbar zu machen. Dafur sollten einfache Textformatierung, das Einbinden von Graken sowie eine Hypertextfunktionalitat
ermoglicht werden. Aus diesen Anforderungen heraus entstand (X)HTML.
Mit Hilfe von (X)HTML soll die logische Struktur eines Dokumentes angegeben werden. Die Interpretation und Anzeige der Daten erfolgt dann durch einen
Browser. Die Entwickler von (X)HTML glaubten an eine Unterteilung wissenschaftlicher Dokumente in die drei Aspekte Inhalt, logische Struktur und Darstellung. (X)HTML sollte den Aspekt der logischen Struktur abdecken. Fur den
Inhalt waren die Vefasser der wissenschaftlichen Texte zustandig. Die Prasentation wurde dem Browser uberlassen, vermutlich auch weil innerhalb von
(X)HTML keine Festlegung auf ein bestimmtes Ausgabemedium erfolgte.
Einer der ersten weitverbreiteten Browser war Mosaic. An den von Mosaic
gesetzten Standards wurden alle folgenden Browser-Entwicklungen gemessen.
Aufgrund der visuellen Darstellung dieses Browsers kam es zu Versuchen, die
Prasentation der Daten zu gestalten. Solche Darstellungsversuche wirkten meist
nur in einem speziellen Browser, da in anderen Browsern dieselben (X)HTMLElemente zum Teil anders dargestellt wurden. Die beiden marktfuhrenden Browser, Netscape und der Internet Explorer, fuhrten zusatzlich proprietare Erweiterungen zum (X)HTML-Standard ein, so da es mehrere Sprachmoglichkeiten
gab.
Das World Wide Web Consortium (W3C) versucht als (X)HTML-Standardisierungsorganisation diesem Trend entgegenzuwirken. Das W3C ist verantwortlich fur die Verabschiebung neuer Versionen des (X)HTML-Standards (zur
Zeit XHTML 1.0) sowie anderer WWW Standards (wie z. B. CSS oder XML).
Von der W3C wurden inzwischen auch Style Sheets speziziert, mit deren Hilfe
sich die Prasentation von Web-Seiten bestimmen lat.
XHTML 1.0 ist die zur Zeit aktuelle Empfehlung des W3C. Die vorhergehenden (X)HTML-Versionen HTML 2.0, HTML 3.2, HTML 4.0 und HTML
4.01 sind SGML-Anwendungen. SGML steht fur S tandard G eneralized M arkup
Language und wurde 1986 als ISO-Norm festgeschrieben. SGML ist eine MetaSprache, mit der Methoden fur das Erzeugen von Hierarchie-Modellen fur Dokumenttypen angegeben werden konnen. SGML-Anwendungen sind genau beschriebene Sprachen, innerhalb derer keine neuen Sprachelemente deniert werden konnen.
XHTML 1.0 hat die gleiche Semantik wie HTML 4.01. Es ist die erste
(X)HTML-Version, bei der es sich um eine XML-Anwendung handelt. XML
steht fur ex tensible M arkup Language und wurde 1998 vom W3C speziziert.
Bei XML handelt es sich um ein SGML-Prol, so da mit XML eigene Dokumenttypen und Befehle deniert werden konnen. XML ist eine Untermenge von
SGML.
Die unterschiedlichen (X)HTML-Versionen sind nicht voll ruckwartskompatibel. Der Aufbau einer (X)HTML-Datei besteht darin, zuerst die (X)HTMLVersion anzugeben. Die eigentlichen HTML-Angaben werden mit <html> eingeleitet und mit < =html> beendet. Eine HTML-Datei wird in head und body
2
(X)HTML
4
unterteilt. Der head enthalt Angaben uber die anzuzeigende HTML-Seite, im
body steht der eigentliche Inhalt des Dokumentes. Hier eine Beispielseite:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Hello World Page</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>
2.1
akustische M
oglichkeiten von (X)HTML
Mit Hilfe des object -Tags (ab HTML 4.0) lassen sich Objekte wie Bilder, Scripte, andere (X)HTML-Dateien oder auch Audio-Dateien in eine HTML-Datei
einbinden. classid gibt den Ort an, an dem sich die Implementierung des einzubindenden Objektes bendet. Mit codetype kann der zugehorige MIME-Type
angegeben werden. In classid sollen eher JavaScripte, der Sourcecode fur JavaApplets oder ahnliches angegeben werden. Mit data wird der Ort angegeben,
an dem sich die Daten des einzubindenden Objektes benden. Statt JavaScripten sollten hier etwa Bild- oder Audiodateien angegeben werden. type gibt den
MIME-Type der von data referenzierten Daten an. Mit Hilfe von classid und
data konnen also sowohl ein Applet, als auch die vom Applet zu verarbeitenden
Daten angegeben werden.
<object codetype="application/java"
classid="AudioItem"
width="15" height="15"
data="Hello.au">
</object>
Innerhalb des object -Tags konnen noch weitere Attribute verwendet werden. Mit
codebase kann eine Basisadresse angegeben werden, von der ausgehend Ortsangaben in classid, data und archive aufgelost werden. Wird codebase nicht
verwendet, dann werden diese Ortsangaben von der Adresse des (X)HTMLDokumentes aus aufgelost. archive ermoglicht es eine Liste von Adressen fur
classid und data anzugeben. Beim Einbinden groerer Elemente erlaubt standby die Ausgabe eines Textes wahren des Ladevorgangs. Mit height und width
lassen sich die Ausmae eines Objektes angeben. declare gibt an, da es sich
bei dieser object -Denition nur um eine Deklaration handelt. Istc dies der Fall,
mu das object spater instantiiert werden. In Verbindung mit einem Formular
konnen die Attribute name und tabindex benutzt werden, in Verbindung mit
einer Imagemap das usemap -Attribut.
2
(X)HTML
5
Mit Hilfe des param -Tags konnen eingebundene Objekte, wie Applets oder
Skripte initialisiert werden. Mit param konnen auch, wie mit Hilfe von data
innerhalb eines object -Tags, von einem Applet zu bearbeitende Dateien eingegeben werden.
<object codetype="application/java"
classid="AudioItem"
width="15" height="15">
<param name="snd" value="Hello.au|Welcome.au" />
Java applet that plays a welcoming sound.
</object>
Die von Netscape und IEX eingefuhrten Browser-Standards ermoglichen
zusatzliche akustische Eekte, wie etwa das Abspielen von Hintergrundmusik.
2.2
Weiterentwicklung von (X)HTML
Das W3C plant eine Modularisierung von XHTML 1.0. Ziel ist XHTML sowohl
vom Anwender erweiterbar zu machen, als auch die Moglichkeit zu bieten nur eine Untermenge von XHTML zu nutzen. Beide Moglichkeiten sind fur zukunftige
neue Gerate und Anwendungsplattformen (wie z. B. Handys) von Interesse.
Bei einer Nutzung des WWW mit unterschiedlichen Geraten und damit unterschiedlichen Ausgabemedien fur WWW-Seiten wird sich die Trennung zwischen Strukturierung und Prasentation des Inhaltes vermutlich starker durchsetzen. Zumindest kommerzielle Seiten werden ein only recognizable with a
"
PC monitor, no handhelds!\ vermeiden wollen. Nicht alle Ausgabemedien werden alle HTML-Elemente voll umsetzen konnen. Graken sind etwa fur HandyBildschirme problematisch. In diesem Zusammenhang konnte sich auch die Modularisierung von XHTML durchsetzen.
Eine Weiterentwicklung in Bezug auf akustische Moglichkeiten wird in
XHTML selber vermutlich nicht erfolgen. Die Trennung von logischer Gliederung (in (X)HTML), Angaben zur Prasentation (mit Hilfe von Style Sheets)
und den Inhalt einer Seite wird das W3C wohl beibehalten.
3
3
CSS
6
CSS
CSS steht fur C ascading S tyle S heets. CSS wird ebenso wie (X)HTML von der
W3C deniert. Mit Hilfe von CSS soll die Prasentation einer (X)HTML-Seite
angegeben werden. Die Prasentation von XML ist mit CSS ebenfalls moglich.
Prasentationsangaben werden deniert, indem angegeben wird wie ein bestimmtes (X)HTML-Element dargestellt werden soll. So kann etwa Schriftgroe, -art

und -farbe einer Uberschrift
festgelegt werden. Es gibt eine weitere vom W3C
denierte Style-Sheet-Sprache (XSL) mit der die Prasentation von XML moglich
ist. Die Prasentation von (X)HTML wird von XSL allerdings nicht unterstutzt.
CSS-Angaben konnen in einer eigenen Datei oder auch direkt in einer
(X)HTML-Datei gemacht werden. In einer (X)HTML-Datei gemachte Angaben
werden im head des (X)HTML-Dokumentes mit dem style -Tag gemacht.
<style type="text/css">
h1 {text-align: center; font-family: "Gill Sans", sans-serif;
color : red}
</style>
Ein Site-einheitliches Layout lat sich mit Hilfe einer eigenstandigen CSS-Datei
besonders gut verwirklichen. In allen (X)HTML-Dateien, die diese CSS-Datei

referenzieren, werden z. B. Uberschriften
auf die gleiche Weise dargestellt. Ein
Beispiel fur eine solche eigenstandige CSS-Datei ndet sich unter [6]. Die Referenzierung einer CSS-Datei erfolgt indem im head des (X)HTML-Dokumentes
mit Hilfe des link -Tags auf die CSS-Datei verwiesen wird.
<link rel="stylesheet" href="bsp.css" type="text/css">
Sind fur ein Element sowohl in einer eigenstandigen Datei als auch in einer (X)HTML-Datei selber Angaben gemacht worden, dann werden die in der
(X)HTML-Datei denierten CSS-Angaben verwendet. Auf diese Weise werden
Ausnahmen von einem eigentlich Site-einheitlichem Layout ermoglicht. Eine

Uberschrift
fur eine sich mit dem Mittelalter beschaftigenden Seite konnte so
einen altertumlichen Schriftsatz verwenden.
CSS-Dateien konnen vom Browser-Hersteller, vom Autor einer Website und
vom Browser-Nutzer gemacht werden. Die Voreinstellungen des Browsers sollen
hierbei die niedrigste Prioritat haben. Generell haben die Angaben eines Autoren eine hohere Prioritat als die des Nutzers. Es gibt allerdings einen CSS-Befehl,
mit dem es moglich ist, die CSS-Einstellungen des Nutzers als diejenigen mit
der hochsten Prioritat zu kennzeichnen. Mit diesem Befehl konnen Behinderte
eine immer fur sie wahrnehmbare Darstellung erreichen.
CSS liegt in den Versionen CSS1 und CSS2 vor. CSS2 wurde 1998 verabschiedet und ist nicht voll ruckwartskompatibel. Mit CSS2 werden unterschiedliche Prasentationsvorlagen fur unterschiedliche Ausgabemedien unterstutzt. Es
konnen aber auch in einer Datei Angaben fur unterschiedliche Ausgabemedien
gemacht werden. Um die CSS-Angaben auszuwerten wird ein Document Tree
fur die zu prasentierende Datei erstellt. Dabei konnen im Baum weiter unter
liegende Elemente Angaben, die weiter oben gemacht wurden, erben. Dadurch
mussen Werte, die innerhalb der ganzen (X)HTML-Datei gelten sollen nur einmal (fur HTML oder BODY) angegeben werden.
Bei den in der CSS2-Denition vorgestellten Ausgabemedien handelt es sich um:
3
7
CSS
Medium
Beschreibung
all
alle Medien
aural
akustische Ausgabe
braille
Braille-Feedback-Gerate
embossed Braille-Drucker
handheld
tragbare Gerate
print
Druckerausgabe
projection z. B. Folien
screen
Rechner-Farbmonitore
tty
Medien mit festen Fonts
tv
Fernseher-Bildschirme
Ein CSS2 konformer Browser mu laut dem W3C mindestens eins dieser Ausgabemedien unterstutzen. CSS2 wird zur Zeit von verschiedenen Browsern unterstutzt. Relativ weitgehend wird CSS2 vom Ice Browser 5 umgesetzt. Angaben
zu den unterstutzten Medienarten werden auf den Icesoft-Seiten leider nicht gemacht. Audio- und Videodateien werden mit einem JMF Pilot, der auf der Java
JMF API basiert, dargestellt.
3.1
akustische M
oglichkeiten
Die akustische Ausgabe wird in CSS2 mit Hilfe der Medienart aural ermoglicht.
Es ist moglich, diese Angaben als Alternative, oder zur Erganzung einer visuellen Prasentation zu benutzen. Mit Hilfe von CSS2 konnen Gerausche sowohl
in einem 3-dimensionalen Raum, als auch in einem zeitlichen Raum angegeben
werden. Eigenschaften von synthetisierter Sprache wie z. B. Sprechgeschwindigkeit oder Sprachfamilie konnen ebenfalls angegeben werden. Alle Werte konnen
ererbt werden. Werte die von <>\ umgeben sind, sind durch einen Absolutwert
"
zu ersetzen. Sie erscheinen nicht in der CSS-Anweisung.
3.1.1
Volume
Der Wert fur Lautstarke kann als <number>, eine Zahl zwischen 0 und 100 eingestellt werden. 0 steht hierbei fur die minimal horbare, 100 fur die maximale,
noch angenehm zu horende Lautstarke. Ein ererbter Wert kann auch mit einer
<percentage>-Angabe verandert werden. Die percentage -Angabe wird relativ
zum ererbten Wert gesehen und auf einen number -Wert umgerechnet. Um Stille
zu erzeugen wird der vordenierte Wert silent benutzt, der nicht dem number Wert 0 entspricht. Es gibt weitere vordenierte Werte (x-soft, soft, medium,
loud, x-loud ), die bestimmten number -Werten entsprechen.
3.1.2
Speak
Speak gibt die Art der akustischen Renderung des Elementinhaltes an. Mit none
wird der Elementinhalt nicht gerendert, mit normal werden sprach- abhangige Ausspracheregeln benutzt, wahrend spell-out fur ein Buchstabieren des Elementinhaltes sorgt.
3.1.3
Pause
Pause ermoglicht es, Pausenlangen vor und nach einem Elementinhalt anzugeben. Es existieren pause-before, pause-after und pause. Hierbei ist pause eine
3
8
CSS
Abkurzung fur das Setzen von pause-before und pause-after, bei der es moglich
ist zwei Werte anzugeben. Gultige Werte fur alle drei sind <time> eine Angabe
in Sekunden und Milisekunden, sowie <percentage>. Mit <percentage> wird
Bezug auf das Inverse des Wertes fur die Sprachgeschwindigkeit (speech-rate )
bezogen, um im Redeu naturlich wirkende Pausen zu ermoglichen.
3.1.4
Cue
Cue ermoglicht es, Hinweisklange vor und nach einem Elementinhalt anzugeben.
Hinweisklange konnen mit cue-before, cue-after und cue angegeben werden,
wobei cue analog zu pause eine Abkurzung fur das Nutzen der ersten beiden
Moglichkeiten ist. Gultige Werte sind <uri> mit der Angabe der zu spielenden
Audio-Datei und none um kein Earcon\ zu spielen.
"
3.1.5
Mixing
Mixing erlaubt das Mischen von Akustik. Mit play-during wird das Abspielen einer Hintergrundmusik ermoglicht. Gultige Werte sind <uri> fur die Angabe der
zu spielenden Audio-Datei, mix um die aktuelle Audio-Datei mit der ererbten
zu mischen, repeat zum Wiederholen der Hintergrundmusik bis die Renderung
des Elementinhaltes abgeschlossen ist, auto um das ererbte Hintergrundgerausch
einmal zu spielen und none damit keine (auch nicht ererbte) Hintergrundmusik
gespielt wird.
3.1.6
Spatial
Spatial ermoglicht Angaben zum Abspielort des Gerausches in einem 3-dimensionalen Raum.
Mit azimuth sind Angaben zur horizontalen Lage eines Gerausches moglich. Mit
<angle> wird die Position mit Hilfe eines Winkels zwischen -360deg und 360deg

beschrieben (270deg entspricht -90deg ). Ahnlich
wie bei dem Lautstarkewert
number existieren auch hier vordenierte Wertangaben, die einem bestimmten
angle -Wert entsprechen (left-side, far-left, left, center-left, center, center-right,
right, far-right, right-side ). Mit der zusatzlichen Angabe des Wertes behind
verandern sich diese vordenierten angle -Werte (bis auf left-side und right-side.
Mit Hilfe von leftwards und rightwards konnen Gerauschquellen ebenfalls gegen oder mit dem Uhrzeigersinn verschoben werden. Es werden hierbei immer
20deg addiert bzw. subtrahiert, so da leftwards tatsachlich den Eindruck einer
Verschiebung nach rechts, oder rightwards den einer Verschiebung nach links,
erzeugen kann.
Angaben zur vertikalen Position sind mit elevation anzugeben. Die Position
wird mit Hilfe des Winkels <angle> angegeben. <angle> kann Werte zwischen
-90deg und 90deg annehmen kann. Auch hier gibt es vordenierte Werte (below,
level, above ). Mit higher werden 10deg zur gegenwartigen Hohe addiert, mit
lower subtrahiert.
3.1.7
Voice charcteristics
Voice characteristic ermoglicht verschiedene Angaben zur Charakteristik der
Stimme, die zum Rendern der Elementinhalte verwendet wird.
Mit speech-rate wird die Sprechgeschwindigkeit bestimmt. Dieser Wert kann zur
3
9
CSS
Bestimmung der Pausenlange (percentage ) verwendet werden. Mit <number>
wird die Sprech-Rate in Worten pro Minute angegeben. Es existieren wieder vorgegebene Werte, die mit bestimmten number -Werten korrespondieren (x-slow,
slow, medium, fast, x-fast ). Mit faster und slower werden 40 Worte pro Minute
zum aktuellen Wert addiert bzw. davon subtrahiert.
Mit voice-family lassen sich Sprachfamilien angeben. Mit <generic-voice> sollen Sprachfamilien (z. B. mannlich, weiblich), mit <specic-voice> spezische
Instanzen (z. B. komisch, Paul, usw.) angegeben werden. Die spezischen Instanzen sollen zuerst kommen. Diese Sprachfamilien werden analog zu Schriftarten
gesehen (kursiv, TimesNewRoman $ zu Bart-Simpson, mannlich).
Mit pitch wird die Stimmhohe angegeben. Die Tatsache, das die durchschnittliche Stimmhohe von der Sprachfamilie abhangt sollte hier berucksichtigt werden.
Die durchschnittliche Stimmhohe wird mit <frequency> in hertz angegeben. fur
x-low, low, medium, high, x-high sind keine Werte angegeben, sie sollen jedoch
von Browsern in Abhangigkeit von der Sprachfamilie interpretiert werden.
Die Animiertheit einer Stimme wird mit Hilfe von pitch-range angegeben. Es
sind <number>-Werte zwischen 0 und 100 erlaubt.
Betonung wird mit Hilfe von stress festgelegt. Der <number>-Wert kann wieder
Werte zwischen 0 und 100 annehmen. 50 entspricht der normalen Betonung fur
eine Sprache.
Die Wellenform einer Stimme wird mit richness angegeben. Es sind wieder
<number>-Werte zwischen 0 und 100 erlaubt. Je niedriger der Wert ist, desto
glatter und damit monotoner wirkt die Wellenform der aufgezeichneten Stimme.
3.1.8
Speech
Speech legt weitere Ausspracheregeln fest.
Mit speak-punctuation wird festgelegt ob Satzzeichen wortlich gesprochen werden. Ist der Wert code angegeben, dann werden sie mitgesprochen, bei Angabe
von none nicht.
Die Aussprache von Zahlen wird mit speak-numeral angegeben. die einzelnen
Ziern werden mit digits gesprochen, die gesamten Zahlen mit continuos.
3.2
Weiterentwicklung
In der W3C wird zur Zeit CSS3 diskutiert. Auch fur CSS3 ist wie fur XHTML
eine Modularisierung geplant. Die Liste der zu erstellenden Module steht noch
nicht endgultig fest, derzeit ist allerdings ein Aural Cascading Style Sheets
(ACSS) Modul geplant.
Style Sheets wie CSS werden sich vermutlich bei einer Nutzung des WWW
mit Hilfe unterschiedlicher (Ausgabe-)Gerate starker durchsetzen. Vor allem medienspezische Angaben werden dann verstarkt von Interesse sein.
4
JAVASCRIPT
4
10
JavaScript
JavaScript ist eine Skriptsprache zur Erganzung von (X)HTML-Seiten. Sie liegt
in den Versionen 1.0 - 1.5 vor. JavaScript 1.0 wird von den meisten Browsern
unterstutzt, bei anderen Versionen ist die Unterstutzung fraglich. Um universell
anwendbaren JavaScriptCode zu schreiben sollte man entweder JavaScript 1.0
benutzen oder Browser-sensitiven Code schreiben.
Client-Side JavaScript ist das in HTML-Seiten verwendete JavaScript,
Server-Side JavaScript wird in plattformunabhangige Bytecodes ubersetzt, mit
denen CGI-Programm ahnliche Aplikationen erstellt und ausgefuhrt werden
konnen.
JavaScript ist sehr erfolgreich, so da es inzwischen das ahnlich funktionierende, von Microsoft entwickelte JScript gibt. Mit dem ECMA-262 Standard,
der zur Zeit in der dritten Auage vorliegt, gibt es inzwischen auch fur Skriptsprachen einen Standard. Nach den Angaben der Entwickler von JavaScript,
wird der ECMA-262 Standard seit JavaScript 1.3 umgesetzt.
4.1
akustische M
oglichkeiten
JavaScript selber besitzt keine akustischen Moglichkeiten. Es kann allerdings
zum Erkennen des eine Seite lesenden Browsers, sowie der in ihm installierten
Plugins benutzt werden. Mit der ab Version 1.3 eingefuhrten Moglichkeit, mit
Java-Applets zu kommunizieren, kann mit Hilfe von JavaScript auf die akustische Moglichkeiten von Java zugegrien werden.
4.2
Weiterentwicklung
Netscape entwickelt JavaScript 2.0. Die Sprachspezikation und die Engine Implementierung sollen neugeschrieben werden, wobei auf Ruckwartskompatibilitat geachtet wird. In der JS Engine Newsgroup und auf ECMA TC39 Treen
ndet die Entwurfsdiskussion statt.
5
VRML
5
11
VRML
VRML steht fur V irtual R eality M odeling Language. Es ist ein Datei-Format
mit dem interaktive 3D-Objekte und -Welten beschrieben werden konnen. In
VRML konnen 3D-Graken mit Multimedia integriert werden. VRML kann im
Internet, in Intranets und lokalen Anwendersystemen angewendet werden.
VRML liegt in den Versionen 1.0, 2.0 und 97 vor. VRML 97 ist eine 1997
verabschiedete ISO-Norm von VRML 2.0. VRML ist nicht voll ruckwartskompatibel. Das VRML 97 Dateiformat wird von der Java3D API unterstutzt.
Eine VRML 97 Datei wird durch eine Kommentarzeile, die die VRMLVersion angibt einegeleitet. Anschlieend folgen die eigentlichen VRML Angaben.
#VRML V2.0 utf8
# Einfaches Hello World Programm das einen String darstellt und
# einen Link ins World Wide Web darauf legt
Anchor
{
children
[
Shape
{
geometry Text
{
string ["Hello World"]
}
}
]
description "Hello World"
url "http://www.csv.ica.uni-stuttgart.de/homes/js/javakurs/
HelloWorld2.wrl"
}
# dieser Befehl gestaltet lediglich das Aussehen des Browsers
NavigationInfo { type "EXAMINE" }
Eine 3-dimensionale Welt wird innerhalb einer VRML-Datei mit einem scenegraph angegeben. Ein scenegraph ist eine gerichteter, azyklischer Graph der
0 oder mehr root nodes enthalt. Von dem Ursprungsknoten ausgehend, werden
alle graphischen Knoten in Baumform angeordnet. Im Beispiel ist Anchor der
root node.
5.1
5.1.1
akustische Mo
glichkeiten
Sound node
Mit Hilfe eines Sound nodes wird die Ortsangebe eines Gerausches innerhalb
einer VRML-Welt angegeben. Vom Sound node ausgehende Gerausche sind nur
innerhalb eines begrenzten Raumes horbar. In einem inneren Ellipsoid wird das
Gerausch in seiner maximalen Lautstarke wahrgenommen. Ein aueres Ellipsoid
5
12
VRML
gibt den Raum an in dem das Gerausch leiser wahrgenommen wird. Auerhalb
dieses Ellipsoids wird das vom Sound node erzeugte Gerausch nicht wahrgenommen. Das abzuspielende Gerausch mu in einem AudioClip node oder in einem
MovieTexture node angegeben werden.
5.1.2
AudioClip node
MovieTexture node
und
Ein AudioClip node speziziert Audio-Daten, die von einem Sound node referenziert werden konnen. Mit einem MovieTexture node wird eine zeitabhangige
Textur-Karte, die sich in einer Film-Datei bendet, zusammen mit Kontrollparametern deniert. Wird ein MovieTexture node als Quelle fur einen Sound node
benutzt wird, dann wird er nich gerendert.
Sowohl der AudioClip node als auch der MovieTexture node sind zeitabhangige Knoten, die sich zu bestimmten Zeiten aktivieren und deaktivieren konnen.
Diese Werte konnen auch durch Nachrichten, wahrend ein solcher Knoten aktiv
ist, gesetzt werden. Wiederholungen nden statt, solange loop wahr ist.
5.2
Weiterentwicklung
Zur Zeit wird an der Entwicklung von X3D gearbeitet. Mit X3D sollen die
Geometry und die Verhaltensmoglichkeiten von VRML 97 mit Hilfe von XML
ausgedruckt werden.
6
JAVA
6
13
Java

Java wurde der Oentlichkeit
Ende 1995 vorgestellt. Es ist eine plattformunabhangige, objektorientierte Programmiersprache, die fur Internetprogrammierung besonders geeignet ist. Mit den in der Java Plattform mitgelieferten APIs
(Application Programming Interface), werden Funktionalitaten bereitgestellt,
auf die Programmierer aufbauen konnen.
Java liegt in den Versionen 1.0, 1.1, 1.2 und 1.3 vor. In Java 1.2 wurden
zahlreiche Neuerungen eingefuhrt, so da es auch Java 2 Plattform genannt wird.
Java 1.3 enthalt gegenuber Java 1.2 nur kleinere Korrekturen und Updates.
Die Plattformunabhangigkeit Javas wird mit Hilfe der Java Virtual Machine (JVM) erreicht. Java-Code wird in Java-ByteCode ubersetzt, der dann
von der JVM interpretiert wird. Dadurch mu die JVM und nicht das einzelne
Programm auf eine Plattform portiert werden. Ist dies geschehen, konnen alle
Java-ByteCodes auf dieser Plattform ausgefuhrt werden. Neue Versionen der
Java Virtual Machine mussen naturlich neu portiert werden. Da in der Praxis
nicht alle JVM-Versionen fur alle Plattformen vorliegen, ist die Plattformunabhangigkeit nicht voll gegeben.
Java-Code kann als eigenstandiges Programm, oder als Applet interpretiert
werden. Applets sind in einem Browser lauahige Java-Programme. Die meisten Java-fahigen Browser setzen nur Java 1.0 voll um, fur die spateren JavaVersionen benotigen sie PlugIns.
6.1
akustische M
oglichkeiten
Um einen auditiven Interaktionsraum in Java zu erstellen, werden spezielle Java
APIs und Packages benotigt. Die wichtigsten werden hier jetzt kurz vorgestellt.
6.1.1
Java Media Framework API
Mit der Java Media Framework API (JMF) konnen Audio, Video und andere
zeitbasierte Medien in Java-Programme und Applets eingebunden werden. Die
JMF ist ein optionales Package, das die Multimedia Fahigkeiten in der Java 2
Standard Edition Plattform erweitert.
Die JMF gibt eine einheitliche Architektur, ein einheitliches NachrichtenProtokoll und eine einheitliche Programmier-Schnittstelle fur Medien-Spieler,
Medien-Aufnahme und fur Konferenzen vor. Sie liegt zur Zeit (seit dem 1.6.00)
in der Version 2.1 vor und umfat die folgenden Packages.
javax.media
Enthalt vordenierte Schnittstellen (z. B. Player als MediaHandler um
zeitbasierte Mediendaten darzustellen und zu kontrollieren), Klassen (z.
B. Manager die Zugriststelle um systemabhangige Resourcen wie Player,
Datenquellen,... zu erhalten), Ausnahmen (z. B. NoPlayerException wenn
der Manager einen Player fur eine bestimmte URL nicht nden kann) und
Fehler.
javax.media.bean.playerbean
Die JavaBean Komponente, besteht aus Klassen (z. B. MediaPlayer und
MediaPlyerBeanInfo ).
6
JAVA
14
javax.media.control
Schnittstellen zur Steuerung (z. B. MpegAudioControl um die Parameter
fur MPEG Audios anzugeben).
javax.media.datasink
DataSink ist eine Schnittstelle aus javax.media fur Objekte, die Mediendaten von einer Quelle lesen und fur ein Ziel rendern (z. B. Abspeichern
in einer Datei). Dieses Package stellt eine Schnittstelle und drei Klassen
fur DataSink zur Verfugung.
javax.media.format
Ermoglicht Formatangabe und -umwandlung der Medien, enthalt Klassen (z. B. AudioFormat Formatinformationen fur Audiodateien) und eine
Ausnahme (UnsupportedFormatException wenn ein FormatChange fehlschlagt, weil das Zielformat nicht unterstutzt wird).
javax.media.protocol
Schnittstellen und Klassen, die Angaben fur das Lesen und Schreiben von
Mediendaten erlauben.
javax.media.renderer
Schnittstellen fur Renderer und Player.
javax.media.rtp
Bietet Unterstutzung fur RTP (Real-Time Transport Protocol). RTP ermoglicht das Versenden und Empfangen von Echt-Zeit Mediendaten uber
das Netzwerk.
javax.media.rtp.event
RTP-Unterstutzung
javax.media.rtp.rtcp
RTP-Unterstutzung
javax.media.util
Utilities fur das Konvertieren von Video Buern in AWT Bildobjekte oder
umgekehrt.
6.1.2
Java Speech API
Die Java Speech API stellt Moglichkeiten zur Java-basierten Spracherkennung
und Sprachsynthese bereit. Es handelt sich bei ihr nur um eine Spezikation,
Implementierungen liegen von anderen Anbietern vor.
Sun hat das Java Speech Grammar Format (JSGF) entwickelt, um eine plattformunabhangige Kontrolle von Spracherkennern zu ermoglichen. Zur plattformunabhangigen Kontrolle von Sprachsynthetisierern entwickelt Sun zur Zeit die
Java Speech Markup Language (JSML), die in einer -Version vorliegt. Die Java
Speech API besteht aus den drei folgenden Packages.
javax.speech
Die Schnittstellen, Klassen, ausnahmen und Fehler erlauben das Ansprechen und Interagieren mit einer Speech Engine
6
JAVA
15
javax.speech.recognition
Ermoglicht die Spracherkennung, besitzt Schnittstellen, Klassen, Ausnahmen (GrammarException ) und Fehler (ResultStateError ). Die Schnittstellen und Klassen ermoglichen die Zusammenarbeit mit einem Erkenner
(Recognizer ), sowie Angaben zu einer Sprachgrammatik.
javax.speech.synthesis.
Besitzt Schnittstellen, Klassen und eine Ausnahme (JSMLException ). Die
Schnittstellen und Klassen erlauben das Ansprechen eines Synthetisierers.
6.1.3
Java Sound API
Die Java Sound API bietet Unterstutzung fur Audio-Operationen wie z. B.
Mixen, Aufnahme, MIDI Sequencing und MIDI Synthese. Die Java Sound API
umfat die vier Packages.
javax.sound.midi
Erlaubt I/O, Sequencing und Synthese von MIDI-Daten mit Schnittstellen
(z. B. MidiDevice, Receiver, Sequencer, Synthesizer, Transmitter ), Klassen
(z. B.Instrument, Sequence, Track ) und Ausnahmen MidiUnavailableException und (InvalidMidiDataException ).
javax.sound.midi.spi
Schnittstellen um neue MIDI-Gerate, MIDI-Datei-Leser und MIDI-DateiSchreiber oder Sound-Datenbankleser zu implementieren.
javax.sound.sampled
Ermoglicht Aufnahme, Bearbeitung und Abspielen gesampelter Audiodaten mit Schnittstellen (z. B. Mixer, Port, Clip ), Klassen (z. B. Mixer.Info
AudioFileFormat, AudioFormat,) und Ausnahmen (LineUnavailableException und UnSupportedAudioFileException ).
javax.sound.sampled.spi Abstrakte Klassen, deren Ableitungen benutzt
werden konnen um neue Audio-Gerate, Sounddatei-Leser und -Schreiber
oder Audioformat Konvertierer anzubieten.
6.1.4
Java 3D API
Die Java 3D API steht zur Zeit in der Version 1.2 zur Verfugung. Sie unterstutzt
unter anderem spatial sound Angaben zum Ort einer Gerauschquelle im dreidimensionalen Raum. Fur Gerausch und MIDI Unterstutzung benutzt sie die
Java Sound API. Die Java 3D API enthalt eigene 3D-Sound Informationen.
Hier werden nur Elemente vorgestellt, die fur eine akustische Umsetzung
wichtig sind. Zusatzlich gibt es in der 3D API Utility Packages.
javax.media.j3d
Schnittstellen(AudioDevice, AudioDevice3D, InputDevice ), Klassen (AuralAttributes, BackgroundSound, Clip, ConeSound, MediaContainer, ModelClip, PointSound, Sound, Soundscape ), Ausnahmen(SoundException )
um eine drei-dimensionale Welt zu erzeugen
javax.vecmath
Keine Elemente, die fur eine akustische Umsetzung wichtig sind.
6
JAVA
6.2
16
Weiterentwicklung
Innerhalb der Java Media Framework API waren eine weitere Unterstutzung fur
Dekodierung und Kodierung von Sound- und Video-Formaten und eine gleiche
Unterstutzung in Portierungen fur verschiedenen Betriebssyteme anzustreben.
Zusatzlich werden fur einige der unterstutzten Formate nicht alle Kompressionsalgorithmen unterstutzt, so da etwa nicht alle .mov-Dateien abgespielt werden
konnen.
Bei der Java Speech API sollten die Java Speech API Implementierungen
sowie die Java Speech Markup Language (JSML) fur die Sprachsynthese weiterentwickelt werden.
Eine Unterstutzung weiterer Formate ware innerhalb der Java Sound API
wunschenswert.
Die vorgestellten APIs sind Teil des Java Media Konzeptes. Sie werden sich
im Zusammenhang mit dern anderen Java Media APIs 2D, Advanced Imaging,
Shared Data Toolkit, Telephony, Image I/O aufgrund der Popularitat von Java
durchsetzen.
7
ZUSAMMENFASSUNG UND AUSBLICK
7
17
Zusammenfassung und Ausblick
7.1
Zusammenfassung
JavaScript besitzt als einzige der vorgestellten Websprachen und Webstandards
keine akustische Unterstutzung, (X)HTML nur eine sehr eingeschrankte. VRML
und Java bieten dagegen gute akustische Moglichkeiten. CSS ist als einziger
Webstandard fur die akustische Darstellung von WWW-Seiten ausgelegt. Dementsprechend sind in die Entwicklung von CSS einige interessante Ideen fur eine
akustische Ausgabe von WWW-Seiten eingeossen. Von diesen Ideen konnen
Impulse fur die Projektgruppe ausgehen.
Ein drei-dimensionaler Raum liesse sich mit Hilfe von CSS, VRML oder
Java erzeugen, (X)HTML und JavaScript bieten hier keine Moglichkeiten. Alle
vorgestellten Webstandards und Websprachen mit Ausnahme von CSS bieten
Interaktionsmoglichkeiten.
Keiner der vorgestellten Webstandards bietet allein die Moglichkeit einen
auditiven Interaktionsraum zu schaen.
7.2
Diskussionspunkte nach dem Vortrag
Konnen wir ein CSS-Template f
ur Webseiten schreiben und sie dann ent-
sprechend akustisch ausgeben?
Ist eine echte Interaktion zwischen den Standards m
oglich?
Was ist eigentlich unser Ziel?
Wollen wir vom zwei-dimensionalen Raum in den drei-dimensionalen u
ber-
setzen, indem wir (X)HTML-Seiten in einem akustischen Interaktionsraum darstellen?

Wenn wir uns bei einer Ubersetzung
von Webseiten auf gute\ Webseiten
"
beschranken, was sind dann eigentlich gute\ oder schlechte\ Webseiten?
"
"
Wollen wir von einem drei-dimensionalen Raum in VRML-Darstellung in
einen akustischen Interaktionsraum uberstezen?
7.3
Ausblick
Java ware aufgrund der weitgehenden akustischen und das Internet betreenden
Moglichkeiten eine geeignete Programmiersprache fur die PG. Sie konnte in
Zusammenhang mit JavaScript oder dem VRML-Format eingesetzt werden. Der
Inhalt von (X)HTML- und CSS-Dateien konnte ebenfalls mit Hilfe von Java
eingelesen werden.
Alle vorgestellten Webstandards und Websprachen konnten bei der Erzeugung eines auditiven Interaktionsraums verwendet werden. (X)HTML oder
VRML konnten etwa das Eingabeformat festlegen, CSS Angaben zur auditiven
Ausgabe machen, Java und JavaScript die Eingaben verarbeiten.
LITERATUR
18
Literatur
[1] SELFHTML http://www.teamone.de/selfhtml/
[2] OASIS (Organization for the Advancement of Structured Information standards) http://www.oasis-open.org/
[3] W3C (World wide web Consortium) http://www.w3.org/
[4] W3C HTML Home Page http://www.w3.org/MarkUp/
[5] W3C CSS http://www.w3.org/Style/CSS/
[6] W3C CSS Beispiel http://www.w3.org/TR/REC-CSS2/sample.html
[7] Netscape JavaScript http://developer.netscape.com/
[8] VRML WEB 3D Consortium http://www.vrml.org/
[9] VRML Beispiel
http://www.csv.ica.uni-stuttgart.de/homes/js/javakurs/vrmlkurs.html
[10] Sun Java http://www.java.sun.com/
[11] Sun Java Media Framework http://www.java.sun.com/products/javamedia/jmf/
[12] Sun Java 3D http://www.java.sun.com/products/java-media/3D/
[13] Sun Java Speech http://www.java.sun.com/products/java-media/speech/
[14] Sun Java Sound http://www.java.sun.com/products/java-media/sound/
[15] David Flanagan, Java in a Nutshell, Third Edition, O'Reilly 1999, ISBN
1-56592
[16] Cay Horstmann und Gary Cornell, Core Java 2, Band Grundlagen,
Prentice Hall 1999, ISBN 3-8272-9565-3
[17] Craig Lindley, Digital Audio with Java, Prentice Hall 2000, ISBN 0-1308767-3
Herunterladen