논문리뷰/etc.

SoundStream: An End-to-End Neural Audio Codec

def__init__ 2025. 1. 20. 13:02
SoundStream이라는 새로운 신경망 기반 오디오 코덱을 제안한다. SoundStream은 Google이 개발한 오디오 처리 기술로, 딥러닝 기반의 신경망 오디오 코덱(neural audio codec)이다. SoundStream은 데이터를 압축하고 디코딩하는 압축 코덱의 역할을 한다.

 

Abstract

SoundStream은 fully convolutional 인코더/디코더와 Residual Vector Quantizer(RVQ)로 구성된 모델 아키텍처로,엔드-투-엔드 방식으로 학습된다.

학습은 적대적 손실(adversarial loss)과 복원 손실(reconstruction loss)을 결합하여 양자화된 임베딩(quantized embeddings)으로부터 고품질 오디오 콘텐츠를 생성할 수 있도록 한다.

양자화 계층에 구조적 드롭아웃(structured dropout)을 적용하여 학습함으로써, 단일 모델이 가변적인 비트레이트(3~18 kbps)에서 작동할 수 있다. 이는 고정된 비트레이트로 학습된 모델과 비교했을 때 품질 손실이 거의 없는 장점이 있다.

특정 조건(24 kHz 샘플링, 주관적 평가)에서 적은 비트레이트 대비 우수한 성능을 보인다.

 

Introduction

오디오코덱의 종류

오디오코덱은 크게 waveform codecs과 parametric codecs으로 나뉜다.

 

파형 코덱(waveform codecs)

입력 신호(음성 파형)를 가능한 한 원래의 파형에 가깝게 재현하려는 방식으로 신호의 세부적인 시간 도메인 특성을 유지하려고 한다. 원음 재현이 주 목적이므로 고해상도, 고비트레이트를 요구한다. 그만큼 신호 왜곡이 적고 고품질 오디오를 제공한다.

예시로 AAC, MP3, PCM(.wav포맷의 코덱방식)이 있다.

 

파라메트릭 코덱(parametric codecs)

음성을 생성하는 원리를 분석하여 신호의 주요 특징(파라미터)을 추출하고, 이를 기반으로 재구성하여 음성 신호의 실제 파형보다는 음성의 청각적 특성을 재현하는 데 초점을 맞춘다. 원래 신호를 재현하지 않고 분석된 정보(파라미터)를 기반으로 신호를 합성하는 방식으로, 저비트레이트에서 작동가능하다. 원 신호에 비해 왜곡될 가능성이 있고 음성 합성 단계에서 자연스러움이 떨어질 수 있다.

예시로는 SBC, EVS(LTE네트워크 음성코덱의 일종)이 있다. 대역폭을 적게 사용하므로 통신에 유리하다.

 

SoundStream 코덱의 제안

본 논문에서는 파라메트릭 코덱(parametric codec)의 특징에 가까운 SoundStream 코덱을 제안한다. 하지만 파형 코덱(waveform codec)의 특징도 혼합적으로 사용하며, 인코더/디코더의 딥러닝 기반으로 접근하기에 전통적인 방식과는 다른 접근방식이다.

Model

 

 

Model architecture

인코더는 신호벡터 x를 임베딩 시퀀스로 매핑하고, RVQ를 통해 각 임베딩을 코드북 집합을 사용하여 목표 비트 수로 압축한다.

디코더는 양자화된 임베딩으로부터 손실 있는 재구성된 신호벡터 x를 생성한다.

 

인코더

SEANet구조와 동일하지만, skip connections는 없다. 각각의 인코더 블록 내부 3개의 Residual Unit은 dilation 계수가 1,3,9인 dilated convolution으로 이루어져있다. 이후에는 일반적인 conv를 통해 다운샘플링하며 채널은 두배가 된다.

 

디코더

인코더를 미러링하도록 설계되어 있다. 인코더와 동일하지만 역순으로 정렬하여 동일한 해상도의 파형을 재구성한다. 업샘플링 마다 채널은 절반으로 줄어들게 된다.

 

Limitations of Vector Quantization

목표 비트레이트가 R=6000bps인 코덱을 고려해보자.

스트라이딩 계수: M=320

샘플링 속도: f_s ​ =24000Hz

 

이 경우 초당 프레임 수는 24000/320 = 75프레임

따라서 각 프레임에 할당된 비트 수는 6000/75 = 80bits

 

단순히 벡터 양자화를 사용하는 경우, N = 2^80크기의 코드북을 저장해야한다.(현실적으로 불가능)

 

Residual Vector Quantizer

그래서 residual vector quantizer를 고안한다.

양자화 후의 잔차를 계속해서 다시 양자화하여 표현을 가짓 수를 늘린다.

벡터의 양자화 계층 N_q가 8인 경우, 2^(80/8)=1024.

1024개의 벡터로 구성된 코드북을 구성할 수 있다.

Discriminator architecture

적대적 손실(adversarial loss)을 계산하기 위해, 파형 기반 판독기(wave-based discriminator)와 STFT 기반 판독기(STFT-based discriminator)를 정의한다. 파형기반 discriminator는 MelGAN에서 제안된 Multi-Scale Discriminator와 동일한 형태이다.

상호보완적으로 사용되며, 파형 기반 디스크리미네이터는 신호의 시간적 구조(리듬, 연속성)를 분석하고 STFT 기반 디스크리미네이터는 신호의 주파수적 특징(음조, 스펙트럼 에너지)를 분석한다.

 

 

이하생략

프로젝트 구현을 위한 학습으로 결과 및 성능부분은 스키밍하고 넘어갑니다