안녕하세요, AI 엔지니어 야마구치입니다.
더운 날이 계속되고 있습니다만, 화자 임베딩 모델 (Speaker Embedding Model)로 사용되는 ReDimNet의 신작이 2개월 전쯤 나와서 테스트해 보았습니다.
논문 소개 → 공개 데이터셋으로 임베딩해 본 결과, 의 흐름으로 말씀드리겠습니다.
논문📖
- 공개일: 2026/3/12
- Organization: Palabra AI, London, United Kingdom
- Authors: Ivan Yakovlev, Anton Okhotnikov
이것은 2024년에 나온 ReDimNet의 진화 버전 같습니다. 과연 어떻게 다를까요.
아키텍처
위가 ReDimNet1 (2024년 과거작), 아래가 최신작인 ReDimNet2 입니다.
architecture
포인트
-
공통: 1D↔2D를 오가며 처리하는 구조 (이름의 유래대로 Reshape Dimensions Network)
-
차이점
-
1D 측 처리 경로에 **시간 방향 풀링 (Time-direction Pooling)**을 넣었다 (논문 제목인 "Time-Pooled Dimension Reshaping") - 이를 통해 계산량을 비례해서 늘리지 않고도 채널 수 (Channel number)를 크게 스케일링할 수 있게 되었으며, 결과적으로 block2d에 들어가는 특징 맵 (Feature map)의 F(주파수 축: Frequency)·T(시간 축: Time)가 작아졌다.
-
1D 측 처리 경로에
학습 데이터는 VoxCeleb2를 사용하고 있으며, 훈련 파이프라인은 Wespeaker의 것을 사용하는 듯합니다. 또한 공개된 가중치(Weights) 중에는 VoxBlink2 + VoxCeleb2 + CN-Celeb2로 학습한 것도 있어, 후술할 실험에서는 그것을 사용하고 있습니다.
실험 결과
논문에서 빌려왔습니다.
기본적인 모델 형태는 동일하며, 세부 구조(파라미터 수, 채널 수 C)를 변화시킨 EER (Equal Error Rate)의 집계 결과는 다음과 같습니다.
| Model | Params | GMACs | Vox1-O | Vox1-E | Vox1-H |
|---|
| ReDimNet-B0 | 1.0M | 0.43 | 1.16 | 1.25 | 2.20 |
| ReDimNet2-B0 | 1.1M | 0.33 | 1.04 | 1.16 | 1.97 |
| ReDimNet-B1 | 2.2M | 0.54 | 0.85 | 0.97 | 1.73 |
| ReDimNet2-B1 | 2.1M | 0.56 | 0.78 | 0.96 | 1.72 |
| ReDimNet-B2 | 4.7M | 0.90 | 0.57 | 0.76 | 1.32 |
| ReDimNet2-B2 | 3.6M | 0.95 | 0.57 | 0.76 | 1.41 |
| ... | | 0.66 | | 1.22 | |
| ReDimNet-B4 | 6.3M | 4.80 | 0.51 | 0.68 | 1.26 |
| ReDimNet2-B4 | 6.6M | 4.62 | 0.37 | 0.58 | 1.07 |
| ReDimNet-B5 | 9.2M | 9.87 | 0.43 | 0.61 | 1.08 |
| ReDimNet2-B5 | 8.9M | 9.62 | 0.33 | 0.56 | 1.07 |
| ReDimNet-B6 | 15.0M | 20.27 | 0.40 | 0.55 | 1.05 |
| ReDimNet2-B6 | 12.3M | 13.05 | 0.29 | 0.52 | 0.99 |
ReDimNet1과 비교했을 때, (ReDimNet 고유의 구분 내에서) 거의 모든 구분에서 성능이 향상된 것으로 보입니다 (B2만은 Vox1-H가 1.32 → 1.41로 악화, Vox1-O/E는 동일).
compare
또한, 동일한 구분끼리 (B0끼리, B1끼리...) ReDimNet1과 비교하면, 성능 향상과 동시에 파라미터 수나 계산량 중 하나가 억제된 구분이 많으며, B5 / B6에서는 둘 다 감소했습니다 (B0/B3/B4는 파라미터 수가 미증, B1/B2는 GMACs가 미증). 참고로 RTF나 실측 속도에 대해서는 논문에서 언급되지 않은 것 같습니다.
- Params (파라미터 수): 모델의 메모리 크기에 직결
- GMACs (Giga Multiply-Accumulate operations): 이론상의 계산량. thop 라이브러리로 2초 입력에 대해 측정
테스트해 보았다🥊
그래서 ReDimNet1과 ReDimNet2의 차이점을 비교해 보았습니다. (매개변수 수가 비슷한 두 모델을 비교했습니다)
실험 조건
- 데이터: AMI Meeting Corpus의 sdm/test (회의실에 놓인 단일 원거리 마이크 = 실제 회의 녹음과 유사한 어려운 조건). 5초 이상의 발화에서 화자당 최대 80건을 추출하여, 1,199개의 발화 / 16개 회의 / 16명의 화자 / 150분 - 비교 모델 (둘 다 torch.hub로 공개된 가중치 및 출력은 192차원)
- ReDimNet1-M:
IDRnD/ReDimNet의 M / ft_mix / vb2+vox2+cnc (실측 4.81M params) - ReDimNet2-B3: PalabraAI/redimnet2의 b3 / lm / vb2+vox2+cnc2_v0 (실측 4.51M params)
※ 매개변수 수는 위의 논문 표 값(B3는 4.1M)과는 일치하지 않습니다. 표는 논문 중의 구성 값이고, 여기는 실제로 로드한 공개 가중치(학습 데이터 및 구성이 다름)에서의 실측값입니다. 이후 '매개변수 수가 비슷한 두 모델'이라고 언급하는 것은 실측값을 기준으로 합니다.
- ReDimNet1-M:
- 각 발화의 시작 1 / 2 / 3 / 5초를 잘라 임베딩하므로, 초수를 바꿔도 소재는 같습니다.
- 클러스터링은 회의별로 응집형 클러스터링(코사인 거리・average linkage)을 사용했으며, 클러스터 수는 실제 화자 수를 부여했습니다.
먼저 segment의 길이와 EER, 그리고 클러스터링했을 때의 purity에 대해
all
segment 길이에 따라 다르지만, 기본적으로 ReDimNet2가 더 나은 것 같습니다. EER는 어떤 초수・어떤 회의에서도 ReDimNet2가 낮았습니다. 반면 purity는 5초일 경우 ES2004a-d 등에서 역전되는 경우가 있으며, 이는 임베딩의 질보다는 응집형 클러스터링의 잘라내는 방식에 좌우되는 부분이 큰 것 같습니다.
다음으로 클러스터링을 통해 화자가 깨끗하게 분리되었는지 (t-SNE 사용)
clustering
극적인 변화는 아니지만, 이 3초 조건에서는 모든 회의에서 ReDimNet2가 동등하거나 더 높은 purity를 보였습니다. IS1009a-d(0.890 → 0.972)는 성능 차이를 본 목적에도 이해하기 쉬울 것 같습니다. 반대로 EN2002a-d는 두 모델 모두 중앙에 어떤 화자에게도 치우치지 않은 덩어리가 남아 있어, 원거리 마이크로 발화가 겹치는 구간은 임베딩 모델의 개선만으로는 해결되지 않는다는 것을 알 수 있습니다.
마지막으로 EER. 동일 회의 내 segment 쌍(cos 유사도 행렬의 상삼각 성분)을 가져와 '동일 화자인지' '다른 화자인지'의 이진 분류 태스크를 얼마나 수행할 수 있는지를 봅니다.
eer
이 부분은 일관되게 ReDimNet2가 우세했습니다 (전체 16개 회의에서 7.9% → 7.3%, 회의별로도 4개 그룹 모두에서 개선).
속도 측정
참고로 속도 측정에 대해서도, ReDimNet2가 더 빨랐습니다. ⇩
측정 조건
- 환경: Apple Silicon MacBook Air (CPU만・GPU 미사용), 스레드 수는 1로 고정
- 입력: AMI sdm test의 실제 음성에서 잘라낸 3.0초(48,000 샘플)의 고정 길이. 길이를 맞추었기 때문에 연산량은 음성의 내용에 의존하지 않습니다.
- 절차: 60개를 하나씩 임베딩하고, 5개의 워밍업을 제외한 소요 시간의 중앙값
- 구현: ReDimNet1-M / ReDimNet2-B3는 둘 다 torch.hub의 PyTorch 모델 (구현 조건을 맞추기 위해). 참고로 첨부된 TitaNet-large(NVIDIA NeMo의 화자 임베딩 모델)만 ONNX Runtime
- 결과: TitaNet-large 130ms / ReDimNet1-M 271ms / ReDimNet2-B3 142ms (3초 음성당, 실시간 대비 23.0x / 11.1x / 21.2x) - 참고: ReDimNet2-B3는 ONNX로 내보내기도 가능했습니다(opset 17・19.4MB・PyTorch 출력과 코사인 일치 1.000000). ONNX 실행에서도 128ms 전후였으며, 속도 차이는 런타임이 아닌 아키텍처에서 기인한다고 볼 수 있습니다.
끝으로
Nishika 엔지니어 팀에서는 매주 'AI 잡담 연구 정례'를 비롯해 매일 궁금한 뉴스나 논문을 가볍게 골라 이야기 나눕니다.
단순히 이야기하는 것에 그치지 않고, Nishika의 유래인 우리 '자신들(니시카)에게만' 할 수 있는 일은 무엇인지, 사용자에게 제공할 수 있는 가치는 무엇인지 고민하며 AI의 미래, 엔지니어링의 미래를 생각하고 있습니다.
이러한 미래를 함께 고민하고 만들어 나갈 동료를 모집하고 있습니다. 관심이 있으신 분은 꼭 연락해 주시기 바랍니다.
Discussion