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 11/2014: VIDEOS BEARBEITEN

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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...