Stepwise_Monotonic_Multihead_Attention
1.0.0
堅牢な自己回帰トランスTTSの単調性の向上と同様の段階的単調マルチヘッド注意(SMA)のPytorch実装

SMAを適用して、メルスペクトルグラムをシーケンスの長さのテキストに一致させることができます。以下は、SMAの有効性を示すいくつかの結果です。最初の数字は、115KステップでのSMA( hp.sma_tunable=False )のないアライメントです。 2番目の図は、125KステップでSMA Tunning( hp.sma_tunable=True )を持つものです。


ご覧のとおり、SMAチューニングを適用した後、アラインメントが通常のマルチヘッドの注意よりも非常に強力であることを確認できます。
まず、SMAを定義します。 256次元のエンコードと4マルチヘッドの注意があるとしましょう。
from sma import StepwiseMonotonicMultiheadAttention
ref_attention = StepwiseMonotonicMultiheadAttention ( 256 , 256 // 4 , 256 // 4 )そして、次のように注意を適用してアラインメントを得ることができます。 mel_len参照オーディオのフレームサイズであり、 seq_len入力テキストの長さです(通常は音素のシーケンスです)。 fr_max focused_head()関数からのフォーカスレートの最大値です。 text_maskとattn_mask両方に1.あります。マスクされる値、 0.他の人が保持される場合。
"""
enc_out --- [batch, seq_len, 256]
attn --- [batch, seq_len, mel_len]
enc_text --- [batch, seq_len, 256]
enc_audio --- [batch, mel_len, 256]
text_mask --- [batch, seq_len, 1]
attn_mask --- [batch, seq_len, mel_len]
"""
# Attention
enc_out , attn , fr_max = ref_attention ( enc_text , enc_audio , enc_audio ,
mel_len , mask = attn_mask , query_mask = text_mask )ご覧のとおり、SMAは、オーディオサイズ( mel_len )に関係なく、テキストサイズ( seq_len )のテキストオーディオ融合を返します。
hp.sma_tunableは、段階的に単調なマルチヘッドの注意のチューニングスキームを切り替えることができるハイパーパラメーターです。 Trueを設定すると、段階的な単調なマルチヘッドの注意が活性化されます。そうでなければ、トランスのように、それは通常のマルチヘッドの注意です。たとえば、堅牢な自己回帰トランスTTSの単調性を強化するように(この論文を次のドキュメントで「参照sma_tunable=True 」と呼びます)。expectation()は、参照論文のalphaとして示される段階的な単調期待スコアを計算するfucntionです。encoderの出力)からのものであり、キーと値はメルスペクトルグラムエンコーディング(一般的なメルスペクトルグラムエンコーディングフレームワークのreference encoderの出力、例えば、GSTスキームの参照エンコーダー)からです。その結果、現在のSMAモジュールは、MELスペクトログラムの長さからテキストの長さにメルスペクトルグラムを変換します。タスクに応じて、クエリ、キー、および値のディメンション(特にexpectation関数)を慎重に変更する必要があります。focused_head関数は、ヘッド間の最適な対角線(単調に増加する)アライメントを選択します。参照ペーパーのように、FastSpeechフレームワークの「フォーカスレート」に従います。参照ペーパーとは異なり、最大焦点定格ヘッドはしきい値ではなく選択されます。ただし、 focused_head関数にprefixed_threshold (例えば0.5 )を追加するだけで、採用できます。 @misc{lee2021sma,
author = {Lee, Keon},
title = {Stepwise_Monotonic_Multihead_Attention},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/keonlee9420/Stepwise_Monotonic_Multihead_Attention}}
}