problemas de configuração de voz do despachante de voz com festival

problemas de configuração de voz do despachante de voz com festival

Finalmente comecei Festivala trabalhar com as vozes HTS dos EUA: cmu_us_awb_cg, cmu_us_jmk_cg, cmu_us_slt_cg, cmu_us_bdl_cg, cmu_us_clb_cg, cmu_us_rms_cg.

Eu configurei manualmente festival.scmpara usar bdlvoz:

 (set! voice_default 'voice_cmu_us_bdl_cg)

Agora está funcionando bem tanto no interativo festivalquanto quando o servidor está em execução ( festival --server):

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

Em seguida, configurei o Speech-Dispatcher, ele não conseguiu se configurar corretamente via spd-conf, mas corrigi manualmente o arquivo de configuração speechd. Resumindo:

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"

Agora o teste ALSA está funcionando bem (produzindo som). No entanto, quando envio uma mensagem para speech-dispatcher:

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

...o festivalservidor enlouquece, como se estivesse tentando, sem sucesso, todas as vozes que consegue imaginar:

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

Então, o festival está funcionando, a conexão com a ALSA está funcionando, o despachante de fala está enviando algo para o festival, mas está de alguma forma quebrado, possivelmente com configurações de voz erradas.

Também existe um arquivo de configuração para o módulo festival dentro /etc/speech-dispatcher/modules/da pasta , festival.confmas está praticamente vazio (com muito texto comentado) e não menciona nada sobre as vozes definidas por speech-dispatcherao chamar o Festival. É um lugar que eu presumo que se pode definir isso, especialmente porque um comentário em speechd.conf:

O DefaultVoiceType controla qual tipo de voz deve ser usado por padrão. Os tipos de voz são nomes simbólicos que mapeiam vozes específicas fornecidas pelo sintetizador de acordo com a configuração do módulo de saída. Por favor, veja a configuração específica do sintetizador em etc/speech-dispatcher/modules/ para ver quais vozes são atribuídas a diferentes nomes simbólicos. Os seguintes nomes simbólicos são atualmente suportados: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3, CHILD_MALE, CHILD_FEMALE

# DefaultVoiceType "MALE1"

Também tentei aumentar o tamanho do heap para 50M (conforme alguns posts em outras discussões), mas não ajudou:

festival --server --heap 50000000

Eu recebo os mesmos erros estranhos. Qualquer sugestão será apreciada.

Responder1

Para resolver esse problema é necessário definir (proclaim_voiceno scmarquivo. consulte as etapas abaixo:

  1. vá para a pasta festival/vozes
  2. editar arquivo scm
    • abrir:
      vim us/cmu_us_clb_arctic_clunits/festvox/cmu_us_clb_arctic_clunits.scm   #<--voice clunits.scm
      
    • Vá para a parte inferior do arquivo e adicione a linha antes(provide 'cmu_us_clb_arctic_clunits)
    • Adicione o conteúdo abaixo (atualize idioma, gênero, dialeto conforme necessário). Atualize, salve e saia.
      (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. Depois que /usr/bin/festival --servero erro deve desaparecer

Você também pode correr spd-say -Lpara mostrar os detalhes.

Se for necessário atualizar a voz padrão do festival:

  • Editar /etc/festival.scmpara adicionar
    (set! voice_default 'voice_<You prefered Voice name>)
    
  • reinicie o servidor do festival ou reinicie o Ubuntu. A voz padrão será alterada para uma nova via spd-saycomando ou no Firefox.

Responder2

O problema pode ser porque speech-dispatcherele não aceita a voz padrão do festival, mas tenta usar suas próprias configurações.

Tente descomentar e alterar DefaultVoiceTypepara algo como:

DefaultVoiceType "FEMALE1"

Eu também faria alguns testes usando programas diferentes, como o modo leitor do Firefox (ALT + CTRL + R) e veria se alguma das vozes listadas funcionava.

informação relacionada