Disentangled Speech Embeddings Using Cross-Modal Self-Supervision
abstract
disentangling과 identity/content or clasisfication/disentangling loss과 트렁크 스트럭처를 이용한 트레이닝을 통해 적은 양의 unseen speaker에도 robust함을 보였음
content task: N-way classification (N: 한 face트랙 안에 있는 샘플 수)
identity task: B-way classification (B: 한 mini-batch 안에 있는 face track의 수) -> 몇번째 face track인지
제안하는 내용
1) time-scale이 다를 때 스피치 표현을 배우는 프레임워크
2) large, unlabelled data
3) trunk architecture for two different task + explicit disentanglement
4) 이 embedding을 화자인식에 이용
motivation
statistical cues
: 한 트랙안에서는 사람은 같고 언어 content가 다름
: 다른 트랙이면 사람은 다르고 언어 content가 같음
= CONTENT에 대한 내용을 최소화 하면서 화자 정보를 배우는 방식
* content 정보 [28] -> perfect match
: content constraint via multi-way matching task
(같은 트랙 안에서 1 video, N audio, 같은 트랙이어도 content는 다른걸 포함하고 있을것임), N개의 distance가 나오고 N개의 1/d의 cross-entropy loss를 구함.
: face FC랑 voice FC에서 각각 content vector를 뽑아서 그거끼리 계산
* identity 정보 [24] ->
: (1 video, N audio지만 audio sample은 각각 다른 track에서 뽑는다)
Face FC랑 voice FC에서 각각 identity vector를 뽑아서 random select랑 avg pooling해서 그거끼리 계산
: 같은 face-track이면 같은 speaker 그러나 다른 얼굴이면 다른 speaker
* disentangle 정보
: intra-track과 inter-track에 대한 각각의 embedding을 뽑는다고 해도 disentangle을 보장할 수 있는건 아님,,
: confusion loss [29]
1) content loss 구하는 vector를 각각 pooling/random select해서 single vector로 만든담에 계산
2) identity loss끼리 multiple vector인채로 계산
framework
: e2e self-supervised
0.2초짜리 speech, 5개의 cropped face
conv2d*5 - fc for identity embedding /fc for content embedding
identity from audio -> average
identity from face -> randomly select
*self-supervised paird data inputs
한개당 1.2초*B개의 face track, 한 track 안에는 N+4개의 연속 얼굴 이미지와 ALIGNED SPEECH SEGMENTS
실험
1) ablation study: B=30, N=30
- only content
- only identity loss
- content+identity
- c + i + d
다 좋은데 loss를 좀 수식으로 표현해줬으면 좋았잖아요..