[Paper Review] OpenS2S

Sujin Koo·1일 전

OpenS2S는 사용자의 음성에 담긴 언어적 내용과 감정, 억양, 말투 같은 준언어적 정보를 이해하고, 이에 맞는 공감적 텍스트와 감정이 표현된 음성 응답을 생성하는 오픈소스 Speech-to-Speech 모델이다.

다만 OpenS2S는 응답 텍스트가 모두 완성되기 전부터 speech token과 waveform을 순차적으로 생성하지만, Moshi나 PersonaPlex처럼 사용자가 말하는 동안에도 동시에 듣고 말하는 구조는 아니다.

이 논문은 다음 내용을 확인하기 위해 읽었다.

  • 준언어적 정보를 모델에 어떤 방식으로 학습했는가?
  • Speech Understanding과 Speech Generation의 학습방법
  • 어떤 감정 데이터와 공감형 대화 데이터를 사용했는가?
  • 사용자의 감정 이해와 출력 음성의 감정을 어떻게 평가했는가?

1. 연구 목표

강력한 공감형 Speech Language Model 상당수는 폐쇄형이며, 일부 공개 모델도 가중치만 제공하고 학습 데이터나 pre-training 코드는 공개하지 않는다. 또한 기존 Speech LLM은 음성의 텍스트 의미는 잘 처리해도 감정, 말투, 억양과 같은 준언어적 단서를 실제 응답 생성에 충분히 반영하지 못하는 경우가 있다.

OpenS2S는 비교적 적은 데이터와 계산량으로 공감형 S2S 모델을 구축하고, 데이터부터 모델 학습 코드까지 전체 pipeline을 공개하는 것을 목표로 한다.


2. 모델 구조

OpenS2S는 네 개의 주요 모듈로 구성된다.

모듈사용 모델역할
Audio EncoderQwen2-Audio Encoder입력 음성의 의미 및 음향 정보 추출
LLMQwen3-8B-Instruct사용자 음성을 이해하고 응답 내용 생성
Streaming Speech DecoderQwen3-1.8B 기반LLM hidden state를 speech token으로 변환
Token2Wav DecoderGLM-4-Voice 기반Speech token을 streaming waveform으로 변환

Audio Encoder

Qwen2-Audio Encoder가 입력 waveform을 25Hz의 continuous representation으로 변환한다. 이후 두 개의 CNN layer로 구성된 Speech Adapter가 sequence length를 4배 줄여 6.25Hz 표현을 만든다.

이 표현은 LLM이 처리할 수 있는 입력 embedding으로 사용된다.

중요한 점은 OpenS2S가 별도의 emotion encoder나 prosody encoder를 새로 추가하지 않았다는 것이다. 감정을 다루는 핵심은 특수한 구조보다는 이후의 Emotional Alignment 학습에 있다.

즉, Qwen2-Audio Encoder가 추출한 범용 음성 표현 중 감정과 관련된 정보를 Speech Adapter가 LLM에 전달할 수 있도록 학습한다.

LLM

Qwen3-8B-Instruct는 Audio Encoder가 만든 speech representation과 text instruction을 입력받아 응답 내용을 생성한다.

LLM의 final hidden state는 최종 waveform 자체가 아니라, 이후 Speech Decoder가 “무엇을 말해야 하는지” 판단하기 위한 조건으로 사용된다.

Streaming Speech Decoder

Speech tokenizer는 Whisper-large-v3 Encoder에 quantization module을 추가한 구조이며, GLM-4-Voice의 pretrained tokenizer를 사용한다.

  • Token rate: 12.5Hz
  • Vocabulary size: 16,384
  • Decoder initialization: Qwen3-1.8B

Speech Decoder는 LLM hidden state 4개를 소비할 때마다 speech token 8개를 생성한다.

LLM hidden states 4개
→ speech tokens 8개
→ 다음 hidden states 4개
→ 다음 speech tokens 8개

이는 text와 audio 정보를 하나의 token으로 합친다는 뜻이 아니라, LLM representation을 일정한 간격으로 읽으면서 speech token을 생성한다는 의미이다.

Speech token은 supervised ASR encoder 기반의 semantic token이므로 발음과 언어적 내용을 강하게 표현할 것으로 예상된다. 감정과 억양 정보도 일부 포함될 수 있지만, 논문에는 speech token 안에 semantic, speaker, emotion 정보가 각각 얼마나 포함되는지 분석한 probing 실험은 없다.

Token2Wav Decoder

생성된 speech token은 chunk-aware causal flow matching model을 통해 mel-spectrogram으로 변환되고, HiFi-GAN vocoder를 거쳐 waveform이 된다.

두 모듈 모두 GLM-4-Voice의 pretrained component를 사용한다.


3. 학습 방법

OpenS2S는 다음 세 단계로 학습된다.

Stage 1. Speech Understanding Pre-training
Stage 2. Speech Generation Pre-training
Stage 3. Empathetic Speech Instruction Tuning

Understanding과 Generation을 분리한 이유는 두 문제가 서로 반대 방향의 mapping이기 때문이다.

Speech Understanding:
사용자 음성 → LLM이 이해할 수 있는 표현

Speech Generation:
LLM 표현 → 응답 음성

완전한 공감형 S2S 대화 데이터는 부족하지만 ASR, SER, TTS 데이터는 상대적으로 풍부하다. 따라서 각 능력을 별도 데이터로 먼저 학습하고, 마지막 instruction tuning에서 하나의 S2S 모델로 연결한다.


3.1 Speech Understanding Pre-training

Semantic Alignment

의미 이해에는 다음 ASR 데이터를 사용한다.

  • LibriSpeech
  • CommonVoice 13.0
  • GigaSpeech M subset
  • WeNetSpeech

영어 약 190만 speech-text pair와 비슷한 규모의 중국어 데이터를 사용한다.

먼저 transcript를 입력받은 LLM이 continuation을 생성한다. 이후 같은 문장의 실제 음성을 입력해도 동일한 continuation을 생성하도록 Speech Adapter를 학습한다.

Transcript → LLM → target continuation

Speech → Audio Encoder → Adapter → LLM
       → 같은 continuation

Audio embedding과 text embedding을 직접 동일하게 만드는 것이 아니라, 두 입력에 대해 LLM이 같은 행동을 하도록 맞추기 때문에 저자들은 이를 behavioral alignment로 설명한다.

Emotional Alignment

감정 학습에는 다음 SER 데이터셋을 사용한다.

  • IEMOCAP
  • MELD
  • CMU-MOSEI
  • MEAD
  • ESD

영어와 중국어를 합쳐 약 7만 utterance이다.

먼저 LLM에 transcript와 정답 emotion label을 함께 입력하여 emotion-aware continuation을 생성한다. 이후 실제 speech만 입력해도 같은 continuation을 생성하도록 Speech Adapter를 학습한다.

Transcript + emotion label
→ LLM
→ emotion-aware continuation

Speech only
→ Audio Encoder
→ Speech Adapter
→ LLM
→ 같은 continuation

이 방식은 단순한 SER classification과 다르다.

일반 SER:
Speech → sad

OpenS2S Emotional Alignment:
Speech → 감정 이해 → 감정이 반영된 언어적 continuation

이 단계에서는 Audio Encoder와 LLM을 고정하고 Speech Adapter만 학습한다.

다만 서로 다른 SER 데이터셋의 감정 label을 어떻게 통합했는지는 논문과 공식 repository에 명확한 mapping table이 없다. OpenS2S가 BLSP-Emo의 학습 방식을 기반으로 한다고 설명하지만, IEMOCAP, MELD, CMU-MOSEI, MEAD, ESD의 원래 label이 최종적으로 어떤 공통 label로 변환되었는지 추가적인 확인이 필요할 것 같다.

또한 감정과 발화 내용이 강하게 연관된 샘플에서는 모델이 실제 억양이 아니라 transcript의 의미만으로 감정을 추론할 수 있다. 같은 문장을 여러 감정으로 발화한 controlled evaluation이나 prosody ablation이 없어, acoustic emotion 정보의 순수한 기여도 역시 궁금한 부분이다.


3.2 Speech Generation Pre-training

Speech Generation에는 Emilia에서 추출한 다음 데이터를 사용한다.

  • 영어 5,000시간
  • 중국어 5,000시간

먼저 Qwen3-1.8B 기반 Speech Decoder가 text를 입력받아 speech token을 생성하도록 offline TTS 학습을 수행한다.

그다음 영어와 중국어 각각 1,000시간을 이용해 LLM hidden state와 Speech Decoder를 연결하고 streaming interleaved generation을 학습한다.

Stage 2의 학습 대상은 다음과 같다.

단계FrozenTrainable
Offline TTS조건에 따라 다름Speech Decoder
Streaming 연결LLMLinear Projection, Speech Decoder

3.3 Empathetic Speech Instruction Tuning

Stage 2까지만 학습한 모델은 명시적인 TTS instruction에서는 speech token을 생성하지만, 일반적인 음성 대화 instruction에는 안정적으로 응답하지 못했다.

이를 해결하기 위해 마지막 단계에서는 공감형 Speech-to-Speech instruction data로 모델을 fine-tuning한다.

  • Audio Encoder: Frozen
  • Speech Adapter: Trainable
  • LLM: Trainable
  • Linear Projection: Trainable
  • Speech Decoder: Trainable

Speech-to-Speech 데이터만 학습하면 text input에 대한 speech generation이 약해졌기 때문에 Text-to-Speech instruction data도 함께 사용한다.


4. 공감형 데이터 자동 구축

개인적으로 이 논문의 가장 큰 기여는 모델 구조보다 공감형 Speech-to-Speech 데이터를 자동으로 구축한 pipeline이라고 생각한다.

Seed audio 준비

여러 SER 데이터셋에서 영어 1,000개와 중국어 1,000개의 seed audio를 선정하고 다음 정보를 수동으로 라벨링한다.

  • Transcript
  • Emotion
  • Gender
  • Age

사용자 발화 생성

Qwen3-32B-Instruct가 emotion, gender, age 등의 조건과 관련된 사용자 문장을 생성한다.

예를 들어 Age: Elderly 조건에 대해 다음과 같은 문장을 만들 수 있다.

Do you think I can run a marathon?

이후 elderly로 라벨링된 seed audio를 CosyVoice2의 reference로 사용해 새로운 사용자 음성을 합성한다.

CosyVoice2가 숫자로 된 age condition을 직접 제어하는 것은 아니다. 해당 연령대의 reference voice를 선택해 나이와 화자 특성을 간접적으로 반영한다.

이 과정으로 영어와 중국어 각각 50,000개의 사용자 음성을 생성한다.

공감적 응답 생성

Qwen3-32B-Instruct에 다음 정보를 제공한다.

사용자 transcript
사용자 emotion
사용자 gender
사용자 age

LLM은 다음 두 가지를 생성한다.

  1. 짧고 대화에 적합한 공감적 응답
  2. 그 응답을 전달하기에 적절한 response emotion

이후 CosyVoice2가 response text를 해당 emotion으로 합성한다.

사용자 감정과 응답 감정을 단순히 동일하게 맞추지 않는다는 점이 중요하다.

User angry
→ Assistant neutral / apologetic / concerned

User sad
→ Assistant concerned / gentle / hopeful

최종 데이터 규모는 다음과 같다.

  • 공감형 S2S: 영어 50k + 중국어 50k
  • 일반 instruction S2S: 영어·중국어 총 100k

사용자 음성에는 다양한 speaker, age, gender, emotion이 포함되지만, assistant response는 young female voice로 고정하고 emotion만 변화시킨다.

공식 데이터는 Hugging Face에 공개되어 있으며, query와 response audio를 개별 row로 계산한 Dataset Viewer에는 약 392,000개의 audio row가 표시된다.


5. 평가

Speech-to-Text 평가

일반적인 spoken instruction-following 능력은 VoiceBench로 평가한다.

  • alpacaeval
  • commoneval
  • ifeval
  • wildvoice

감정 이해는 URO-Bench의 다음 subset을 사용한다.

  • UnderEmotion-en
  • UnderEmotion-zh

OpenS2S의 결과는 다음과 같다.

OpenS2S는 일반적인 instruction-following에서 비슷한 규모의 공개 모델과 경쟁력 있는 결과를 보이지만, UnderEmotion에서는 Kimi-Audio와 GLM-4-Voice보다 낮다.

UnderEmotion의 실제 평가 대상

UnderEmotion-en은 137개, UnderEmotion-zh는 79개의 샘플로 구성된다. 사용자 음성의 감정을 이해하고 공감적 응답 내용을 생성했는지를 평가한다.

응답 음성은 먼저 ASR로 전사되고, GPT Judge가 다음 정보를 사용해 1~5점으로 평가한다.

사용자 발화 transcript
사용자의 정답 emotion
모델 응답 transcript
추천 응답

따라서 OpenS2S의 UnderEmotion 결과는 사용자 감정 이해와 response content의 적절성을 보여주지만, 생성된 응답 음성 자체의 감정 표현력을 보여주는 결과는 아니라고 생각이 든다.


6. 정리

OpenS2S에서 준언어적 정보를 처리하는 핵심은 새로운 emotion-specific architecture가 아니라 다음 두 가지다.

  1. SER 데이터를 이용해 speech가 emotion-aware continuation을 생성하도록 정렬하는 Emotional Alignment
  2. LLM과 controllable TTS를 이용한 공감형 Speech-to-Speech instruction data 구축

모델 자체는 Qwen2-Audio, Qwen3, GLM-4-Voice, CosyVoice2 등 기존 공개 모듈을 조합한다. 차별점은 이 모듈들을 연결하는 multi-stage training recipe와 자동 데이터 구축 pipeline에 있다.

UnderEmotion 데이터셋의 경우에는 모델 응답 음성의 tone이 아니라 ASR transcript의 공감 적절성을 평가하는 것 같긴한데, 실제로 다운받아 테스트하면서 더 파악해볼 필요가 있을 것 같다.

profile
AI 😎

0개의 댓글