De/TTS = Text zu Sprache: Difference between revisions
m (First saving - not yet complete) |
m (First Release) |
||
Line 10: | Line 10: | ||
Im Folgenden gehen wir nur auf die etwas komplexere Installation des "Festival" unter Linux ein: | Im Folgenden gehen wir nur auf die etwas komplexere Installation des "Festival" unter Linux ein: | ||
<br><br> | <br><br> | ||
==Festival unter Linux installieren== | =='''Festival unter Linux installieren'''== | ||
<ol> | <ol> | ||
<li>Installiere '''Festival''', und dazu '''festlex-cmu''', '''festlex-oald''', '''festvox-don'''</li> | <li> | ||
Installiere '''Festival''', und dazu '''festlex-cmu''', '''festlex-oald''', '''festvox-don'''</li> | |||
*über das Installationsprogramm Deiner Distribution (z.B. via „Synaptic“) falls verfügbar. | *über das Installationsprogramm Deiner Distribution (z.B. via „Synaptic“) falls verfügbar. | ||
*oder direkt von http://festvox.org/packed/festival/2.0.95/ (oder ältere Versionen) | *oder direkt von http://festvox.org/packed/festival/2.0.95/ (oder ältere Versionen) | ||
Line 21: | Line 22: | ||
**installiere diese entsprechend der Datei „INSTALL“ innerhalb des Packages | **installiere diese entsprechend der Datei „INSTALL“ innerhalb des Packages | ||
**wenn Du auch das „festlex_OALD.tar.gz“ manuell heruntergeladen hast, gehe in das Verzeichnis (siehe nachfolgend die Tabelle „Festival-Datenstruktur“) und führe darin das „make“ aus. Evtl. musst Du dazu dem „festival“-Befehl innerhalb der OALD-„makefile die Option „-heap 10000000“ hinzufügen). | **wenn Du auch das „festlex_OALD.tar.gz“ manuell heruntergeladen hast, gehe in das Verzeichnis (siehe nachfolgend die Tabelle „Festival-Datenstruktur“) und führe darin das „make“ aus. Evtl. musst Du dazu dem „festival“-Befehl innerhalb der OALD-„makefile die Option „-heap 10000000“ hinzufügen). | ||
</li><li> | |||
<li>Teste ob Festival (ohne FlightGear!) funktioniert. Hierzu öffne ein Befehlsfenster und gib | Teste ob Festival (ohne FlightGear!) funktioniert. Hierzu öffne ein Befehlsfenster und gib | ||
ein: (In den folgenden Tests erscheinen Deine Eingaben in fett)</li> | ein: (In den folgenden Tests erscheinen Deine Eingaben in fett)</li> | ||
:::$ '''festival''' | :::$ '''festival''' | ||
Line 29: | Line 30: | ||
''Beachte: Die "()"-Klammern müssen sein und nach der ersten Eingabe „festival“ ändert | ''Beachte: Die "()"-Klammern müssen sein und nach der ersten Eingabe „festival“ ändert | ||
sich die Eingabe-Aufforderung von „~$“ nach „festival>“'' | sich die Eingabe-Aufforderung von „~$“ nach „festival>“'' | ||
</li><li> | |||
<li> Wenn dies funktioniert teste welche Sprachen verfügbar sind: | Wenn dies funktioniert teste welche Sprachen verfügbar sind: | ||
:::$ '''festival''' | :::$ '''festival''' | ||
:::festival> '''(print (mapcar (lambda (pair) (car pair)) voicelocations))''' | :::festival> '''(print (mapcar (lambda (pair) (car pair)) voicelocations))''' | ||
Line 41: | Line 42: | ||
::<sound> | ::<sound> | ||
:::<preamble type="string"></preamble> | :::<preamble type="string"></preamble> | ||
:::<preamble type="string">(voice_us2_mbrola)</preamble> | :::<preamble type="string">('''voice_us2_mbrola''')</preamble> | ||
:::<preamble type="string">(voice_en1_mbrola)</preamble> | :::<preamble type="string">('''voice_en1_mbrola''')</preamble> | ||
:::<preamble type="string">(voice_don_diphone)</preamble> | :::<preamble type="string">('''voice_don_diphone''')</preamble> | ||
::</sound> | ::</sound> | ||
Diese „höherwertigen/realistischeren“ Sprachen werden mit der nachfolgenden MBROLA-Installation hinzugefügt. Wenn Du darauf verzichten willst, musst Du die „preference.xml“ entsprechend abändern, so dass nur verfügbare Sprachen (in <preamble>) gefordert werden. | '''Diese „höherwertigen/realistischeren“ Sprachen werden mit der nachfolgenden MBROLA-Installation hinzugefügt. Wenn Du darauf verzichten willst, musst Du die „preference.xml“ entsprechend abändern, so dass nur verfügbare Sprachen (in <preamble>) gefordert werden.''' | ||
</ol><br> | </li></ol><br> | ||
==Festival mit FlightGear testen== | =='''Festival mit FlightGear testen'''== | ||
*Starte den Festival-Server (dieser muss aktiv sein bevor Du FlightGear startest!) | *Starte den Festival-Server (dieser muss aktiv sein bevor Du FlightGear startest!) | ||
**Hierzu öffne ein Befehlsfenster und gib „festival --server“ ein: | **Hierzu öffne ein Befehlsfenster und gib „festival --server“ ein: | ||
Line 58: | Line 59: | ||
::: --prop:/sim/sound/voices/enabled=true | ::: --prop:/sim/sound/voices/enabled=true | ||
:*Nachdem FlightGear gestartet ist | :*Nachdem FlightGear gestartet ist | ||
:**benutze | :**benutze | ||
:***auf deutschen Tastaturen''' die „-“'''-Taste | |||
:***auf englischen Tastaturen die '''„/“'''-Taste | |||
:**dann tippe „'''3'''“ → „'''6'''“ → „'''5'''“ um eine Taxi-Freigabe anzufordern | :**dann tippe „'''3'''“ → „'''6'''“ → „'''5'''“ um eine Taxi-Freigabe anzufordern | ||
:***auf dem Bildschirm sollte in gelb Deine Anforderung erscheinen und etwas verzögert über Lautsprecher ausgesprochen werden | :***auf dem Bildschirm sollte in gelb Deine Anforderung erscheinen und etwas verzögert über Lautsprecher ausgesprochen werden | ||
Line 66: | Line 69: | ||
*Deiner üblichen „Start-Befehlsdatei“ hinzufügen ''(denke an das „\“ wenn es als Fortsetzung einer Zeile benötigt wird!)'' | *Deiner üblichen „Start-Befehlsdatei“ hinzufügen ''(denke an das „\“ wenn es als Fortsetzung einer Zeile benötigt wird!)'' | ||
*oder im FGrun als Property „/sim/sound/voices/enabled=true“ in den erweiterten Optionen einfügen. | *oder im FGrun als Property „/sim/sound/voices/enabled=true“ in den erweiterten Optionen einfügen. | ||
Du kannst diese Option aktive belassen - auch wenn Du Festival nicht benutzt. | Du kannst diese Option aktive belassen - auch wenn Du Festival nicht benutzt. Allerdings erscheinen dann beim Start im FlightGear-Log einige Meldungen die besagen dass Festival nicht gestartet werden konnte. | ||
<br><br> | |||
=='''Mögliche Probleme'''== | |||
Auf einigen Linux-Distributionen ist der Zugang zu Festival eingeschränkt. Du erkennst dies an der | |||
folgenden Fehlermeldung: | |||
:::client(1) Tue Feb 21 13:29:46 2006 : \ | |||
:::::rejected from localhost.localdomain | |||
:::not in access list | |||
<br> | |||
Siehe hierzu: http://www.cstr.ed.ac.uk/projects/festival/manual/festival_28.html#SEC130. | |||
<br> | |||
Du kannst diese Einschränkungen aufheben, indem Du die folgenden Statements einer '''„.festivalrc“'''-Datei hinzufügst ('''Vorsicht:''' vergiss nicht den Punkt am Anfang des Namens!): | |||
:::(set! server_access_list ’("localhost")) | |||
:::(set! server_access_list ’("localhost.localdomain")) | |||
Du kannst aber auch jegliche Einschränkung aufheben, indem Du Folgendes eingibst: | |||
:::(set! server_access_list nil) | |||
'''Vorsicht:''' Letzteres erlaubt den Zugriff von überall her – Du solltest dies nur erlauben wenn Du eine | |||
Firewall für Deinen PC verwendest! | |||
<br><br> | |||
=='''Schönere Sprachen mit MBROLA'''== | |||
Wie bereits am Ende der Festival-Installation erwähnt, kannst Du Dir sehr viel „schönere“ künstliche Stimmen installieren. Das ist leider etwas kompliziert – lohnt sich unseres Erachtens | |||
aber auch! | |||
<br> | |||
Dazu musst Du das einfache Programm „mbrola“, dazu die „mbrola Sprach-Codes und die dazu passenden „Festival-Einbindungen“ installieren. Gehe folgendermaßen vor: | |||
*Teste ob MBROLA bereits installiert ist | |||
:::$ '''mbrola h''' | |||
*Falls MBROLA schon installiert ist, sollte eine Liste der Befehlsoptionen für MBROLA erscheinen. | |||
'''Falls eine Fehlermeldung erscheint''' installiere MBROLA mit den zusätzlich benötigten Modulen: | |||
*entweder über Deine Installations-Werkzeuge (z.B.. „Synaptic“) | |||
*oder direkt von http://tcts.fpms.ac.be/synthesis/mbrola/: | |||
**klicke in der linken Spalte auf „Download“ | |||
**klicke unterhalb des Titles „What you will have to copy“ auf „MBROLA binary and voices“ (schwierig zu finden, aber ...) | |||
*download zuerst aus dem oberen Teil eine Binary entsprechend Deinem System | |||
*danach etwas weiter unten die gewünschten „Voices“ (Stimmen) Deiner Wahl, | |||
**zumindest: '''us2''' und '''en1''' ''(siehe obige Vorgabe in der preferences.xml!)'' | |||
::''(Du kannst auch zusätzliche/andere „Voices“ herunterladen und verwenden, diese musst Du dann in Deiner $FG_ROOT/preferences.xml aktivieren, indem Du die Zeilen mit <preamble type..> unter <voice> unter <sound> entsprechend abänderst! s.o.)'' | |||
<br> | |||
*'''Zusätzlich dazu musst Du auch noch die entsprechenden Festvox-Hüllen hinzufügen:''' | |||
**Also z.B. die '''festvox_en1.tar.gz''' und '''festvox_us2.tar.gz''' (ref. die folgende Tabelle Festival-Datenstruktur). | |||
**Entpacke die Teilstücke und kopiere sie in Dein Festival-Datenverzeichnis (wahrscheinlich "/usr/share/festival" oder "/usr/local/Festival"). Du solltest dann etwa die folgende Struktur für Deine Festival-Daten haben: | |||
<br> | |||
=='''Die Festival Daten-Strukturen'''== | |||
Die Festival-downloads können aus verschiedenen Versionen sein, denn mit einer neueren Versionen werden nicht immer alle Sprachen etc. geändert: (ref.: http://festvox.org/packed/festival/ ) | |||
*ver. 1.95: Original-Einführung in FlightGear, kaum noch zu finden, hat aber als einziges alle Sprach-Codes (empfohlen) | |||
*ver. 1.96: neueste Version für die Sprachmodule (in vielen Linux-Distributionen, enthält nicht alle Sprach-Codes) | |||
*ver. 2.0.95: Neuste Programm-Version, enthält keine Sprach-Codes (empfohlen) | |||
<br> | |||
Die folgende Struktur zeigt Dir beispielhaft wie die verschiedenen Festival und MBROLA Teilstücke strukturiert werden und von wo sie heruntergeladen werden können. | |||
<br> | |||
Die hierzu benötigte Basis-Struktur wird bereits bei der Installation des FlightGear erstellt : | |||
*das Programm selbst wird zumeist in das Verzeichnis „/user/lib/“ installiert (in der Tabelle nicht gezeigt) | |||
*die Daten-Struktur wird zumeist in | |||
**/usr/share/festival oder | |||
**/usr/local/festival | |||
:angelegt, in die Du dann mehr und mehr Sprachen etc. einfügen kannst, siehe das nachfolgende Schema: | |||
<br> | |||
{| class="wikitable" border="1" | |||
|- | |||
!Explorer-Struktur: | |||
!Download von: | |||
|- | |||
|festival | |||
|http://festvox.org/packed/festival/2.0.95/ | |||
|- | |||
| | |||
:dicts | |||
|- | |||
| | |||
::'''cmu''' | |||
|http://festvox.org/packed/festival/2.0.95/ | |||
|- | |||
| | |||
::'''oald''' | |||
|http://festvox.org/packed/festival/2.0.95/ | |||
|- | |||
| | |||
::wsj.... | |||
|- | |||
| | |||
:voices | |||
|- | |||
| | |||
::english | |||
|- | |||
| | |||
::'''don_diphone''' | |||
|http://festvox.org/packed/festival/1.95/ | |||
|- | |||
| | |||
:::festvox | |||
|- | |||
| | |||
:::diphlocs.txt | |||
|- | |||
| | |||
:::lpcdiphs.bin | |||
|- | |||
| | |||
::'''en1_mbrola''' | |||
|http://festvox.org/packed/festival/1.95/ | |||
|- | |||
| | |||
:::'''en1''' | |||
|http://tcts.fpms.ac.be/synthesis/mbrola/ | |||
|- | |||
| | |||
:::festfox | |||
|- | |||
| | |||
:::en1mrpa | |||
|- | |||
|...etc. | |||
|} | |||
Beachte den Unterschied zwischen dem „diphone“-Typ (= original festival) und den verfeinerten „mbrola“-Typen! In letzterem kommt z.B. „en1_mbrola“ von „festival“ während das dann dahinein eingebettet „en1“ von „mbrola“ kommt! (entsprechendes gilt dann natürlich für weitere Sprachen!). | |||
<br><br> | |||
Richtig: sehr verwirrend – aber ich hoffe die vorstehende Tabelle hilft! | |||
[[Category:Software]] |
Revision as of 17:25, 22 February 2011
FlightGear unterstützt TTS (= „Text To Speech“ = Text zu Sprache) für alle „textlichen/getippten“ Mitteilungen, die auf dem Bildschirm dargestellt werden. Mit aktivem TTS werden diese Text-Meldungen zusätzlich über den Lautsprecher ausgegeben.
Eine Bemerkung vorweg: Wenn Du FGCOM verwendest, solltest Du evtl. auf die „Textübersetzung“ des Festival verzichten, denn wenn auf MPchat (FlightGear --> Menü --> Multiplayer) viel kommuniziert wird, werden die FGCOM-Nachrichten evtl. übertönt – und wenn Du FGCOM-Mitteilungen nicht verstehst wird Dein ansonsten netter ATC und sonstige Mitspieler nicht begeistert sein! Das Nicht-Hören von MPchat Nachrichten ist demgegenüber nicht so schlimm, denn diese kann man immer noch lesen (und sogar im MPchat nachschlagen!).
- In Windows ist eine solches TTS-Programm bereits ab XP in der Basis-Version enthalten.
- Für MAC OS X ist der Status derzeit unbekannt.
- Für Linux benutzt FlightGear die TTS-Maschine FESTIVAL, siehe http://www.cstr.ed.ac.uk/projects/festival.
Im Folgenden gehen wir nur auf die etwas komplexere Installation des "Festival" unter Linux ein:
Festival unter Linux installieren
- Installiere Festival, und dazu festlex-cmu, festlex-oald, festvox-don
- über das Installationsprogramm Deiner Distribution (z.B. via „Synaptic“) falls verfügbar.
- oder direkt von http://festvox.org/packed/festival/2.0.95/ (oder ältere Versionen)
- von dort lade, z.B.:
- festival-2.0.95-beta.tar.gz
- festlex_CMU.tar.gz
- festlex_OALD.tar.gz
- installiere diese entsprechend der Datei „INSTALL“ innerhalb des Packages
- wenn Du auch das „festlex_OALD.tar.gz“ manuell heruntergeladen hast, gehe in das Verzeichnis (siehe nachfolgend die Tabelle „Festival-Datenstruktur“) und führe darin das „make“ aus. Evtl. musst Du dazu dem „festival“-Befehl innerhalb der OALD-„makefile die Option „-heap 10000000“ hinzufügen).
- von dort lade, z.B.:
- Teste ob Festival (ohne FlightGear!) funktioniert. Hierzu öffne ein Befehlsfenster und gib ein: (In den folgenden Tests erscheinen Deine Eingaben in fett)
- $ festival
- festival> (SayText "FlightGear")
- festival> (quit)
-
Wenn dies funktioniert teste welche Sprachen verfügbar sind:
- $ festival
- festival> (print (mapcar (lambda (pair) (car pair)) voicelocations))
- (kal_diphone don_diphone)
- nil
- festival> (quit)
In der Steuerungsdatei "$FG_ROOT/preferences.xml" werden aber zusätzliche Sprachen verwendet! Siehe die 4 "preamble>"-Definitionen zwischen den XML-codes <sound>- <sound>
- <preamble type="string"></preamble>
- <preamble type="string">(voice_us2_mbrola)</preamble>
- <preamble type="string">(voice_en1_mbrola)</preamble>
- <preamble type="string">(voice_don_diphone)</preamble>
- </sound>
- <sound>
Festival mit FlightGear testen
- Starte den Festival-Server (dieser muss aktiv sein bevor Du FlightGear startest!)
- Hierzu öffne ein Befehlsfenster und gib „festival --server“ ein:
- $ festival --server
- server Thu Jun 3 09:48:42 2010 : Festival server started on port 1314
- Lass das Fenster so lange offen bis Du FlightGear beendet hast. Dieser Server muss immer aktive sein, wenn Du Festival benutzen willst!!
- Dann startest Du in einem 2ten Fenster einen ganz primitiven FlightGear:
- fgfs --aircraft=j3cub \
- --airport=KSQL \
- --prop:/sim/sound/voices/enabled=true
- Nachdem FlightGear gestartet ist
- benutze
- auf deutschen Tastaturen die „-“-Taste
- auf englischen Tastaturen die „/“-Taste
- dann tippe „3“ → „6“ → „5“ um eine Taxi-Freigabe anzufordern
- auf dem Bildschirm sollte in gelb Deine Anforderung erscheinen und etwas verzögert über Lautsprecher ausgesprochen werden
- und etwas später erfolgt die ATC-Freigabe in grün – und in Sprache! (Hoffentlich!)
- benutze
Obige Option „--prop:/sim/sound/voices/enabled=true“ benötigt FlightGear für das Festival. Du kannst diese natürlich
- Deiner üblichen „Start-Befehlsdatei“ hinzufügen (denke an das „\“ wenn es als Fortsetzung einer Zeile benötigt wird!)
- oder im FGrun als Property „/sim/sound/voices/enabled=true“ in den erweiterten Optionen einfügen.
Du kannst diese Option aktive belassen - auch wenn Du Festival nicht benutzt. Allerdings erscheinen dann beim Start im FlightGear-Log einige Meldungen die besagen dass Festival nicht gestartet werden konnte.
Mögliche Probleme
Auf einigen Linux-Distributionen ist der Zugang zu Festival eingeschränkt. Du erkennst dies an der folgenden Fehlermeldung:
- client(1) Tue Feb 21 13:29:46 2006 : \
- rejected from localhost.localdomain
- not in access list
- client(1) Tue Feb 21 13:29:46 2006 : \
Siehe hierzu: http://www.cstr.ed.ac.uk/projects/festival/manual/festival_28.html#SEC130.
Du kannst diese Einschränkungen aufheben, indem Du die folgenden Statements einer „.festivalrc“-Datei hinzufügst (Vorsicht: vergiss nicht den Punkt am Anfang des Namens!):
- (set! server_access_list ’("localhost"))
- (set! server_access_list ’("localhost.localdomain"))
Du kannst aber auch jegliche Einschränkung aufheben, indem Du Folgendes eingibst:
- (set! server_access_list nil)
Vorsicht: Letzteres erlaubt den Zugriff von überall her – Du solltest dies nur erlauben wenn Du eine
Firewall für Deinen PC verwendest!
Schönere Sprachen mit MBROLA
Wie bereits am Ende der Festival-Installation erwähnt, kannst Du Dir sehr viel „schönere“ künstliche Stimmen installieren. Das ist leider etwas kompliziert – lohnt sich unseres Erachtens
aber auch!
Dazu musst Du das einfache Programm „mbrola“, dazu die „mbrola Sprach-Codes und die dazu passenden „Festival-Einbindungen“ installieren. Gehe folgendermaßen vor:
- Teste ob MBROLA bereits installiert ist
- $ mbrola h
- Falls MBROLA schon installiert ist, sollte eine Liste der Befehlsoptionen für MBROLA erscheinen.
Falls eine Fehlermeldung erscheint installiere MBROLA mit den zusätzlich benötigten Modulen:
- entweder über Deine Installations-Werkzeuge (z.B.. „Synaptic“)
- oder direkt von http://tcts.fpms.ac.be/synthesis/mbrola/:
- klicke in der linken Spalte auf „Download“
- klicke unterhalb des Titles „What you will have to copy“ auf „MBROLA binary and voices“ (schwierig zu finden, aber ...)
- download zuerst aus dem oberen Teil eine Binary entsprechend Deinem System
- danach etwas weiter unten die gewünschten „Voices“ (Stimmen) Deiner Wahl,
- zumindest: us2 und en1 (siehe obige Vorgabe in der preferences.xml!)
- (Du kannst auch zusätzliche/andere „Voices“ herunterladen und verwenden, diese musst Du dann in Deiner $FG_ROOT/preferences.xml aktivieren, indem Du die Zeilen mit <preamble type..> unter <voice> unter <sound> entsprechend abänderst! s.o.)
- Zusätzlich dazu musst Du auch noch die entsprechenden Festvox-Hüllen hinzufügen:
- Also z.B. die festvox_en1.tar.gz und festvox_us2.tar.gz (ref. die folgende Tabelle Festival-Datenstruktur).
- Entpacke die Teilstücke und kopiere sie in Dein Festival-Datenverzeichnis (wahrscheinlich "/usr/share/festival" oder "/usr/local/Festival"). Du solltest dann etwa die folgende Struktur für Deine Festival-Daten haben:
Die Festival Daten-Strukturen
Die Festival-downloads können aus verschiedenen Versionen sein, denn mit einer neueren Versionen werden nicht immer alle Sprachen etc. geändert: (ref.: http://festvox.org/packed/festival/ )
- ver. 1.95: Original-Einführung in FlightGear, kaum noch zu finden, hat aber als einziges alle Sprach-Codes (empfohlen)
- ver. 1.96: neueste Version für die Sprachmodule (in vielen Linux-Distributionen, enthält nicht alle Sprach-Codes)
- ver. 2.0.95: Neuste Programm-Version, enthält keine Sprach-Codes (empfohlen)
Die folgende Struktur zeigt Dir beispielhaft wie die verschiedenen Festival und MBROLA Teilstücke strukturiert werden und von wo sie heruntergeladen werden können.
Die hierzu benötigte Basis-Struktur wird bereits bei der Installation des FlightGear erstellt :
- das Programm selbst wird zumeist in das Verzeichnis „/user/lib/“ installiert (in der Tabelle nicht gezeigt)
- die Daten-Struktur wird zumeist in
- /usr/share/festival oder
- /usr/local/festival
- angelegt, in die Du dann mehr und mehr Sprachen etc. einfügen kannst, siehe das nachfolgende Schema:
Explorer-Struktur: | Download von: |
---|---|
festival | http://festvox.org/packed/festival/2.0.95/ |
| |
|
http://festvox.org/packed/festival/2.0.95/ |
|
http://festvox.org/packed/festival/2.0.95/ |
| |
| |
| |
|
http://festvox.org/packed/festival/1.95/ |
| |
| |
| |
|
http://festvox.org/packed/festival/1.95/ |
|
http://tcts.fpms.ac.be/synthesis/mbrola/ |
| |
| |
...etc. |
Beachte den Unterschied zwischen dem „diphone“-Typ (= original festival) und den verfeinerten „mbrola“-Typen! In letzterem kommt z.B. „en1_mbrola“ von „festival“ während das dann dahinein eingebettet „en1“ von „mbrola“ kommt! (entsprechendes gilt dann natürlich für weitere Sprachen!).
Richtig: sehr verwirrend – aber ich hoffe die vorstehende Tabelle hilft!