「マルチモーダル合成のための持続時間に情報提供された注意ネットワーク」(https://arxiv.org/pdf/1909.01700.pdf)論文の実装。
ステータス:リリース
Durianは、テキスト間合成タスクのためのエンコーダデコーダーアーキテクチャです。 Tacotron 2のような以前のアーキテクチャとは異なり、注意メカニズムを学習せず、音素期間の情報を考慮しています。したがって、もちろん、このモデルを使用するには、音韻と期間に沿ったデータセットが必要です。ただし、LJSpeech Dataset(使用されているCMU DICT)では、事前に処理された持続時間モデルを使用しようとする場合があります。以下にリンクを示します。
Durianモデルは、バックボーンシンセサイザーと期間予測因子の2つのモジュールで構成されています。ここに、論文に記載されているドリアンとの最も注目すべき違いのいくつかがあります。
バックボーンシンセサイザーと期間モデルの両方が同時にトレーニングされています。実装のために、単純化の場合、モデルは固定された最大数のフレームのアライメントを予測します。この出力は、BCEの問題として学習することができます。MSEの問題は、フレーム軸上で合計するか、両方の損失を使用して(これをテストしていません)、 config.jsonで設定します。実験により、最適化プロセスのJust BCEバージョンは、より長いテキストシーケンスで不安定であることが示されたため、MSE+BCEまたはJust-MSEを使用することを好むことが示されました(テンソルボードで悪いアライメントが得られた場合は気にしないでください)。
demoフォルダー(使用済み波動ヴォコーダー)の合成デモWavfile(収束の前に取得された)を確認できます。
まず、 pip install --upgrade -r requirements.txtを使用してすべてのパッケージをインストールしていることを確認してください。コードは、 pytorch==1.5.0を使用してテストされます
リポジトリのクローン: git clone https://github.com/ivanvovk/DurrIAN
トレーニングを開始するために、ペーパーベースのドリアンバージョンを実行するにはpython train.py -c configs/default.jsonを実行します。ベースラインモデルをpython train.py -c configs/baseline.json --baseline
ローカル環境ですべてが正常に機能することを確認するには、 python <test_you_want_to_run.py>によってtestsフォルダーでユニットテストを実行できます。
この実装は、BCE持続時間の損失の最小化で、音素化された期間に合わせたLJSpeechデータセットを使用してトレーニングされました。このリンクからそれを見つけることができます。
このモデルの主な欠点は、持続時間に整合したデータセットを必要とすることです。 filelistsフォルダーでの現在の実装のトレーニングで使用されている解析されたljspeechフィルリストを見つけることができます。データを使用するために、提供されたLJSpeechのものと同じ方法でフィルリストを整理していることを確認してください。ただし、脳の時間とニューロンを節約するために、モデルチェックポイントからljspeech持続時間モデルを前処理しても、持続時間並列を使用せずにデータセットでモデルをトレーニングしようとすることができます(試しませんでした)。ただし、個人データセットの調整に興味がある場合は、次のセクションに注意してください。
私の実験では、ljspeechをモントリオールの強制アラインメントツールと並べました。ここで何かが不明確な場合は、Toolkitのドキュメントの指示に従ってください。そもそも、アルゴリズムを調整するには、いくつかのステップがあります。
データセットを適切に整理します。 MFAは、構造{utterance_id.lab、utterance_id.wav}の単一のフォルダーにあることを要求しています。すべてのテキストが.lab形式のものであることを確認してください。
MFAリリースをダウンロードし、このリンクからインストール手順に従ってください。
MFAを使用したら、フォネムの転写を備えたデータセットワード辞書が必要です。ここにはいくつかのオプションがあります:
bin/mfa_generate_dictionary /path/to/model_g2p.zip /path/to/data dict.txtを使用して、MFA事前に処理されたモデルリストから前処理されたG2Pモデルで辞書を生成できます。デフォルトのMFAインストールは、使用する英語の前のモデルを自動的に提供することに注意してください。データ(辞書、G2Pモデル)を準備したら、調整の準備が整いました。コマンドbin/mfa_align /path/to/data dict.txt path/to/model_g2p.zip outdir実行します。終わるまで待ってください。 outdirフォルダーには、語彙のない単語のリストと、wavsアライメントが保存されている.TextGrid形式の特別なファイルを備えたフォルダーが含まれています。
次に、これらのテキストグリッドファイルを処理して、最終的なフィルリストを取得します。ここでは、PythonパッケージTextGrid役立つ場合があります。 pip install TextGridを使用してインストールします。ここにそれを使用する方法の例:
import textgrid
tg = textgrid.TextGrid.fromFile('./outdir/data/text0.TextGrid')
これで、 tg 2つのオブジェクトのセットになります。1つはアライメントされた単語、2番目のオブジェクトにはアラインされた音素が含まれています。 2番目のものが必要です。取得した.TextGridファイルを繰り返し、 filelistsフォルダーで提供したものと同じ形式でファイルリストを準備することにより、データセット全体の抽出期間(フレーム! tgの間隔、したがって変換)。
いくつかのアライナーの概要を見つけました。多分それは役に立つでしょう。ただし、MFAは私の最善の知識のために、最も正確なアライナーの1つであるため、MFAを使用することをお勧めします。