Ich habe es endlich geschafft, Festival
mit den US-HTS-Stimmen zu arbeiten: cmu_us_awb_cg
, cmu_us_jmk_cg
, cmu_us_slt_cg
, cmu_us_bdl_cg
, cmu_us_clb_cg
, cmu_us_rms_cg
.
Ich habe festival.scm
die Verwendung bdl
der Sprache manuell konfiguriert:
(set! voice_default 'voice_cmu_us_bdl_cg)
Es funktioniert nun sowohl im interaktiven Modus festival
als auch bei laufendem Server ( festival --server
) einwandfrei:
nc localhost 1314 <<< "(tts_text \"Hello big world, this is a test.\" nil)(quit)"
Ich habe dann den Sprachdispatcher konfiguriert. Die Selbstkonfiguration über hat nicht funktioniert spd-conf
, aber ich habe die Konfigurationsdatei manuell repariert speechd
. Um es zusammenzufassen:
LogLevel 3
LogDir "default"
DefaultRate 5
DefaultVolume 100
DefaultLanguage "en"
DefaultPunctuationMode "all"
AudioOutputMethod "alsa"
AudioALSADevice "default"
AddModule "festival" "sd_festival" "festival.conf"
AddModule "dummy" "sd_dummy" ""
DefaultModule festival
LanguageDefaultModule "en" "festival"
Include "clients/*.conf"
Jetzt funktioniert der ALSA-Test einwandfrei (es wird Ton ausgegeben). Wenn ich jedoch einen Text an folgende Adresse sende speech-dispatcher
:
spd-say "Hello big world, this is a test."
...der festival
Server spielt verrückt, als würde er erfolglos jede einzelne Stimme ausprobieren, die ihm einfällt:
SIOD: unknown voice cmu_us_ahw_cg
SIOD: unknown voice cmu_us_ahw_cg
SIOD: unknown voice cmu_us_aup_cg
SIOD: unknown voice cmu_us_aup_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_axb_cg
SIOD: unknown voice cmu_us_axb_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD ERROR: could not open file /usr/share/festival/dicts/oald/oaldlex.scm
closing a file left open: /usr/share/festival/voices/english/rab_diphone/festvox/rab_diphone.scm
SIOD: unknown voice rab_diphone
SIOD ERROR: could not open file /usr/share/festival/dicts/oald/oaldlex.scm
closing a file left open: /usr/share/festival/voices/english/rab_diphone/festvox/rab_diphone.scm
SIOD: unknown voice rab_diphone
SIOD: unknown voice cmu_us_kal_com_hts
SIOD: unknown voice cmu_us_kal_com_hts
SIOD: unknown voice cstr_us_ked_timit_hts
SIOD: unknown voice cstr_us_ked_timit_hts
SIOD: unknown voice cmu_us_slt_cg
SIOD: unknown voice cmu_us_slt_cg
SIOD: unknown voice cmu_us_rms_cg
SIOD: unknown voice cmu_us_rms_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD ERROR: ran out of storage
closing a file left open: /usr/share/festival/voices/us/cmu_us_clb_cg//rf_models/trees_08/cmu_us_clb_mcep.tree
SIOD: unknown voice cmu_us_clb_cg
SIOD ERROR: ran out of storage
closing a file left open: /usr/share/festival/voices/us/cmu_us_clb_cg//festival/trees/cmu_us_clb_mcep.tree
SIOD: unknown voice cmu_us_clb_cg
client(10) Mon Mar 16 22:10:26 2020 : accepted from localhost
SIOD: unknown voice cmu_us_ahw_cg
SIOD: unknown voice cmu_us_aup_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_axb_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD ERROR: could not open file /usr/share/festival/dicts/oald/oaldlex.scm
closing a file left open: /usr/share/festival/voices/english/rab_diphone/festvox/rab_diphone.scm
SIOD: unknown voice rab_diphone
SIOD: unknown voice cmu_us_kal_com_hts
SIOD: unknown voice cstr_us_ked_timit_hts
SIOD: unknown voice cmu_us_slt_cg
SIOD: unknown voice cmu_us_rms_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_bdl_cg
SIOD ERROR: ran out of storage
closing a file left open: /usr/share/festival/voices/us/cmu_us_clb_cg//rf_models/trees_08/cmu_us_clb_mcep.tree
SIOD: unknown voice cmu_us_clb_cg
SIOD ERROR: ran out of storage
closing a file left open: /usr/share/festival/voices/us/cmu_us_jmk_cg//festival/trees/cmu_us_jmk_mcep.tree
SIOD: unknown voice cmu_us_jmk_cg
SIOD: unknown voice cmu_us_ahw_cg
SIOD: unknown voice cmu_us_ahw_cg
SIOD: unknown voice cmu_us_aup_cg
SIOD: unknown voice cmu_us_aup_cg
SIOD: unknown voice cmu_us_awb_cg
SIOD: unknown voice cmu_us_awb_cg
Also, das Festival funktioniert, die Verbindung zu ALSA funktioniert, der Sprachdispatcher sendet etwas an das Festival, aber es ist irgendwie kaputt, möglicherweise falsche Spracheinstellungen.
Es gibt auch eine Konfigurationsdatei für das Festival-Modul im /etc/speech-dispatcher/modules/
Ordner , festival.conf
aber sie ist praktisch leer (mit viel kommentiertem Text) und erwähnt nichts über Stimmen, die speech-dispatcher
beim Aufruf von eingestellt werden Festival
. Ich würde annehmen, dass man das an dieser Stelle einstellen kann, insbesondere weil ein Kommentar in speechd.conf
:
Der DefaultVoiceType steuert, welcher Stimmtyp standardmäßig verwendet werden soll. Stimmtypen sind symbolische Namen, die bestimmten Stimmen zugeordnet werden, die der Synthesizer gemäß der Konfiguration des Ausgabemoduls bereitstellt. Bitte sehen Sie sich die synthesizerspezifische Konfiguration in etc/speech-dispatcher/modules/ an, um zu sehen, welche Stimmen verschiedenen symbolischen Namen zugewiesen sind. Derzeit werden die folgenden symbolischen Namen unterstützt: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3, CHILD_MALE, CHILD_FEMALE
# Standard-Sprachtyp "MALE1"
Ich habe auch versucht, die Heap-Größe auf 50 MB zu erhöhen (wie in einigen Beiträgen in anderen Diskussionen beschrieben), aber das hilft nicht:
festival --server --heap 50000000
Ich bekomme die gleichen seltsamen Fehler. Alle Vorschläge sind willkommen.
Antwort1
Um dieses Problem zu lösen, muss es (proclaim_voice
in scm
der Datei definiert werden. Bitte befolgen Sie die folgenden Schritte:
- gehe zum Ordner „Festival/Voices“
- SCM-Datei bearbeiten
- offen:
vim us/cmu_us_clb_arctic_clunits/festvox/cmu_us_clb_arctic_clunits.scm #<--voice clunits.scm
- Zum Ende der Datei gehen und Zeile davor hinzufügen
(provide 'cmu_us_clb_arctic_clunits)
- Fügen Sie unten Inhalt hinzu (aktualisieren Sie Sprache, Geschlecht und Dialekt nach Bedarf). Aktualisieren, speichern und beenden.
(proclaim_voice 'cmu_us_clb_arctic_clunits '((language english) (gender female) (dialect american) (description "This voice provides an American English male voice using a residual excited LPC diphone synthesis method. It uses the CMU Lexicon pronunciations. Prosodic phrasing is provided by a statistically trained model using part of speech and local distribution of breaks. Intonation is provided by a CART tree predicting ToBI accents and an F0 contour generated from a model trained from natural speech. The duration model is also trained from data using a CART tree.")))
- offen:
- Danach
/usr/bin/festival --server
sollte der Fehler behoben sein
Sie können auch rennen, spd-say -L
um die Details anzuzeigen.
Wenn die Standard-Festivalstimme aktualisiert werden muss:
/etc/festival.scm
Zum Hinzufügen bearbeiten(set! voice_default 'voice_<You prefered Voice name>)
- Starten Sie den Festival-Server neu oder starten Sie Ubuntu neu. Die Standardstimme wird per
spd-say
Befehl oder von Firefox aus in eine neue geändert.
Antwort2
Das Problem könnte darin liegen, dass die speech-dispatcher
Standardstimme des Festivals nicht akzeptiert wird, sondern stattdessen versucht, seine eigenen Einstellungen zu verwenden.
Entfernen Sie die Kommentierung und ändern Sie es DefaultVoiceType
in etwas wie:
DefaultVoiceType "FEMALE1"
Ich würde auch einige Tests mit verschiedenen Programmen durchführen, beispielsweise im Lesemodus von Firefox (ALT+STRG+R), und sehen, ob eine der aufgelisteten Stimmen funktioniert.