対数f0をf0に変換。その際、0の代わりに用いられた微小量は0に置き換えられている。正の場合、値を0に置き換え。その後、文字型をfloatからdoubleに変換。メルケプストラムをケプストラムに変換し、その複素数平面上での偏角を度数法で表す。この際、configファイルで見られる変数fw_alphaやflをパラメータとして用いる。その値を32768(8進法で100000だが値の理由は不明)で割ったのちに2乗する。その後に文字型をfloatからdoubleに変換する。以上の変換されたデータを引数に指定してWORLDのSYNTHESISコマンドで波形合成。この際、configファイルで見られる変数flやsrをパラメータとして用いる。21:46Merlinが音響特徴量から波形を合成する過程についてTweet広告を非表示にするもっと読むコメントを書く2018-02-27TensorFlowの変数を再利用できるようにプログラミング問題k17trpsynth.hatenablog.com上の記事にて問題となっていたことが解決したので執筆。LSTMに学習をさせた後、同じコード上で予測をさせたり、同じコード上で続けて予測をさせたりすると以下のエラーが出るのであった。当時はこのVariable_4がcell内の変数を表しているのかと思っていた。これは前利用した時と区別するために新しく名前がつけられているだけで、重み(w)とバイアス(b)であった。エラーの原因は以下の通り。二度目の実行時に変数を再び定義するが、同じコード上でこれを行うと一度目の実行時に定義した変数と区別するために一度目とは違う名前がつけられる。セッションを開始し、tf.Saver().loadで前回の学習で保存されたモデルの変数を復元する。保存された時とは違う名前の変数を要求され、怒られる。解決法これを直すためには二度目の実行時にも同じ名前で変数を定義できるようにしなければならない。以下のようなコードで変数を定義してたが、tf.Variableでは変数を同じ名前で再利用する許可ができない(と思われる)。dtype="float64"))そこで、上の部分をtf.variable_scopeとtf.get_variableを用いて以下のように書き換えた。self.output_layer_size)tf.variable_scopeにはオプションreuseがあるのでこれをtf.AUTO_REUSEとすることで同じ名前で変数を再利用することを許可する。以上の工夫を施した結果、エラーは解決した。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。