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: 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.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Sprachwunder
    Um dem Computer das Sprechen beizubringen, bedarf es keiner kommerziellen Lösung: Mit Kttsd und Tools wie Mbrola und Txt2pho macht Ihr Rechner HAL 9000 Konkurrenz.
  • WaveTools
    In Ausgabe 01/2003 haben wir ausführlich Einsatzgebiete der WaveTools, insbesondere der Programme wfct, wflt, wmix, und wplot, vorgestellt. Jetzt werfen wir einen Blick auf die restlichen Tools und zeigen deren Anwendungsmöglichkeiten.
Kommentare

Infos zur Publikation

LU 06/2015: Shell-Tools

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Konsole / Terminal in Linux Mint 17.1 deutsch
Dirk Resag, 09.05.2015 23:39, 12 Antworten
Hallo an die Community, ich habe vor kurzem ein älteres Notebook, Amilo A1650G, 1GB Arbeitsspe...
Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...