Home / LinuxUser / 2002 / 04 / MBROLA

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Lesestunde

MBROLA

Verwertung

Haben Sie einmal die Einstellungen Ihrer Wahl gefunden, möchten Sie sich den obigen Einzeiler sicher nicht jedesmal aus den Fingern saugen. So bietet sich seine Verlagerung in ein kleines Skript namens txt2snd an, das einen String oder eine ASCII-Datei gesprochen an Ihre Schallwandler weiterreicht (Listing 1).

Listing 1

Was auf die Ohren – txt2snd

#!/bin/bash
if [ $# = 0 ]
then
  echo "Usage: `basename $0` -f [filename]
       `basename $0` -s \"Text, den Sie vorgelesen bekommen wollen\"
`basename $0` jagt ein Textargument oder den Inhalt einer Datei durch txt2pho
und mbrola und spielt die entsprechende Audioumsetzung mit bplay ab."
  exit 1
elif [ $1 = -f ]
then
  txt2pho -i $2 -f | mbrola /usr/local/mbrola/txt2pho/data/de3 - - \
  | bplay -s 22050 -b 16
elif [ $1 = -s ]
then
  echo $2 | txt2pho -f | mbrola /usr/local/mbrola/txt2pho/data/de3 - - \
  | bplay -s 22050 -b 16
fi
    @KE:

In der ersten Zeile eines Skriptes muss immer der zuständige Interpreter stehen – in diesem Fall wurde mit der Bash die Standard-Shell gängiger Linux-Distributionen gewählt, so dass es sich im Skript so wie in der gewohnten Shell walten und schalten lässt. Mit if-elif-(also "if-else if"-)Bedingungen überprüft es, ob und mit welchen Optionen es aufgerufen wird. Wurden keine überreicht, gibt echo einen Hilfetext aus. Hat der Benutzer jedoch die Option -f gesetzt, erwartet txt2snd eine Dateiangabe und lässt die Stimme den Dateiinhalt sprechen. Beim Schalter -s hingegen wird der nachfolgend übergebene Text akustisch dargeboten. Einfache Sprachmeldungen sind so sehr leicht in bestehende, bislang einzig optisch zu lösende Ausgaben integrierbar.

Komfort²

Noch schöner und komfortabler wird es, wenn man den Inhalt des cut buffer (dieser beinhaltet einen mit der Maus selektierten Text) auf Knopfdruck um die Ohren bekommt. Haben Sie den beliebten Window Manager Window Maker [6] auf Ihre Festplatte gepackt, so besitzen Sie auch das zugehörige Tool wxpaste. Alternativ finden Sie es als Einzelgänger auch auf der Heft-CD, sowohl im Quelltext als auch als fertig übersetztes Binary, das Sie nur noch nach /usr/local/bin/wxpaste kopieren müssen.

Dort angekommen schickt es bei jedem Aufruf alles von Ihnen mit der Maus Markierte nach stdout. Was dort landet, ist wie gesehen ein potenzieller Kandidat zur weiteren Verwertung durch MBROLA:

wxpaste | txt2pho -f | mbrola /usr/local/mbrola/txt2pho/data/de3 - - | bplay -s 22050 -b 16

Sobald Sie diesen Befehl (oder auch eine erneut hierfür angelegte Skriptdatei) in Ihrem Startmenü unterbringen oder als Icon ablegen, bekommen Sie den markierten Bereich einer Web-Seite auf Mausklick vorgelesen. In Abbildung 1 sehen Sie das Desktop Environment XFce [7], bei dem hierzu lediglich ein auserkorenes Plätzchen mit der rechten Maustaste angestoßen werden muss. Schon öffnet sich eine Dialogbox, in der Sie obigen Mammutbefehl bequem unterbringen. Noch ein passendes Icon auswählen, dem Kind einen Namen spendieren (hier select2snd), und fertig ist Ihr vollautomatischer Sprecher.

Abbildung 1

Abbildung 1: TTS integriert in die Toolbar von XFce

Leider wissen nicht alle Programmierer um die Vorzüge des X-Clipboards (das zwischen einfach selektiertem Text und mehreren Speichern, genannt (primary) selection, unterscheidet). Und so gibt es wenige Anwendungen, bei denen Sie zusätzlich zum Markieren mit der Maus aus dem Pulldown-Menü den Eintrag Copy wählen müssen, damit der Text auch im relevanten Teil des Clipboards landet. wxpaste kann sich seine Informationen allerdings auch aus jedem anderen Winkel der Zwischenablage holen, wie ein Blick in die Manpage oder der Aufruf wxpaste --help verraten.

Kasten 1: Zeitansage@KL:Öffentliche Plätze beherbergen meist eine Uhr. Fehlt diese, wird man prompt angesprochen: "Entschuldigung, könnten Sie mir sagen, wie spät es ist?". In der Regel wird der Zeitlose daraufhin eine Antwort an seine Lauscher, und nicht ein Ziffernblatt vor seine Photozellen bekommen.

Solcherlei bewährtes Verhalten lässt sich mit Hilfe von MBROLA auch dem Desktop beibringen: Ist Ihre Desktop-Uhr einmal vom Fensterdschungel überwuchert, könnten Sie zwar das Unkraut mit unzähligen Fingerbewegungen jäten, doch einfacher ist es sicherlich, die Zeit auf einen einzigen Mausklick hin gesprochen zu bekommen.

date ist der Shell-Befehl, der sämtliche Informationen zu Datum und Uhrzeit parat hat. So gibt ein date +%H die aktuelle Stunde aus und ein date +%M die überzähligen Minuten. Damit alleine ist es jedoch nicht getan: Zusätzlich sollte die Ansage mitteilen, dass es sich bei diesen Zahlen um Stunden und Minuten handelt (der date-Befehl liefert schließlich nur nackte Zahlen). Der erwünschte Wortlaut lässt sich daher mit folgendem Konstrukt zusammenstricken:

jo@planet ~> echo `date +"%H"` "Uhr und" `date +"%M"` "Minuten"
17 Uhr und 08 Minuten

Diese Ausgabe kann nun wie gewohnt per Pipe oder in einem Skript an txt2pho und MBROLA geschickt werden, womit das Ganze wiederum in ein Startmenü eintragbar bzw. als Programm-Icon auf dem Desktop ablegbar wird.

Die Zahl "17" spricht MBROLA hierbei bemerkenswerter Weise nicht als "eins sieben", sondern wirklich als "siebzehn" aus. Anders die "08" – diese wird wirklich als "null acht" betrachtet. Allerdings stellt dies in unserem Anwendungsfall eher einen Schönheitsfehler als einen echten Mangel dar. Versierte Anwender können selbst ein Skript basteln, das mit if-Abfragen und dem Tool sed Kosmetik betreibt.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 96 Punkte (10 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...