フェスティバルでのスピーチディスパッチャー音声設定の問題

フェスティバルでのスピーチディスパッチャー音声設定の問題

ついに、US FestivalHTS ボイスが使えるようになりました: 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)"

次に、speech-dispatcher を設定しましたが、 経由で適切に設定できませんでした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 モジュール用の設定ファイルもあります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_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>)
    
  • フェスティバル サーバーを再起動するか、Ubuntu を再起動します。デフォルトの音声は、コマンドまたは Firefox から新しい音声に変更されますspd-say

答え2

問題は、speech-dispatcherフェスティバルのデフォルトの音声を受け入れず、代わりに独自の設定を使用しようとしているために発生する可能性があります。

コメントを解除して、DefaultVoiceType次のように変更してみてください:

DefaultVoiceType "FEMALE1"

また、Firefox のリーダー モード (ALT + CTRL + R) などのさまざまなプログラムを使用してテストを実行し、リストされている音声のいずれかが機能するかどうかを確認します。

関連情報