Stepwise_Monotonic_Multihead_Attention
1.0.0
Pytorch는 강력한 자동 회귀 변압기 TTS에 대한 단조성 향상과 유사한 단계적 단조성 멀티 헤드주의 (SMA) 구현

Mel-Spectrogram과 일치하는 SMA를 시퀀스 길이의 텍스트에 적용 할 수 있습니다. 다음은 SMA의 효과를 보여주는 몇 가지 결과입니다. 첫 번째 그림은 115K 단계에서 SMA ( hp.sma_tunable=False )가없는 정렬입니다. 두 번째 그림은 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 )에 관계없이 텍스트 -audio fusion을 텍스트 크기 ( seq_len )로 반환합니다.
hp.sma_tunable 는 단계별 단조로운 멀티 헤드주의의 튜닝 체계를 전환 할 수있는 하이퍼 파라미터입니다. True 설정하면 단계적 단조로운 멀티 헤드주의가 활성화됩니다. 그렇지 않으면 변압기와 마찬가지로 일반적인 멀티 헤드주의입니다. 예를 들어, 강력한 자동 회귀 변압기 TTS (다음 문서 에서이 용지를 '참조 용지'라고 부를 것입니다)와 마찬가지로, 예를 들어, 더 빠른 교육 및 모델 수렴에 대한 특정 단계에 대해 SMA없이 모듈을 훈련시킬 수 있습니다. 그런 다음 sma_tunable=True 몇 단계로 설정하여 SMA를 활성화 할 수 있습니다.expectation() 는 참조 용지에서 alpha 로 표시되는 단계적 단조 적 기대 점수를 계산하는 핵분열입니다.encoder 출력)에서 나온 것입니다. 키와 값은 Mel-Spectrogram reference encoder (일반 Mel-Spectrogram 인코딩 프레임 워크, 예 : GST 체계의 참조 인코더)의 출력입니다. 결과적으로, 현재 SMA 모듈은 Mel-Spectrogram 인코딩을 Mel-Spectrogram의 길이에서 텍스트 길이로 변환합니다. 작업에 따라 쿼리, 키 및 값의 차원 (특히 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}}
}