Probleme mit der Sprachkonfiguration des Sprachdispatchers beim Festival

Probleme mit der Sprachkonfiguration des Sprachdispatchers beim Festival

Ich habe es endlich geschafft, Festivalmit 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.scmdie Verwendung bdlder Sprache manuell konfiguriert:

 (set! voice_default 'voice_cmu_us_bdl_cg)

Es funktioniert nun sowohl im interaktiven Modus festivalals 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 festivalServer 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.confaber sie ist praktisch leer (mit viel kommentiertem Text) und erwähnt nichts über Stimmen, die speech-dispatcherbeim 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_voicein scmder Datei definiert werden. Bitte befolgen Sie die folgenden Schritte:

  1. gehe zum Ordner „Festival/Voices“
  2. 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.")))
      
  3. Danach /usr/bin/festival --serversollte der Fehler behoben sein

Sie können auch rennen, spd-say -Lum die Details anzuzeigen.

Wenn die Standard-Festivalstimme aktualisiert werden muss:

  • /etc/festival.scmZum 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-sayBefehl oder von Firefox aus in eine neue geändert.

Antwort2

Das Problem könnte darin liegen, dass die speech-dispatcherStandardstimme des Festivals nicht akzeptiert wird, sondern stattdessen versucht, seine eigenen Einstellungen zu verwenden.

Entfernen Sie die Kommentierung und ändern Sie es DefaultVoiceTypein 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.

verwandte Informationen