Mit Soundkarte und Braillezeile

Linux-Software für Blinde und Sehbehinderte

Test & Kaufberatung | Test

Blinux besteht aus verschiedenen Softwarepaketen, die es Blinden und Sehbehinderten erleichtern oder überhaupt erst ermöglichen, einen Computer zu bedienen. Dies sind zum einen Treiber für verschiedene Braillezeilen (BRLTTY) und Text-to-Speech-Systeme (MBROLA, Festival), zum anderen Programme, die diese Möglichkeit zur Sprachausgabe nutzen (Screader, Emacspeak).

Aufmacher

Um BRLTTY einsetzen zu können, benötigt man eine Braillezeile; für die anderen getesteten Programme ist eine von Linux unterstützte Soundkarte erforderlich.

Vielmehr ist für jede Sprache zusätzlich ein Präprozessor erforderlich, der natürlichsprachliche Texte in für MBROLA verständliche Befehle verwandelt, etwa Txt2Pho [[#lit02 2]] für das Deutsche oder FreePhone [[#lit03 3]] für Englisch. Außerdem benötigt man für jede Sprache eine eigene Diphon-Datenbank in der Größenordnung von 10 MByte. Ein Vorteil dieses modularen Systems liegt darin, daß man sich nach Belieben die Präprozessoren und Diphon-Datenbanken aussuchen kann, aus denen man sein TTS-System zusammensetzt.

Im Moment ist die Auswahl an Präprozessoren noch recht klein, aber MBROLA verfügt bereits über Diphon-Datenbanken für verschiedene Sprachen mit den Stimmen verschiedener Sprecher. Allerdings stehen meist nur zwei Stimmen zur Auswahl, eine männliche und eine weibliche. Die Option, auch mehrere Tonhöhen für ein Phonem anzugeben, ermöglicht es, Texte sogar singen zu lassen. Allerdings hängt die Qualität der Sprachausgabe entscheidend von der Qualität der jeweiligen Diphon-Datenbanken und der Präprozessoren ab.

Die Installation der MBROLA-Binaries verläuft problemlos. Neben verschiedenen Optionen erwartet MBROLA die Angabe der verwendeten Diphon-Datenbank (etwa de1 für eine deutsche Sprecherin), der Phonemdatei(en) und der Ausgabedatei. Das Programm kann statt dessen auch die Standardein- und -ausgabe verwenden: Ein Kommando wandelt so einen Text via Präprozessor in MBROLA-Befehle um; Pipes leiten diese an MBROLA und die ausgegebene Audiodatei schließlich an den Audioplayer weiter.

Die MBROLA-Binaries im Blinux-Archiv darf man ausschließlich zusammen mit den Datenbanken des MBROLA-Projekts für nichtkommerzielle, nichtmilitärische Zwecke verwenden. Eine kommerzielle Version (einschließlich Quelltexten) ist vom Programmautor direkt zu beziehen. Das MBROLA-Projekt unterhält eine Mailing-Liste; um sie zu abonnieren, schickt man eine EMail mit dem Betreff `subscribe´ an `mbrola-interest-request@tcts.fpms.ac.be´.

Die Qualität der Sprachausgabe des Hadifix/MBROLA-Systems ist recht gut und kann sich durchaus mit der Qualität von Hardware-Sprachsynthesizern messen. Darüber hinaus besteht die Möglichkeit, in den zu lesenden Text Steuerbefehle für Txt2Pho einzufügen, beispielsweise um die Stimme zu wechseln, Tonhöhe und Sprechgeschwindigkeit einzustellen, Pausen zu setzen oder besondere Aussprachevarianten einzufügen, ja sogar um einen rheinischen Dialekt einzustellen. Die Distribution enthält einige eindrucksvolle Beispiele für diese Möglichkeiten.

Trotz der Größe dieser Datenbank ist die Aussprache recht fehlerhaft. So werden zum Beispiel weder `online´ noch `browser´ korrekt ausgesprochen. Die Aussprachedatenbank enthält zwar keines der beiden Beispiele, ihre Aussprache ist aber völlig regelmäßig (`on´ + `line´, bzw. `browse´ + `(e)r´). Die Fehler sind um so erstaunlicher, als Festival wesentlich bessere Ergebnisse erzielt, obwohl auch hier kein Eintrag dieser Wörter in der Datenbank existiert.

Emacspeak
Vergrößern
Mit Emacspeak kann Emacs sprechen.

Emacspeak ist mehr als ein Screenreader: Als fest integrierter Emacs-Bestandteil greift die Software auf zusätzliche Informationen über den Inhalt der Textpuffer zurück. Die Sprachausgabe erfolgt über Sprachsynthesizer der Firma Dectalk [[#lit07 7]] oder mit Hilfe von MBROLA, sofern man das MBROLA-Server-Paket [[#lit08 8]] installiert hat. Eine Anpassung an Festival [[#lit05 5]] ist zumindest in Planung.

Das Kompilieren und Installieren von Emacspeak gestaltet sich denkbar einfach. Anschließend muß man von Hand die Emacs-Variable `load-path´ so setzen, daß sie auf das Emacspeak-Verzeichnis weist (üblicherweise /usr/share/emacs/site-lisp/emacspeak). Außerdem ist die Umgebungsvariable DTK_PROGRAM so zu setzen, daß sie auf den Treiber für die Sprachausgabehardware oder auf MBROLA zeigt.

Will man Emacs immer zusammen mit Emacspeak benutzen, sollte man die Zeile

(load-library `emacspeak-setup´)   
(load-library `mbrola-css-speech´)   (load-library `mbrola-voices´)   

Probleme bereiten allerdings Programme mit mehreren Fenstern, da Screader die einzelnen Fenster nicht voneinander unterscheiden kann und die Bildschirmzeile quer über die Fenstergrenzen hinweg von links nach rechts vorliest. Die Bedienung menügesteuerter Programme wie SuSEs Konfigurationstool YaST kann so zu einem schwierigen Unterfangen werden.

BESCHREIBUNG
Vergrößern
BESCHREIBUNG
Vergrößern
Administrationswerkzeuge wie linuxconf, die auf überlappende Fenster verzichten, lassen sich auch mit Hilfe eines Screenreaders komfortabel bedienen.

Das Kompilieren von Screader ist unproblematisch. Von Hand ist dann nur noch eine Datei /opt/etc/abt320/tts zu erstellen, die den Namen des anzusteuernden Hard- oder Softwareprachsynthesizers enthält.

Emacspeak 9.0 ist bereits auf die Verwendung des MBROLA-Servers eingerichtet, so daß es nach der Installation des Pakets genügt, die Umgebungsvariable DTK_PROGRAM auf den Wert `mbrola´ zu setzen. Die Zusammenarbeit ist jedoch keineswegs immer stabil. Auf manchem System kommt es bereits nach wenigen Minuten zum Absturz von Emacs, wobei das Problem anscheinend weder bei Emacspeak noch bei MBROLA, sondern bei dem MBROLA-Treiber für Emacspeak liegt.

Die Verwendung der veränderten Version von FreePhone zusammen mit rawplay und Screader ist jedenfalls unproblematischer. Screader erwartet in der Datei /opt/etc/abt320/tts einen Hinweis auf den anzusteuernden Synthesizer. Es ist möglich, hier einfach den Namen eines Shell-Skripts anzugeben, das MBROLA beispielsweise wie folgt ansteuert:

#! /bin/sh   freephone -h \  /usr/mbrola/distribution/lib/lexicon \   | mbrola /usr/mbrola/en1/en1 `-` \  -.raw | rawplay   

Festival liest neben einfachem Text auch Sable, eine Markup Language auf XML-Basis, mit der sich zwischen verschiedenen Stimmen umschalten läßt und zusätzliche Informationen wie die Aussprache von schwierigen Worten oder Sounddateien eingefügt werden können. Weitere Flexibilität gewinnt Festival durch die Einbettung eines Scheme-Interpreters, der eine einfache Skriptsteuerung des Systems ermöglicht.

Es gibt auch für Festival ein Emacs-Interface, aber dieses ist hinsichtlich seiner Funktionalität nicht mit Emacspeak zu vergleichen. Darüber hinaus ist es möglich, externe Synthesizer in das Festival-System einzubinden; eine solche Anpassung für MBROLA liegt dem Paket bei. Meines Erachtens ist der Qualitätsunterschied allerdings nicht sehr groß.

Die Quellen der getesteten Version der Speech Tools verwendeten den Operator `!=´ für eine Klasse, für die er nicht definiert war - was beim Kompilieren natürlich zu Problemen führte. Bis zum Erscheinen dieses Hefts dürfte bereits eine korrigierte Version verfügbar sind. Positiv ist hervorzuheben, daß sowohl die Speech Tools als auch Festival selbst über umfangreiche Selbsttests verfügen, mit denen sich überprüfen läßt, ob die fertige Installation auch funktioniert. Wünschenswert wären jedoch etwas detailliertere Fehlermeldungen im Falle eines fehlgeschlagenen Tests.

Ein deutlicher Nachteil von Festival gegenüber MBROLA ist seine geringe Geschwindigkeit. Während man MBROLA noch auf einem Pentium mit 75 MHz einsetzen kann, werden die Wartezeiten bei Festival zu groß, um für den praktischen Einsatz zu taugen. Das dürfte vor allem daran liegen, daß ein Teil der Algorithmen in Scheme geschrieben sind und vom Interpreter abgearbeitet werden. Hier würde ein Bytecompiler wahrscheinlich Wunder wirken.

Stabilität und Funktionsumfang des Programms ließ sich in Ermangelung einer Braillezeile nicht überprüfen, blinde Benutzer sind damit jedoch recht zufrieden. BRLTTY bietet unter anderem die Erkennung von Textattributen, eine Cut-and-Paste Funktion und Cursor Routing. So, wie der Sehende den Blick über den Bildschirm gleiten lassen kann, ohne den Cursor zu bewegen, so kann der Blinde mit einer Braillezeile verschiedene Teilbereiche des Bildschirms lesen, ohne den Cursor zu bewegen. Cursor Routing erlaubt es, den Cursor direkt an die Stelle zu bewegen, wo sich die Braillezeile gerade befindet.

UXDOTS soll alle Braillezeilen, die über die serielle Schnittstelle angeschlossen werden, sowie verschiedene Sprachausgaben unterstützen. Zur Zeit befindet sich das Programm noch in der Entwicklung. (odi)

[1] MBROLA: http://tcts.fpms.ac.be/synthesis

[2] Txt2Pho: http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/HADIFIXforMBROLA.html

[3] FreePhone: http://tcts.fpms.ac.be/pub/mbrola/TTS/English/fs_a9m_d.tgz

[4] Hadifix: http://www.ikp.uni-bonn.de/~tpo/Hadifix.en.html

[5] Festival und Edinburgh Speech Tools: http://www.cstr.ed.ac.uk/projects/

[6] Emacspeak: http://www.unix.digital.com/demos/freekit/html/emacspeak.htm

[7] DecTalk-Sprachsynthesizer: http://www.ultranet.com/~rongemma/

[8] MBROLA Server: http://ftp.progsoc.uts.edu.au/users/bart/mbrola_server

[9] Screader: http://web.inter.NL.net/users/jlemmens/eng-screader.html

[10] BRLTTY: http://dave.mielke.cc/brltty/

[11] UXDOTS: http://www.c-lab.de/insb

[#anfang Seitenanfang]


Diphon

Phonem - kleinste bedeutungsunterscheidende Einheit einer Sprache.

Screenreader - gibt den Bildschirminhalt als gesprochene Sprache oder über eine Braillezeile wieder.

Text-to-Speech-(TTS-)System - `Vorleser´; setzt geschriebenen Text (in der Regel aus einer Datei) in gesprochene Sprache um.

[#anfang Seitenanfang]


Hinzu kommt, daß die Aussprache von Buchstaben kontextabhängig ist: Konsonanten werden in der Umgebung von Vokalen anders ausgesprochen als in der Umgebung anderer Konsonanten, die Länge von Vokalen hängt von den folgenden oder vorangegangenen Konsonanten ab und so weiter. Darüber hinaus verändern sich alle lebenden Sprachen, so daß die Schrift oft einen seit Jahrhunderten überholten Lautstand wiedergibt. Auch gehen Fremdworte in die Sprache ein, ohne daß sich ihre Schreibweise den Gepflogenheiten der eigenen Sprache anpaßt. Gerade die Computerwelt bietet hier zahllose Beispiele - oder haben Sie schon mal irgendwo `Brauser´ gelesen?

Durch konsequente Rechtschreibreformen läßt sich zumindest eine gute Entsprechung von Schriftbild und Aussprache erreichen, wie sie etwa im Spanischen zu finden ist. Am anderen Ende der Skala steht das Englische, dessen Rechtschreibung zum guten Teil dem Lautstand des ausgehenden Mittelalters entspricht und vor Ausnahmen nur so strotzt. Die deutsche Rechtschreibung nimmt hier eine mittlere Stellung ein.

Das Problem der Kontextabhängigkeit setzt sich auf der Ebene der Silben und der Wörter fort. Betonte Silben werden anders ausgesprochen als unbetonte, und die Betonung wird von der Position der Silbe im Wort ebenso beeinflußt wie von der Stellung des Wortes im Satz. In tatsächlichen sprachlichen Äußerungen wirkt sich auch der Sinnzusammenhang auf die Betonung aus.

Die Qualität eines Text-to-Speech-Systems (TTS) hängt daher nicht nur von den eigentlichen Lauten ab, sondern auch von der Software, die die Aussprache der Buchstaben und Buchstabenkombinationen, die Betonung der Silben und Wörter sowie die Satzmelodie berechnet. Die meisten Softwaresprachsynthesizer verwenden ein möglichst vollständiges Aussprachelexikon - nur bei Wörtern, die nicht in der Aussprachedatenbank stehen, versuchen sie eine regelbasierte Bestimmung der Aussprache. Die Satzmelodie läßt sich durch die Suche im Lexikon natürlich nicht feststellen und wird entsprechend regelbasiert erzeugt.

Dieser Ansatz ist pragmatisch und effizient im Hinblick auf die Verarbeitungsgeschwindigkeit, für den Linguisten allerdings eher unbefriedigend, da das Wissen um die Regelhaftigkeit der Sprache dabei etwas zu kurz kommt.