티스토리 뷰
Paper/Conversion
[Paper 리뷰] Wav2Vec-VC: Voice Conversion via Hidden Representations of Wav2Vec 2.0
feVeRin 2024. 9. 4. 09:01반응형
Wav2Vec-VC: Voice Conversion via Hidden Representations of Wav2Vec 2.0
- Voice conversion을 위해 wav2vec 2.0 representation을 사용할 수 있음
- Wav2Vec-VC
- Wav2Vec 2.0 layer의 hidden representation을 aggregate 하여 disentanglement-based voice conversion의 성능을 향상
- Target utterance가 주어졌을 때, speaker/content-related task를 수행하기 위해 hidden representation을 weighting 하여 활용
- 논문 (ICASSP 2024) : Paper Link
1. Introduction
- HuBERT, wav2vec 2.0과 같은 self-supervised learning (SSL) representation을 활용하면 speech processing 성능을 크게 향상할 수 있음
- 특히 wav2vec 2.0의 layer-wise representation은 acoustic-linguistic hierarchy를 가짐
- Mid-high layer representation은 phoneme classification이 가능하고, low-layer representation은 speaker-level clustering이 가능함 - BUT, 일반적으로 사용되는 wav2vec 2.0 representation의 last layer는 optimal choice가 아님
- 특히 FragmentVC, S2VC와 같은 voice conversion (VC) task에서 unsatisfactory 한 similarity를 보임
- 특히 wav2vec 2.0의 layer-wise representation은 acoustic-linguistic hierarchy를 가짐
-> 그래서 VC task에서 wav2vec 2.0 representation을 효과적으로 활용할 수 있는 Wav2Vec-VC를 제안
- Wav2Vec-VC
- Disentanglement-based VC를 기반으로 wav2vec 2.0의 all-layer hidden representation을 활용하도록 구성
- Pre-trained layer weight를 사용하여 speaker/content encoder에 필요한 information을 추출하고, 모든 hidden representation에 대한 weighted sum을 적용하여 latent representation을 효과적으로 학습
< Overall of Wav2Vec-VC >
- Wav2Vec 2.0에 대한 all-layer representation을 aggregate 하여 disentanglement-based VC에 적용
- 결과적으로 기존보다 뛰어난 conversion 성능을 달성
2. Method
- Wav2Vec-VC Framework
- Wav2Vec-VC는 크게 다음 3가지 part로 구성됨
- Speaker Weighting on Wav2Vec 2.0
- Target utterance가 전달되면, wav2vec 2.0 모든 layer의 resulting representation은 weighted sum을 통해 aggregate 됨
- 여기서 weight는 pre-training phase에서 predefine 됨 - 해당 speaker weighting은 speaker-related task를 잘 수행하기 위해 모든 hidden representation을 aggregate 하도록 학습됨
- Target utterance가 전달되면, wav2vec 2.0 모든 layer의 resulting representation은 weighted sum을 통해 aggregate 됨
- Content Weighting on Wav2Vec 2.0
- Source utterance가 전달되었을 때도 마찬가지로, wav2vec 2.0 layer의 모든 output representation은 weighted sum을 통해 aggregate 됨
- 이때 speaker weight와는 다른 predefined layer weight를 사용 - 결과적으로 해당 content weighting은 content-related task를 잘 수행하도록 weighting 됨
- Source utterance가 전달되었을 때도 마찬가지로, wav2vec 2.0 layer의 모든 output representation은 weighted sum을 통해 aggregate 됨
- Encoding and Decoding
- Target speaker에 대한 speaker-weighted sum representation과 source speaker에 대한 content-weighted sum representation은 각각 speaker/content encoder input으로 사용됨
- Speaker/content encoder는 해당 information을 encoding 하는 역할 - 최종적으로 decoder에서는 encode 된 두 representation을 결합하여 voice conversion을 수행함
- Target speaker에 대한 speaker-weighted sum representation과 source speaker에 대한 content-weighted sum representation은 각각 speaker/content encoder input으로 사용됨
- Speaker Weighting on Wav2Vec 2.0

- Determining the Wav2Vec Layer Weights
- Wav2Vec-VC는 speaker weighting을 위한 speaker identification, content weighting을 위한 speech recognition을 기반으로 training 되어 layer weight를 결정함
- 먼저 speaker classifier는 frame-level embedding을 위해 mean-pooling을 적용한 다음, cross-entropy loss를 가지는 linear transformation을 사용
- 한편으로 speech recognizer는 CTC loss가 있는 2-layer 1024-unit BLSTM을 사용 - Layer Weights for Speaker Weighting
를Zi layer를 가지는 wav2vec 2.0의n -th layer representation sequence,i 는 speaker identification (SID)를 통해 학습할 layer weight라고 하자ws={w1s,w2s,...,wns} 를 SID에 전달되는 weighted sum representationZs 라고 하면, cross-entropy lossZs=∑ni=1wis⋅Zi 를 최소화하여H(p,q) 를 결정할 수 있음:ws
(Eq. 1)H(p,q)=−∑u∈speakerp(u)logq(u|Zs)
(Eq. 2)w∗s=argminwsH(p,q)
- : speaker의 random variable,u : probability distribution에 대한 ground-truthp(u)
- : SID model로 예측된 결과q(u|Zs)
- Layer Weights for Content Weighting
을 automatic speech regonition (ASR)을 통해 학습할 layer weight라고 하자wc={w1c,w2c,...,wnc} - 그러면
는 ASR에 전달되는 weighted-sum representation이고, CTC lossZc=∑ni=1wic⋅Zi 를 최적화하여LCTC 를 결정할 수 있음:wc
(Eq. 3)w∗c=argminwcLCTC(S,v)
- : input audio의 ground-truth transcriptS
- : ASR model의 predicted label sequencev
- 먼저 speaker classifier는 frame-level embedding을 위해 mean-pooling을 적용한 다음, cross-entropy loss를 가지는 linear transformation을 사용

- Encoder/Decoder Architecture
- Speaker/content encoder와 decoder는 아래 그림과 같이 구성됨
- 여기서 Conv1D block은 single temporal convolution, ELU activation, batch normalization, skip connection을 가짐
- Linear block은 single lienar layer, ReLU activation, batch normalization을 가짐 - Speaker/Content Encoders
- 논문은 time-invariant information을 추출하기 위해, time-dimension에서 speaker encoder representation의 평균, 표준편차
를 계산한 다음 speaker embedding과 결합하여 사용함(μ,σ) - Content encoding의 경우, instance normalization과 bottleneck layer를 사용하여 speaker-dependent information을 제거함
- 논문은 time-invariant information을 추출하기 위해, time-dimension에서 speaker encoder representation의 평균, 표준편차
- Decoder
- 각 encoder로 얻어진 speaker/content embedding을 combine 하기 위해 논문은 Adaptive Instance Normalization을 도입함
- 이때 Wav2Vec-VC는 reconstruction error 만을 loss function으로 사용
- 여기서 Conv1D block은 single temporal convolution, ELU activation, batch normalization, skip connection을 가짐

3. Experiments
- Settings
- Dataset : VCTK
- Comparisons : AdaIN-VC, FragmentVC, S2VC
- Results
- Pretrained Layer Weights
- 적절한 speaker/content weighting을 찾기 위해 SID/ASR model의 성능을 비교해 보면
- Speaker weighting의 경우, 대부분 low layer에 weighting 됨
- Content weighting의 경우, mid-high layer에 weighting 됨


- VC Performance
- 다른 모델과 비교하여 Wav2Vec-VC의 성능이 가장 뛰어남

- MOS 측면에서도 Wav2Vec-VC가 가장 우수한 intelligibility와 similarity를 달성

- Visualization of Speaker/Content Embeddings
- Speaker/content embedding에 대한 t-SNE 결과를 확인해 보면, speaker embedding에서 각 utterance는 동일한 speaker 끼리 cluster 되어 있음
- Content embedding의 경우 speaker-level cluster를 형성하지 않으므로, speaker information을 포함하지 않음

반응형