語音調度程序與節日的語音配置問題

語音調度程序與節日的語音配置問題

我終於開始Festival使用美國 HTS聲音了:cmu_us_awb_cg、、、、、、、。cmu_us_jmk_cgcmu_us_slt_cgcmu_us_bdl_cgcmu_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-dispatcher調用Festival.我認為這是一個可以設置的地方,特別是因為以下評論speechd.conf

DefaultVoiceType 控制預設應使用哪種語音類型。語音類型是符號名稱,根據輸出模組配置映射到合成器提供的特定語音。請參閱 etc/speech-dispatcher/modules/ 中的合成器特定配置,以查看哪些聲音被指派給不同的符號名稱。目前支援以下符號名稱:MALE1、MALE2、MALE3、FEMALE1、FEMALE2、FEMALE3、CHILD_MALE、CHILD_FEMALE

# 預設語音類型“MALE1”

我還嘗試將堆大小增加到 50M(根據其他討論中的一些帖子),但這沒有幫助:

festival --server --heap 50000000

我也遇到同樣奇怪的錯誤。任何建議表示讚賞。

答案1

要解決這個問題需要(proclaim_voicescm文件中定義。請參考以下步驟:

  1. 轉到節日/聲音資料夾
  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>)
    
  • 重新啟動 Festival 伺服器或重新啟動 ubuntu。預設語音將透過spd-say命令或從 Firefox變更為新語音。

答案2

問題可能是因為speech-dispatcher不接受節日的預設聲音,而是嘗試使用自己的設定。

嘗試取消註釋並將其更改DefaultVoiceType為以下內容:

DefaultVoiceType "FEMALE1"

我也會使用不同的程式進行一些測試,例如 Firefox 的閱讀器模式 (ALT+CTRL+R),看看是否可以使用列出的任何聲音。

相關內容