MerlinのデモスクリプトをTensorFlowを用いて実行してみる

目的

音声合成ツールMerlinのデモスクリプトをTensorlFlowを用いる方法で実行する。

方法

configurationの設定にswitch_to_tensorflowがある。デフォルトでFalseになっているのでこれをTrueに変更したい。
egs/slt_arctic/s1/script/にあるprepare_config_files.shの継続長モデル設定ファイル(duration_config_file)の[Architecture]の項目に以下のように追記する。

$SED -i s#'switch_to_tensorflow\s*:.*'#'switch_to_tensorflow: True'# $duration_config_file

音響モデル設定ファイル(acoustic_config_file)の[Architecture]の項目にも同様に追記する。上の$duration_config_file$acoustic_config_fileに変えるだけで良い。また、prepare_config_files_for_synthesis.shにも同様にacoustic_config_file、duration_config_file共に追記する。

以上の追記を行うと02_prepare_config_files.shを実行して生成されるconfigファイルのswitch_to_tensorflowTrueになる。

なぜかsrc/tensorflow_lib/内のファイルはPython3.xをサポートしていない(他のディレクトリはサポートしているのにも関わらず)。そのため、Python3.xを使用している場合、そのままモデルの学習を行おうとするとエラーが出る。この場合、2to3コマンドを用いてディレクトリ内のファイルを全て書き換えるなどする必要がある。

以上の工夫を施すとデモスクリプトをTensorFlowを用いて実行することができる。

デモで学習ファイル数やepoch数が少なく判断しかねるが、生成された音声はTensorFlowを使用しない時と比較してこもったように聞こえ、質が悪くなったように感じた。