축제의 음성 디스패처 음성 구성 문제

축제의 음성 디스패처 음성 구성 문제

드디어 Festival미국 HTS 음성인 , , , , , cmu_us_awb_cgcmu_us_jmk_cg작업 cmu_us_slt_cg하게 cmu_us_bdl_cg되었습니다 .cmu_us_clb_cgcmu_us_rms_cg

festival.scm음성을 사용하도록 수동으로 구성했습니다 bdl.

 (set! voice_default 'voice_cmu_us_bdl_cg)

이제 대화형 내부 festival와 서버가 실행 중일 때 모두 잘 작동합니다( festival --server).

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

그런 다음 음성 디스패처를 구성했는데 를 통해 자체적으로 올바르게 구성하지 못했지만 spd-conf구성 파일을 수동으로 수정했습니다 speechd. 그것을 요 ​​약하기:

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"

이제 ALSA 테스트가 제대로 작동합니다(소리 생성). 하지만 다음 주소로 문자를 보낼 때 speech-dispatcher:

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

... festival서버가 생각할 수 있는 모든 음성을 시도하는데 실패한 것처럼 미쳐 버립니다.

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

따라서 페스티벌이 작동 중이고 ALSA에 대한 연결이 작동 중이며 음성 전달자가 페스티벌에 무언가를 보내고 있지만 어떻게든 깨졌거나 음성 설정이 잘못되었을 수 있습니다.

/etc/speech-dispatcher/modules/폴더 내에 페스티벌 모듈에 대한 구성 파일도 있지만 사실상 비어 있고( 주석 festival.conf이 많은 텍스트 포함) . 특히 다음의 주석 때문에 이를 설정할 수 있다고 가정하는 곳입니다 .speech-dispatcherFestivalspeechd.conf

DefaultVoiceType은 기본적으로 사용해야 하는 음성 유형을 제어합니다. 보이스 유형은 출력 모듈 구성에 따라 신디사이저가 제공하는 특정 보이스에 매핑되는 기호 이름입니다. 어떤 음성이 다른 기호 이름에 할당되었는지 확인하려면 etc/speech-dispatcher/modules/의 신디사이저별 구성을 참조하세요. 현재 지원되는 기호 이름은 MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3, CHILD_MALE, CHILD_FEMALE입니다.

# 기본음성유형 "MALE1"

또한 (다른 토론의 일부 게시물에 따라) 힙 크기를 최대 50M까지 늘리려고 시도했지만 도움이 되지 않습니다.

festival --server --heap 50000000

똑같은 이상한 오류가 발생합니다. 어떤 제안이라도 감사하겠습니다.

답변1

(proclaim_voice이 문제를 해결하려면 파일 에 정의해야 합니다 scm. 아래 단계를 참조하십시오:

  1. festival/voices 폴더로 이동
  2. scm 파일 편집
    • 열려 있는:
      vim us/cmu_us_clb_arctic_clunits/festvox/cmu_us_clb_arctic_clunits.scm   #<--voice clunits.scm
      
    • 이전에 파일 추가 줄의 맨 아래로 이동(provide 'cmu_us_clb_arctic_clunits)
    • 아래 콘텐츠를 추가하세요(필요에 따라 언어, 성별, 방언을 업데이트하세요). 업데이트하고 저장하고 종료하세요.
      (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. /usr/bin/festival --server오류가 사라진 후에

spd-say -L세부 정보를 표시하기 위해 실행할 수도 있습니다 .

기본 축제 음성을 업데이트해야 하는 경우:

  • /etc/festival.scm추가하려면 수정하세요 .
    (set! voice_default 'voice_<You prefered Voice name>)
    
  • 페스티벌 서버를 다시 시작하거나 우분투를 재부팅하세요. 기본 음성은 명령이나 Firefox를 통해 새로운 음성으로 변경됩니다 spd-say.

답변2

speech-dispatcher에서 페스티벌의 기본 음성을 허용하지 않고 자체 설정을 사용하려고 하기 때문에 문제가 발생할 수 있습니다 .

DefaultVoiceType주석을 제거하고 다음과 같이 변경해 보세요 .

DefaultVoiceType "FEMALE1"

또한 Firefox의 리더 모드(ALT+CTRL+R)와 같은 다른 프로그램을 사용하여 몇 가지 테스트를 수행하고 나열된 음성 중 작동하는 것이 있는지 확인합니다.

관련 정보