→対策として継続長を明示した隠れセミマルコフモデルが用いられている。動的特徴量を考慮してパラメータ出力することで滑らかなパラメータが生成されるが、スペクトルの細かい部分が省略されてしまうため、しばしば過剰に平滑化され、こもって聞こえる。→対策としてポストフィルタ、GVなどが用いられる。音声合成ツールMerlinのTensorFlow使用時のデフォルトのDNNの構造を調べる。方法logに構造に関することが吐き出されていなかったのでTensorFlowコードとconfigファイルを直接確認した。src/tensorflow_lib/のtrain.pyとegs/slt_arctic/s1/conf/にあるconfigファイルを参照した。×ただしこれらは比較的容易に変更できる。音声合成ツールMerlinのデモスクリプトをTensorlFlowを用いる方法で実行する。方法configurationの設定にswitch_to_tensorflowがある。デフォルトでFalseになっているのでこれをTrueに変更したい。egs/slt_arctic/s1/script/にあるprepare_config_files.shの継続長モデル設定ファイル(duration_config_file)の[Architecture]の項目に以下のように追記する。$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_tensorflowがTrueになる。src/tensorflow_lib/内のファイルはPython3.xをサポートしていない(他のディレクトリはサポートしているのにも関わらず)。そのため、Python3.xを使用している場合、そのままモデルの学習を行おうとするとエラーが出る。この場合、2to3コマンドを用いてディレクトリ内のファイルを全て書き換えるなどする必要がある。以上の工夫を施すとデモスクリプトをTensorFlowを用いて実行することができる。デモで学習ファイル数やepoch数が少なく判断しかねるが、生成された音声はTensorFlowを使用しない時と比較してこもったように聞こえ、質が悪くなったように感じた。音声合成ツールのMerlinを動かす際の、ニューラルネットワークを用いて推定した音響特徴量から音声波形を合成する過程を調べる。configについて変数の設定についてはsrc/configuration/のconfiguration.py内に書かれており、クラス内メソッドのうち、主にuser_configurationメソッド内のリストuser_optionsで変数のデフォルトがインスタンス変数として指定され、引数として指定したconfigファイルでそれが上書きされる。デフォルトの値よりもegs/slt_arctic/s1/conf/のtest_synth_jsut_full.confの値が優先される。MORE)にもあるように、波形合成をする前に得られた静的特徴量と動的特徴量から、MLPGアルゴリズムと呼ばれるもので特徴量を計算し直している。この特徴量の次元は静的特徴量の次元に等しい(次元数は3分の1になる)。MLPGアルゴリズムの内容は隠しファイルsrc/frontend/の.mlpg_fast.pyに書かれている。egs/jsut/s1/conf/内のtest_synth_jsut_full.confの設定のうち、vocoder_typeを確認すると、波形合成のVocoderにはWORLDが用いられていることが分かる。具体的な波形合成のコードはsrc/utils/のgenerate.pyに書いてあるが、VocoderにWORLDを用いる場合、そのうちのwavgen_straight_type_vocoderメソッドが実行される。WORLDを動かして音声波形を作っている。wavgen_straight_type_vocoderメソッドでは、まずメルケプストラムにポストフィルターと呼ばれるものがかけられる。その手順は同ファイル内のpost_filterメソッドに書かれている。フィルターをかけられた後のデータが拡張子.mgc_p_mgcを持つものである。その後で波形合成が行われる。