Problemas de configuración de voz del despachador de voz con el festival.

Problemas de configuración de voz del despachador de voz con el festival.

Finalmente comencé Festivala trabajar con las voces de HTS de EE. UU.: cmu_us_awb_cg, cmu_us_jmk_cg, cmu_us_slt_cg, cmu_us_bdl_cg, cmu_us_clb_cg, cmu_us_rms_cg.

Lo configuré manualmente festival.scmpara usar bdlvoz:

 (set! voice_default 'voice_cmu_us_bdl_cg)

Ahora funciona bien tanto desde el modo interactivo festivalcomo cuando el servidor se está ejecutando ( festival --server):

nc localhost 1314 <<< "(tts_text \"Hello big world, this is a test.\" nil)(quit)"

Luego configuré el despachador de voz, no pudo configurarse correctamente a través de spd-conf, pero arreglé manualmente el archivo de configuración speechd. En resumen:

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"

Ahora la prueba ALSA está funcionando bien (produciendo sonido). Sin embargo, cuando envío un mensaje de texto a speech-dispatcher:

spd-say "Hello big world, this is a test."

...el festivalservidor se vuelve loco, como si estuviera probando sin éxito todas y cada una de las voces que se le ocurren:

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

Entonces, el festival está funcionando, la conexión con ALSA está funcionando, el despachador de voz está enviando algo al festival, pero de alguna manera está roto, posiblemente la configuración de voz sea incorrecta.

También hay un archivo de configuración para el módulo festival dentro de /etc/speech-dispatcher/modules/la carpeta, festival.confpero está prácticamente vacío (con mucho texto comentado) y no menciona nada sobre las voces configuradas al speech-dispatcherllamar al archivo Festival. Es un lugar en el que supongo que se puede configurar, especialmente porque hay un comentario en speechd.conf:

DefaultVoiceType controla qué tipo de voz se debe utilizar de forma predeterminada. Los tipos de voz son nombres simbólicos que se asignan a voces particulares proporcionadas por el sintetizador según la configuración del módulo de salida. Consulte la configuración específica del sintetizador en etc/speech-dispatcher/modules/ para ver qué voces están asignadas a diferentes nombres simbólicos. Actualmente se admiten los siguientes nombres simbólicos: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3, CHILD_MALE, CHILD_FEMALE

# Tipo de voz predeterminado "MALE1"

También intenté aumentar el tamaño del montón hasta 50 M (según algunas publicaciones en otras discusiones), pero no ayuda:

festival --server --heap 50000000

Recibo los mismos errores extraños. Se agradece cualquier sugerencia.

Respuesta1

Para resolver este problema es necesario definirlo (proclaim_voiceen scmel archivo. consulte los pasos a continuación:

  1. ir a la carpeta festival/voces
  2. editar archivo scm
    • abierto:
      vim us/cmu_us_clb_arctic_clunits/festvox/cmu_us_clb_arctic_clunits.scm   #<--voice clunits.scm
      
    • Ir al final del archivo agregar línea antes(provide 'cmu_us_clb_arctic_clunits)
    • Agregue el contenido a continuación (actualice el idioma, el género y el dialecto según sea necesario). Actualizar, guardar y salir.
      (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. Después de que /usr/bin/festival --serverel error debería desaparecer

También puedes correr spd-say -Lpara mostrar los detalles.

Si necesita actualizar la voz predeterminada del festival:

  • Editar /etc/festival.scmpara agregar
    (set! voice_default 'voice_<You prefered Voice name>)
    
  • reinicie el servidor del festival o reinicie ubuntu. La voz predeterminada se cambiará a una nueva mediante spd-sayun comando o desde Firefox.

Respuesta2

El problema podría deberse a que speech-dispatcherno acepta la voz predeterminada del festival, sino que intenta utilizar su propia configuración.

Intente descomentar y cambiar DefaultVoiceTypea algo como:

DefaultVoiceType "FEMALE1"

También haría algunas pruebas usando diferentes programas, como el modo lector de Firefox (ALT+CTRL+R) y vería si alguna de las voces enumeradas funciona.

información relacionada