[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://www.cstr.ed.ac.uk/projects/festival Festival] {en} liefert ein Gerüst zur Sprachwiedergabe (TTS - "Text-to-Speech"). Das Projekt wird von der Universität Edinburgh entwickelt. Es lassen sich Module für etliche Sprachen integrieren; der Zugriff kann über verschiedene Wege erfolgen: über die Kommandozeile, einen [wikipedia:Scheme:]-Interpreter, als Server, über [:Java:] oder eine [:Emacs:]-Schnittstelle. Standardmäßig wird Englisch als Ausgabe-Sprache verwendet, es können aber weitere Sprachen verwenden werden. Außerdem können Textausgaben in '''.wav'''-Dateien gespeichert werden. Die vollständige Dokumentation, auch zum Erstellen neuer Sprachen/Stimmen, ist über das Projekt [http://festvox.org festvox.org] {en} der Carnegie Mellon University beziehbar. = Installation = Festival ist in den Paketquellen vorhanden, folgende Pakete müssen installiert [1] werden: {{{#!vorlage Paketinstallation festival, universe festival-doc, universe, optional, Dokumentation des Programms festival-freebsoft-utils, universe, optional, zur Erweiterung der Ausgabemöglichkeiten }}} Außerdem müssen die gewünschten Stimmen installiert werden, sie sind als Pakete unter den Namen '''festvox-*''' zu finden. In den Quellen sind derzeit englische/amerikanische, italienische, spanische, tschechische, russische und finnische Stimmen, sowie Stimmen in Hindi, Telugu und Marathi verfügbar; für einige Sprachen werden auch weitere Lexikon-Dateien benötigt == Manuelle Installation == Um Festival auch für weitere Sprachen, u.a. deutsch, verfügbar zu machen, müsste das Programm aus dem Quellcode erstellt und erheblich erweitert werden. Die Unterstützung für deutsche mbrola-Stimmen ist aber leider eingestelt worden. = Bedienung = Festival stellt ein Kommandozeilen-Werkzeug zur Verfügung, das auf zwei Ebenen bedienbar ist. Die allgemeine Syntax auf der Kommandozeile[2] lautet: {{{#!vorlage Befehl festival OPTION(EN) TEXTDATEI1 TEXTDATEI2 ... }}} Mit der Eingabe von {{{#!vorlage Befehl festival }}} wechselt man in eine [wikipedia_en:SIOD:]-Shell in das Programm, der Prompt im Terminal ändert sich in {{{ festival > }}} Mit der Eingabe von `help` wird eine kurze Hilfebeschreibung ausgegeben. Die eigentlichen Befehle werden in Klammern eingegeben; um den Text direkt auszugeben, tippt man z.B. {{{#!vorlage Befehl (SayText "Hello") }}} ein; um eine Datei namens `FILENAME` vorzulesen {{{#!vorlage Befehl (tts "FILENAME" nil) }}} ggf. den Pfad mit angeben. == Sprache/Stimme festlegen == Ohne Angabe der Sprache wird Englisch verwendet; eventuell installierte Sprachen lassen sich dann auf der SIOD-Ebene aber verwenden. Die Fehlermeldung `unbound variable ...` weist z.B. auf nicht installierte Sprachen oder Tippfehler hin. Auch mit der Angabe einer anderen Sprache-Option , z.B. `--language italian`, lassen sich dann andere Stimmen/Sprachen einsetzen. Für verwendete Sprachen muss standardmäßig das entsprechende Wörterbuch ('''festlex*''', oder andere sprachspezifische Dateien) mit den Regeln zur Aussprache vorhanden sein. Die Sprecherstimme kann leider für Festival im externen Aufruf nicht festgelegt werden, beim Aufruf mit der Option `--language `, wird eine intern festgelegte Standardsprache verwendet. Festival liest allerdings auch die Einträge der '''.feststialrc''' im Homeverzeichnis des Benutzers (einfache Textdatei, die ggf. erst angelegt werden muss). Hier kann die tatsächlich zu verwendende Stimme festgelegt werden (diese Eintragungen haben Vorrang vor den internen, auch bei angegebener Option zur Sprache werden diese Stimmen verwendet), für die weibliche italienisch Stimme wäre dort z.B. {{{ (set! voice_default voice_pc_diphone) }}} anzugeben [2]. Um einfacherer Umschalten zu können, kann man sich alle verfügbaren Festival-Stimmen mit einem führenden '''`;`''' in dieser Form eintragen, für die tatsächlich zu nutzende wird das Semikolon dann jeweils entfernt. Die Namen der installierten Stimmen findet man bei Installation aus den Paketquellen unter '''/usr/share/festival/voices/[SPRACHE]/''', die Kürzel werden mit vorgestelltem `voice_` verwendet. Die Stimmen in Hindi, Telugu, und Marathi benötigen anscheinend Eingaben in den entsprechenden Zeichensätzen, die russische Stimme kann aber auch lateinische Buchstaben "lesen". Wenn versucht wird, Texte mit für die Sprachen unbekannten Zeichen wiederzugeben, kann es zu Fehlern kommen. Festival legt im [:Homeverzeichnis:] des Benutzers eine '''.festival_history'''-Datei an, in der alle eingegebenen Befehle gespeichert werden. Diese sollte man ggf. hin und wieder leeren. == Externe Optionen == {{{#!vorlage Tabelle <-2 rowclass="titel"> "externe" Festival-Optionen +++ Option Funktion +++ `-q` Keine Verwendung der Standard-setup-Dateien +++ `--datadir ` Pfadangaben zu den Festival-Dateien +++ `--libdir ` Pfadangabe für die Bibliotheken +++ `-b, --batch` "Batch"- Modus (keine Interaktion) +++ `--tts` Gibt Text aus Dateien als Sprache wieder; wenn keine Datei angegeben ist, wird von stdin gelesen (impliziert standardmäßig, dass keine interaktive Bedienung erfolgt) +++ `-i, --interactive` Interaktiver Modus (Standardeinstellung) +++ `--pipe` "pipe"-Modus, Befehle werden von stdin gelesen, allerdings ohne "Prompt" oder Ausgabe von Werten (Standard, wenn stdin keine tty ist) +++ `--language ` Verwendet die angegebene Sprache, Standard ist `english`; `spanish`, `russian` und `welsh` sind direkt vorgesehen (jeweils in englischer Schreibweise!) +++ `--server` Server-Modus; erwartete werden Eingaben von Clients auf Port `1314` +++ `-v, --version` Ausgabe der Programm-Version }}} == Interne Optionen == ||<-2 rowclass="titel"> "interne" Festival-Optionen|| || Option||Funktion|| ||`(help)`|| Gibt eine kurze Hilfe-Liste aus|| ||`(doc [SYMBOL])`|| Hilfe zu `[SYMBOL]`|| ||`(manual nil)`|| Öffnet das Handbuch in `netscape`|| ||[[Vorlage(Tasten, Ctrl+c)]]||Rückkehr zum obersten Eingabelevel || ||[[Vorlage(Tasten, Ctrl+d)]] oder `(quit)`|| Beendet Festival || ||[[Vorlage(Tasten, esc+h)]] ||Zeigt Hilfe zum angegebenen Symbol|| ||[[Vorlage(Tasten, esc+s)]] ||Spricht Hilfe zum angegebenen Symbol || ||[[Vorlage(Tasten, esc+m)]]||Soll die relevante Seite des Handbuches in Netscape anzeigen; obsolet|| ||[[Vorlage(Tasten, TAB)]] ||Befehls- Symbol- und Dateiname-Vervollständigung|| ||[[Vorlage(Tasten, Ctrl+p)]] oder [[Vorlage(Tasten, up)]]||Letzten Befehl wieder anzeigen|| ||[[Vorlage(Tasten, Ctrl+b)]] oder [[Vorlage(Tasten, left)]]|| Eine Zeichen zurückgehen|| ||[[Vorlage(Tasten, Ctrl+f)]] oder [[Vorlage(Tasten, right)]] ||Zum nächsten Zeichen gehen|| ||<-2> Es lasse sich [:Emacs:]-Befehle auf der Kommandozeile verwenden|| ||<-2, rowclass="kopf"> direkte Ausgabe-Optionen || ||`(SayText "TEXT")`|| Gibt beliebigen "TEXT" aus, der Text sollte in Anführungszeichen stehen|| ||`(tts "DATEINAME" nil)`|| Gibt den Text einer Datei wieder, `DATEINAME` sollte in Anführungszeichen stehen; ggf. Pfad mit angeben|| ||`(voice_rab_diphone)`|| Wählt die Stimme (British Male)|| ||`(voice_ked_diphone)`|| Wählt die Stimme (American Male)|| Je nach installierten Stimmen lassen sich die entsprechenden Angaben machen (z.B. `voice_pc_diphone` (weiblich italienisch) `voice_pc_diphone` (männlich italienisch, `voice_el_diphone` (männlich spanisch/katalanisch), im Zweifelsfall lassen sich in '''/usr/share/festival/voices/[SPRACHE]/''' die verwendeten Namen in Erfahrung bringen. Festival versucht, die Handbuchseiten in [http://browser.netscape.com/ Netscape] {en} zu öffnen; allerdings ist der Browser nicht in den Paketquellen vorhanden, und wird seit 2 1/2 Jahren nicht mehr weiterentwickelt; eine [:ln#Symbolische-Verknuepfungen:symbolischer Link] mit Namen '''netscape''' in '''/usr/bin/''' auf `firefox` würde dieses Problem lösen. Tatsächlich aber existiert für die über die Paketquellen installierte Version 2.0.95 bzw. 2.1 kein Handbuch auf der Projektseite; dort ist als aktuellste Version das [http://www.cstr.ed.ac.uk/projects/festival/manual/ 1.4-Handbuch] {en} verfügbar. == Wave-Dateien erzeugen == Mit dem mitinstallierten Skript '''text2wave''' können direkt Wave-Dateien der wiedergegebenen Texte erstellt werden. Die Syntax vergleichsweise ist simpel. {{{#!vorlage Befehl text2wave EINGABE.txt" -o AUSGABE.wav }}} erzeugt aus dem Eingabetext eine Wave-Datei. Dazu werden die einzelnen Audiodateinen (festival erzeugt für jeden Satz des Textes eine einzelne Audio-Datei in '''/tmp''') zu einer gemeinsamen Datei zusammengefasst. [:Omilo:] (und bei Bedarf auch [:xsane2speech:]) setzen dieses Skript ein, um abspeicherbare Textausgaben zu erzeugen. === Probleme bei der Erstellung/Ausgabe von .wav-Dateien === Falls die Erstellung scheinbar ohne Ergebnis abbricht (oder z.B. in Omilo schlicht keine Ausgabe erfolgt), kann es sinnvoll sein, im '''/tmp'''-Ordner nach '''est_XXXXX_XXXXX'''-Dateien zu forschen. Die mit der höchsten Nummer ist die letzte, die festival erstellen konnte. Nachdem man diese in einem Audio-Player angehört hat, kann man im wiederzugebenden Text nachschauen, ob in dem direkt darauf folgenden Textabschnitt ggf. für festival problematische Zeichenfolgen auftauchen, die Erstellung haben abbrechen lassen. Die deutsche Version reagiert z.B. sehr empfindlich auf Buchstaben-Punkt-Kombinationen (z.B. "`r.l.`", Namensabkürzungen wie "`T.W. Adorno`" o.ä.), wenn diese nicht in der verwendeten Version von '''ims_german_token_to_words_lists.scm''' verzeichnet sind. Auch Zahlen-Buchstaben-Kombinationen (wie in `1970er Jahre`) können Fehler hervorrufen. Diese Fehler entfernen (z.B. Punkte löschen, nach den Zahlen Leerzeichen einfügen, oder Kombinationen im Lexikon/Abkürzungsdatei aufnehmen), dann sollte Wave-Erstellung wieder fehlerfrei durchlaufen. = Online-Demo = Für Festival gibt es von der Universität Edinburgh ein [http://www.cstr.ed.ac.uk/projects/festival/onlinedemo.html Online-Demo] {en}, leider nur in Englisch, dort aber auch für die neusten Entwicklungen. = Probleme und Lösungen= Falls Festival die Ausgabe mit der Fehlermeldung {{{ SIOD ERROR: ran out of storage }}} abbricht, liegt das nicht unbedingt an fehlender Speicherkapazität, sondern ggf. an einem zu niedrigen Lisp-Heap-Wert. Standardmäßig ist 1000000 eingestellt, Festival kann aber mit der Option `--heap WERT` mit einem höheren Wert gestartet werden; der Entwickler empfiehlt gleich eine Verzehnfachung. Der Fehler kann bei sehr vielen gleichzeitig installierten Stimmen auftreten. = Alternativen = * [:Sprachausgabe:] {Übersicht} Übersichtartikel * [:eSpeak:]/[:eSpeak_NG:] - "kleinerer" Sprach-Synthesizer, der auf künstlicher Spracherzeugung basiert. * [:Flite:] - [:Programmiersprache#C:C]-Derivat von Festival * [:xsane2speech:] - Dokumente direkt aus [:XSane:] heraus "vorlesen" und als '''.mp3''' archivieren = Links = * [http://www.cstr.ed.ac.uk/projects/festival Projektseite] {en} * [http://festvox.org festvox.org] {en} - US-amerikanische "Schwesterseite" * [launchpad:cerva:Cerva] {en} - einfache GUI zum Testen von Festival * [uf_thread:677277:Thread] {en} auf ubuntuforums.org zur Installation weiterer Festival-Sprachen #tag: Multimedia, Bildung, Büro, Kommunikation, Barrierefreiheit, Sprachausgabe, TTS