Audio-028, Raon-Speech Technical Report, Preprint 2026
◼ Comment
- 이 논문은 인터리빙 스타일로(SpeechChat) 학습된 KRAFTON에서 나온 논문이다.
- 모델 초기
- Qwen3-VL-8B-Instruct을 베이스로 한다
- 신기한건, instrcut 모델에 한국어-영어 pretraining을 하고, post-training을 한다는 점이다.
- 모델은 Raon-Speech와 Raon-SpeechChat이 있는데, 이 둘에 사용된 모듈이 다르다.
- Raon-Speech
- 오디오 입력은 continuous embedding을 받는다
- pretrained AuT 모델로 초기화한 speech encoder을 사용한다.
- 여기에 2-layer MLP layer 태워서 text embedding가 차원맞춰서 입력으로 넣음
- 오디오 출력은 Mimi codec이 사용된다.
- Mimi codec은 원래 RVQ기반이고 32개의 residual codebook을 사용하지만, 여기서는 앞의 16개만 사용한다고 함
- 모델은 1개의 semantic token을 예측하고, 이후 depth transformer에서 acoustic token 15개를 예측하는것
- LLM hidden state -> speech generation expert (SGE) -> semantic token c1
- SGE는 4-layer의 Transformer 형태임
- semantic token c1 -> RCP -> acoustic token 15개 예측
- c1 -> RCP -> acoustic token c2
- c1, c2 -> RCP -> acoustic token c3
- 이런식으로 순차적 예측
- RCP는 5-layer Transformer로 Residual하게 작동하는것
- 화자 컨트롤하기 위해, LLM 입력 시퀀스에 목표 화자 음성을 인코딩을 넣고 이것을 따르게함
- Raon-Speech 학습
- 세가지 학습 단계로 구성됨
- 1. 음성 이해 정렬
- backbone LLM 고정. 즉 Qwen3-VL-Instruct는 고정함
- 즉 학습되는 모듈은
- 학습:
- Speech input adaptor
- 고정:
- Backbone LLM
- Speech encoder
- Speech codec
- Speaker encoder
- Speech output adaptor
- Speech generation expert
- Residual code predictor
- 영어/한국어 STT, SpeechQA, SpokenQA 데이터로만 학습 (+데이터 증강)
- 데이터 증강은 모시 방법을 따라한건데
- noise 일부 추가
- 원본 음성: "오늘 날씨 알려줘"
- 추가 잡음: 자동차 소리, 사람 말소리, 카페 소음, 바람 소리
- 합성 잔향
- 원본: "안녕하세요"
- 잔향 적용: "안녕하세요...요...요..."
- 채널 왜곡
- 좋은 마이크로 녹음한 음성
- → 전화 통화처럼 답답한 음성
- → 저가형 마이크처럼 특정 주파수가 강조된 음성
- 대역폭 열화
- 고음질 음성
- → 전화 음질
- → 저품질 압축 음성
- 2. 음성 생성 정렬
- Backbone LLM과 speech codec 모두 고정하고, output adaptor, speech generation expert, residual code predictor만 학습
- 학습 데이터는 TTS
- 3. 지식 증류 학습
- speech encoder, speech codec, speaker encoder 제외하고 (이건 제외하는게 실험적으로 더 좋았다) 모든 파라미터 학습
- 학습 파라미터
- Backbone LLM
- Speech input adaptor
- Speech output adaptor
- Speech generation expert
- Residual code predictor
- STT, TTS, SpeechQA, SpokenQA, TextQA 모두 사용
- 로스는 총 2개
- 해당 데이터로 SFT 방식으로 학습하는 CE loss가 하나
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- 정답쪽에서 knowledge distillation loss가 하나
- SpeechQA
- SpokenQA
- TextQA
- knowledge distillation 할때 입력이 아래 2가지의 경우가 있음
- 1. 오디오 입력인 경우
- self-distillation 으로 본인을 teacher로 사용
- 대신 입력을 텍스트 스크립트로 바꿔서 텍스트 표현과의 정렬을 명시적으로 유도
- 2. 텍스트 입력이 경우
- 원래 backbone LLM (Qwen3-VL-Instruct) 모델을 teacher 로 사용
- 4. 선호도 최적화
- 모든 파라미터 학습? 모름
- SFT loss
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- 선호도 학습
- STT, SpeechQA, SpokenQA, TextQA로 학습
- 선호도 데이터 구성은 offline, online 방식으로 구성
- SimPO 기법으로 학습
- Raon-SpeechChat
- Raon-Speech는 SpeechX처럼 LALM 백본인거고, 이제 여기서 duplex을 위한 학습이 들어감
- 먼저 AuT은 casual 인코더가 아니라, casual encoder인 Voxtral-Mini-4B-Realtime-2602으로 바꿔서 학습을 한다.
- 모델은 Voxtral continuous embedding을 모르기 때문에 당연히 이 부분에 대한 재학습이 이뤄져야함 (백본부터 왜 이걸 선택을 했는지는 모름)
- Raon-SpeechChat 입력
- 어시스턴트 텍스트, 음성이 같은 수로 pair가 안되기 때문에 PAD로 시관적 일관성 유지
- assistant가 silent listening을 명시적으로 나타내기위해 SIL 토큰 도입
- Text lookahead을 통해 어시스턴트 음성보다 텍스트가 먼저 생성되게함
- Raon-SpeechChat 학습
- 1. Causal Raon-Speech
- 여기서는 인코더를 교체한것을 적응시키는 단계임
- 원래는 음성을 AuT 모델로 인코딩을 했는데 Voxtral-Mini-4B-Realtime-2602로 바꿔서 인코딩하도록 바꿈
- Causal alignment
- 음성 이해 정렬: STT, SpeechQA, SpokenQA
- 음성 생성 정렬: TTS
- 이걸로 alignment 학습
- Causal full training
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- CE loss로 학습
- 전체 모듈을 학습하는 듯? (명시 안됨)
- 2. Full-duplex pre-training
- 여기서부터 그림3처럼 인터리빙대로 학습하는 듯
- 텍스트를 먼저 한스텝 나오게 함 (모시나 그런데서도 쓰는 방법)
- 시퀀스 입력에 아래 입력들이 들어감
- 스트리밍 사용자 음성
- 어시스턴트 텍스트
- 어시스턴트 음성
- SIL
- BOW
- PAD
- 기존 Raon-speech 사전학습 데이터의 10%을 사용
- 그외 학습 데이터는 pre, fine 학습 다포함한것으로 아래처럼 나와있음 (자세히는 안나와있는듯)
- 실제 대화 13.21K시간
- 자연스러운 턴테이킹
- 머뭇거림과 필러
- 음성 중첩
- 다양한 녹음 조건
- 합성 대화 106.33K시간
- 기존 SpeechLM 데이터를 대화 형태로 재구성한 데이터
- 새로 만든 상호작용 시나리오 데이터
- 일반 대화
- 회의 대화
- 전화 대화
- 오픈 도메인 대화
- 안전 관련 대화
- 갑작스러운 주제 전환
- 이전 주제로 다시 돌아오는 멀티턴 대화
- 모듈 전체가 학습되는거겠지? (안나와있음)
- 학습 중 PAD 토큰과 SIL 토큰의 손실 가중치는 각각 0.75와 0.5로 설정한다.
- 3. Full-duplex fine-tuning
- 3.1 고품질 대화 데이터세트로 모델을 학습함
- 3.2 합성 데이터와 특정 시나리오 특화된 데이터로 학습함
- 여기가 페르소나 기반 대화, 안전 응답, 자기 수정 패턴, 사용자 인터럽션, 백채널 변형 등 여러가지를 커버하는 듯함
- 모듈 전체가 학습되는거겠지? (안나와있음)
- 그리고 여기서 BC 토큰이 학습되는데, 백채널링을 말하는 토큰임
- BC 토큰은 BOW 토큰으로 초기화되고 여기에 가중치 50배 걸려서 CE loss로 학습됨
- BC와 BOW의 차이는
- BOW가 기본적으로 assistant가 응답시작한다는 것을 표시하는 토큰인데
- BOW→“네”
- BOW→“그 문제는 다음과 같이 해결할 수 있습니다”
- 이런식으로 "네"와 같이 백채널로 말해야하는 경우와, 진짜 대답하는 경우와 같은 BOW 토큰으로 사용되는걸 구분하겠다는 것
- 따라서 아래처럼 데이터를 바꿔서 학습
- 기존: 사용자 발화 중→BOW→“네”→SIL
- 변환: 사용자 발화 중→BC→“네”→SIL
QA 입/출력 예시
Abstract
본 논문에서는 영어 및 한국어 음성의 이해, 질의응답, 생성을 위한 최고 수준의 90억 파라미터 음성 언어 모델(Speech Language Model; SpeechLM)인 Raon-Speech와, 자연스러운 실시간 대화를 지원하는 고성능 풀듀플렉스 확장 모델 Raon-SpeechChat을 제안한다. Raon-Speech는 사전학습된 대규모 언어 모델(LLM)의 강력한 텍스트 능력을 유지하면서, 음성을 이해하고 생성할 수 있는 SpeechLM으로 성공적으로 확장한다.
Raon-Speech는 엄선된 영어 및 한국어 음성·텍스트 데이터 138만 시간으로 학습되며, 다음의 세 단계 학습 과정을 거친다. (1) 음성 모듈 정렬, (2) 지식 증류를 활용한 엔드투엔드 SpeechLM 사전학습, (3) 다중 과업 선호도 최적화 기반 후속 학습. 영어 및 한국어 음성과 텍스트를 포함하는 42개 벤치마크에서, Raon-Speech는 Qwen2.5-Omni와 Fun-Audio-Chat을 비롯한 최근의 유사 규모 오디오 파운데이션 모델 8개와 비교했을 때 음성 중심 과업에서 가장 강력한 종합 성능을 보였으며, 동시에 우수한 텍스트 질의응답 성능을 유지하였다.
이를 기반으로 한 Raon-SpeechChat은 시간 정렬된 실제 및 합성 대화 데이터 11만 9천 시간을 이용한 지속 학습을 통해 자연스러운 풀듀플렉스 대화를 지원한다. 학습은 다음의 상호보완적인 세 단계로 구성된다. (1) 인과적 인코더 적응, (2) 풀듀플렉스 사전학습, (3) 음성 및 역할 제어를 위한 풀듀플렉스 미세조정. 여러 풀듀플렉스 벤치마크에서 Raon-SpeechChat은 FDB v1.0이 평가하는 턴테이킹 및 사용자 끼어들기에 민감한 행동에서 가장 뚜렷한 강점을 보였으며, 더 광범위한 풀듀플렉스 평가에서도 경쟁력 있는 성능을 유지하였다. 저자들은 모든 모델 체크포인트, 학습 및 추론 파이프라인, 그리고 인터랙티브 데모를 오픈소스로 공개한다.
1. 서론
음성은 인간의 인지에서 중심적인 역할을 한다(Hickok, 2012). 인간은 구어를 통해 주변 환경을 인식하고, 의도를 표현하며, 실시간으로 서로 상호작용한다. 이러한 과정은 복잡하고 역동적이며 사회적으로 풍부한 체계를 형성한다. 음성의 중요성은 차량 내 음성 비서와 게임 플레이 에이전트부터 음성 기반 로봇 제어 및 컴퓨터 사용에 이르기까지 현대 컴퓨팅에서도 점차 두드러지고 있다(Arora et al., 2025; Clark et al., 2019). 이에 따라 보다 인간다운 의사소통을 지원하는 상호작용형 음성-언어 시스템을 개발하려는 관심이 커지고 있다. 텍스트와 달리 음성은 언어적 내용뿐만 아니라 자연스러운 상호작용에 필수적인 운율, 타이밍, 턴테이킹 단서까지 전달한다.
음성 언어 모델(Speech Language Models; SpeechLMs)은 이러한 목표를 달성하기 위한 가장 유망한 접근법으로 부상하고 있다. 대규모 언어 모델(LLMs)의 강력한 언어 능력을 음성 모달리티로 확장함으로써, SpeechLM은 자연스럽고 고품질의 음성 상호작용을 가능하게 한다(Défossez et al., 2024; Goel et al., 2025; Tongyi, 2025). 그러나 현재 모델과 실제 배포 사이에는 여전히 격차가 존재한다. 100억 개 미만의 파라미터를 갖는 경량 모델은 영어를 넘어선 다국어 환경에서 고품질 음성 상호작용을 제공하는 데 여전히 어려움을 겪고 있으며, full-duplex 모델 또한 시간적 인식과 상호작용의 자연스러움 측면에서 한계를 보인다. 특히 동적인 게임과 같이 섬세한 실시간 의사소통이 필요한 환경에서는 이러한 문제가 더욱 두드러진다(Chang et al., 2025). 실제 배포를 위해서는 낮은 지연시간, 강건한 인터럽션 처리, 일관된 턴테이킹 역시 필요하지만, 이들 모두는 현재 SpeechLM에서 여전히 해결하기 어려운 과제이다.
본 논문에서는 영어와 한국어의 음성 이해, 질의응답, 생성을 지원하는 90억 파라미터 규모의 SpeechLM인 Raon-Speech와, 자연스러운 실시간 대화를 위해 이를 full-duplex 상호작용으로 확장한 Raon-SpeechChat을 제안한다.
- Raon-Speech는 사전학습된 LLM 백본에 음성 이해 및 생성 모듈을 추가하고, 단계적인 학습 방법을 통해 새로운 음성 모달리티 능력을 습득하면서도 백본의 기존 텍스트 성능을 보존한다.
- Raon-SpeechChat은 실시간으로 동시에 듣고 말하기 위해 다음의 세 가지 상호보완적인 변경을 추가한다.
- (1) 스트리밍 입력을 위한 causal encoder,
- (2) 사용자 음성, 어시스턴트 텍스트, 어시스턴트 음성을 단어 단위로 정렬한 token-level interleaved sequence,
- (3) 언제 말할지와 무엇을 말할지를 분리하는 상태 모델링이다. 이를 통해 상호작용의 타이밍과 행동을 제어할 수 있다.
영어와 한국어의 음성 및 텍스트 벤치마크 42개에 걸친 광범위한 실험에서, Raon-Speech는 유사한 규모의 최신 오디오 파운데이션 모델 8개와 비교했을 때 가장 강력한 음성 중심 성능을 보였다.
영어에서는 spoken question answering, speech understanding, 생성 음성의 명료도에서 특히 뚜렷한 향상을 보였다.
- 구체적으로 VoiceBench 평균에서 가장 높은 점수를 기록했고, MMAU와 MMAU-Pro에서 최고 성능을 달성했으며, LibriSpeech(Panayotov et al., 2015)와 Seed-TTS-Eval(Anastassiou et al., 2024)에서 가장 낮은 WER을 기록했다. 또한 강한 텍스트 능력을 유지하여 MMLU-Pro(Wang et al., 2024b)와 MMLU-Redux에서 최고 성능을 달성했다.
한국어에서는 향상이 더 광범위하고 두드러졌다.
- Raon-Speech는 모든 ASR 및 음성 생성 벤치마크에서 가장 낮은 CER을 기록했으며, KVoiceBench, KOpenAudioBench, KMMAU에서 최고 성능을 달성했다. 또한 KMMLU-Pro와 KMMLU-Redux에서도 최고 성능을 기록했다. 가독성을 위해 본문의 주요 결과 표에서는 VoiceBench/OpenAudioBench 및 KVoiceBench/KOpenAudioBench의 집계 점수를 제시하며, 부록 E에서는 벤치마크별 spoken question answering 세부 결과를 제공한다. Raon-SpeechChat은 FDB v1.0에서 다루는 턴테이킹 및 인터럽션 민감 행동에서 가장 강한 전반적 성능을 보였으며, 더 폭넓은 full-duplex 평가에서도 중첩 음성 상황에 대해 경쟁력 있는 성능을 유지했다.
본 논문의 기여는 다음과 같다.
90억 파라미터 규모의 SpeechLM인 Raon-Speech를 제안하고, 영어와 한국어의 음성 및 텍스트 벤치마크 42개에서 유사한 규모의 최신 오디오 파운데이션 모델 8개와 비교했을 때 가장 강력한 음성 중심 성능을 보였음을 확인한다.
게임과 같은 다양한 어려운 환경에서 자연스러운 실시간 대화를 가능하게 하는 full-duplex 모델 Raon-SpeechChat을 제안한다.
한국어 음성과 문화에 맞게 설계된 세 가지 한국어 음성 벤치마크인 KVoiceBench, KOpenAudioBench, KMMAU를 공개한다.
모든 모델 체크포인트, 추론 파이프라인, 대화형 데모를 오픈소스로 공개한다.
2. 모델 아키텍처
2.1. Raon-Speech
Figure 2는 사전학습된 백본 LLM을 확장하여 음성 이해와 음성 생성을 모두 지원하도록 한 Raon-Speech의 전체 아키텍처를 보여준다.
강력한 다국어 텍스트 능력을 활용하기 위해 백본 LLM으로 Qwen3-VL-8B-Instruct(Bai et al., 2025)를 사용한다. 음성 이해 모듈은 speech encoder와 input adaptor로 구성되며, 음성 생성 모듈은 output adaptor, speech generation expert, residual code predictor(RCP), speaker encoder로 구성된다. Raon-Speech의 모듈별 파라미터 구성은 Appendix B의 Table 7에 제시하며, 세부 아키텍처 설정은 Appendix C의 Table 8에 제시한다.
음성 이해 모듈.
먼저, 강력한 다국어 음성 표현을 활용하기 위해 사전학습된 AuT 모델(Shi et al., 2026)로 초기화한 speech encoder가 입력 음성으로부터 12.5 Hz의 토큰 비율로 특징을 추출한다. 이후 Liu et al. (2023)을 따라 GELU 활성화 함수를 사용하는 2-layer MLP로 구현된, 무작위 초기화된 input adaptor가 encoder 출력을 LLM의 embedding 공간으로 투영한다.
변환된 speech embedding은 LLM의 입력 시퀀스에 삽입되며, 이를 통해 백본은 텍스트에 사용하던 것과 동일한 인터페이스로 음성을 처리할 수 있다. 이러한 설계는 백본이 사전학습된 언어 능력을 재사용하도록 하면서, 음성에 특화된 특징 추출은 encoder와 adaptor에 맡긴다. 음성과 텍스트 표현 간의 정렬을 안정화하기 위해 adaptor 뒤에 RMSNorm(Zhang and Sennrich, 2019)을 적용하고, 그 가중치를 0.02의 작은 값으로 설정한다. 이를 통해 초기화 시 speech embedding의 norm이 LLM embedding의 norm과 유사한 수준이 되도록 한다.
- 음성 "오늘 날씨 어때?"가 들어오면
- Speech Encoder로 이걸 embedding으로 바꿈
- 여기에 Adaptor (2-layer MLP layer)을 태워서 텍스트 임베딩 차원으로 보내서 입력 넣음
- Encoder은 freeze하는게 낫다고 뒤에서 나오고, Adaptor은 학습되는 것
- 즉 오디오 이해에서는 continuous embedding을 쓰는 개념
음성 생성 모듈.
스트리밍 생성을 위해 설계된 RVQ 기반 neural speech codec(Défossez et al., 2022; Zeghidour et al., 2021)인 Mimi codec(Défossez et al., 2024)을 사용한다. Mimi는 32개의 residual codebook을 사용하지만, 실시간 환경에서 효율성과 생성 품질의 균형을 맞추기 위해 그중 앞의 16개만 사용한다.
각 생성 단계에서 Raon-Speech는 총 16개의 codec token을 예측한다. 첫 번째 residual depth에서는 semantic token 1개를 예측하고, 이후 15개 depth에서는 acoustic token 15개를 예측한다. Input adaptor와 동일한 구조를 공유하며 무작위 초기화된 output adaptor는 이전 단계의 codec embedding을 백본 LLM의 입력 공간으로 변환한다.
그 결과로 얻은 백본 hidden state를 바탕으로, 백본보다 작은 hidden size를 갖는 무작위 초기화된 4-layer decoder-only Transformer 기반 speech generation expert가 semantic token을 예측한다. 이후 Qwen3-Omni-30B-A3B-Instruct(Xu et al., 2025)로 초기화된 15-depth RCP가 수렴을 가속하기 위해 사용되며, 나머지 acoustic token들을 residual depth에 따라 순차적으로 예측한다.
- LLM은 오디오 토큰을 생성함 (Mimi codec, 16개)
- 이거를 Mimi decoder가 음성을 생성함
- 16개 오디오 토큰중, 1번째꺼가 semantic token임
- LLM hidden state → Speech Generation Expert → semantic token
- Speech Generation Expert은 별도의 Transformer이고 아래처럼 동작
- LLM hidden state → projector → 4-layer decoder-only Transformer → audio LM head → semantic-codebook vocabulary logits → semantic token
- semantic token → RCP → acoustic token 15개
- 그 다음 semantic token을 입력으로 받아 RCP 모듈이 나머지 acoustic token 15개 생성함 (아래처럼)
- Speech Generation Expert → semantic token c1
- c1의 embedding → RCP → acoustic token c2
- c1, c2의 누적 embedding → RCP → acoustic token c3
화자 정체성을 제어하기 위해, speechbrain/spkrec-ecapa-voxceleb(Dawalatabad et al., 2021; Desplanques et al., 2020)로 초기화한 speaker encoder로부터 추출한 speaker embedding을 조건으로 사용한다. 구체적으로, 목표 음성에서 임의의 구간을 추출해 인코딩한 뒤 LLM 입력 시퀀스에 삽입한다. 이 구간의 길이는 Raon-Speech에서는 2초에서 8초 사이이며, Raon-SpeechChat에서는 10초이다. 이를 통해 생성 음성이 목표 화자의 정체성을 따르도록 한다.
- 화자 컨트롤하는 부분도 있군?
- user의 입력은 speech 음성이니, 이거를 continuous embedding으로 만들어서 들어가는 것이고
- assistant은 mimi codec token 16개 생성하는데, 이를 다 더해서 하나의 codec embedding 만들고, output adaptor 태워서 입력 embedding 만들어서 다음 입력으로 들어감
- Output Adaptor 또한 학습되는 개념
- 사용자에겐 codec embedding ->mimi decoder 태워서 음성 들려줌
2.2. Raon-SpeechChat
Raon-Speech를 실시간 full-duplex 대화로 확장하기 위해 적용한 아키텍처 및 시퀀스 수준의 변경 사항을 설명한다. Figure 3은 Raon-SpeechChat에서 사용하는 token sequence interleaving 방식을 보여준다.
- Raon-Speech는 그냥 speechx처럼 LALM 백본이라고 생각하면 되는듯
- 여기에 full-duplex 방식으로 학습한게 SpeechChat
동시에 듣고 말하는 기능을 지원하려면, 모델은 사용자 음성을 스트리밍으로 처리하는 동시에 어시스턴트 음성을 병렬로 생성할 수 있어야 한다. 이를 위해 다음 세 가지 변경을 도입한다.
스트리밍 입력을 위한 causal speech encoder
사용자 음성, 어시스턴트 텍스트, 어시스턴트 음성을 포함하는 token-sequence interleaving
언제 말할지와 무엇을 말할지를 분리하여 상호작용의 타이밍과 행동을 제어할 수 있도록 하는 명시적 interaction-state modeling
Raon-SpeechChat의 모듈별 파라미터 구성은 Appendix B의 Table 7에 제시하며, 세부 아키텍처 설정은 Appendix C의 Table 8에 제시한다.
- 백본은 Qwen3-VL-8B-Instruct이고, 구조는 일반적인 decoder-only Transformer야.
Causal speech encoder
Raon-Speech를 기반으로, 기존의 non-causal AuT encoder를 Voxtral-Mini-4B-Realtime-2602(Liu et al., 2026)의 causal speech encoder로 교체한다. 이 encoder는 causal attention을 사용하며, 본래부터 스트리밍 동작을 위해 설계되었다. 따라서 미래 문맥을 사용하지 않고도 사용자 음성을 처리할 수 있다.
또한 sliding-window attention과 결합함으로써, attention 범위를 고정된 window로 제한하여 긴 음성 스트림도 효율적으로 처리할 수 있다. 이를 통해 지연시간을 제어하면서 연속적인 음성 전사가 가능해진다. 기존 non-causal encoder를 causal encoder로 원활하게 교체하기 위해 별도의 재적응 학습 단계를 도입하며, 이에 대한 자세한 내용은 Section 3에서 설명한다.
- 즉 백본 Raon-Speech 학습때와 SpeechChat 학습때 쓰이는 인코더가 다르다는 것인데, 굳이 왜 그랬지?
- SpeechChat이 목적이면, causal 통일하는게 낫지 않나?
Full-duplex sequence design
동시에 듣고 말하는 상황을 모델링하기 위해, Raon-SpeechChat은 사용자 음성, 어시스턴트 텍스트, 어시스턴트 음성을 하나의 autoregressive sequence 안에 interleave하여 학습한다. 이는 Moshi(Défossez et al., 2024)처럼 여러 stream을 병렬로 모델링하는 방식과 다르다.
사용자 음성 stream은 지속적으로 인코딩되어 backbone에 입력되며, 어시스턴트 측의 텍스트와 음성 token은 하나의 autoregressive sequence 안에서 interleave된다. 어시스턴트 텍스트와 어시스턴트 음성은 단어 단위로 정렬되며, 텍스트 token 수가 음성 token 수보다 적을 경우에는 PAD token을 사용하여 시간적 일관성을 유지한다.
이러한 설계를 통해 음성 인식, 언어 계획, 음성 생성을 하나의 통합된 token-level 모델링 프레임워크 안에서 처리할 수 있다.
State modeling
어시스턴트의 대화 행동은 listening과 speaking의 두 상태로 모델링하며, 각 frame에서 예측되는 special token을 통해 두 상태 사이의 전환을 제어한다.
Moshi에서는 silence와 그 밖의 non-text 위치를 모두 하나의 PAD token으로 표현한다. 반면 Raon-SpeechChat은 silent listening 행동을 명시적으로 나타내기 위해 별도의 silence token인 SIL을 도입한다.
Listening 상태에서:
SIL을 예측하면 어시스턴트는 계속 침묵한 채 듣는다.speech-onset token을 예측하면 speaking 상태로 전환한다.
상호작용 타이밍과 내용 생성을 더욱 명확히 분리하기 위해, 각 어시스턴트 text token 바로 앞에 출력되는 special token인 BOW(beginning of word)를 도입한다.
BOW는 단어의 의미 자체를 담는 token이 아니다.- 대신 모델이 새로운 단어를 말하기 시작하려 한다는 것을 나타낸다.
- 즉, 말할지를 결정하는 과정과 무엇을 말할지를 결정하는 과정의 경계를 표시한다.
- 이후에 생성되는 assistant text token이 실제 응답 내용을 표현한다.
이 설계는 상호작용 행동과 언어적 내용을 분리하여, 모델이 언제 말할지와 무엇을 말할지를 서로 다른 token 유형을 통해 학습하도록 한다.
Speaking 상태에 들어간 뒤에는 SIL을 예측할 때까지 assistant text와 assistant speech를 계속 생성한다. SIL이 예측되면 다시 listening 상태로 돌아간다.
마지막으로, backchannel을 표현하기 위해 BOW를 재사용하지 않고 별도의 BC token을 사용한다. 이를 통해 짧은 listener response와 일반적인 발화 시작을 학습 과정에서 더 명확히 구분할 수 있다.
또한 추론 시에는 다음과 같은 backchannel 제어가 가능하다.
backchannel을 완전히 비활성화
backchannel 생성 빈도 조절
- Frame 1 입력: [user speech at t0] [initial assistant text/state] [initial assistant speech]
- LLM 출력: SIL at t1
- SGE 출력: Mimi codec at t0 → assistant speech at t0로 변환
- Frame 2 입력: [user speech at t1] [SIL at t1] [assistant speech at t0]
- LLM 출력: BOW at t2
- SGE 출력: Mimi codec at t1 → assistant speech at t1로 변환
- Frame 3 입력: [user speech at t2] [BOW at t2] [assistant speech at t1]
- LLM 출력: 실제 text token at t3
- SGE 출력: Mimi codec at t2 → assistant speech at t2로 변환
- Frame 4 입력: [user speech at t3] [text token at t3] [assistant speech at t2]
- LLM 출력: 다음 text token at t4
- SGE 출력: Mimi codec at t3 → assistant speech at t3로 변환
- Frame 5 입력: [user speech at t4] [text token at t4] [assistant speech at t3]
- LLM 출력: PAD at t5
- SGE 출력: Mimi codec at t4 → assistant speech at t4로 변환
- Frame 6 입력: [user speech at t5] [PAD at t5] [assistant speech at t4]
- LLM 출력: PAD at t6
- SGE 출력: Mimi codec at t5 → assistant speech at t5로 변환
- Frame 7 입력: [user speech at t6] [PAD at t6] [assistant speech at t5]
- LLM 출력: BOW at t7
- SGE 출력: Mimi codec at t6 → assistant speech at t6로 변환
- 즉 SIL, PAD는 다음 입력으로 안들어가는 구조
Text lookahead
음성 생성의 안정성과 정확성을 높이기 위해, 어시스턴트가 발화를 시작한 뒤에는 텍스트가 음성보다 먼저 생성되도록 text lookahead를 도입한다.
이를 통해 계속 변화하는 언어 계획과 실제로 생성되는 음성 token 사이의 semantic drift를 줄일 수 있으며, 이후 음성 생성을 위한 더 안정적인 텍스트 목표를 제공할 수 있다.
Text lookahead는 특히 매우 낮은 지연시간 조건에서 음성을 점진적으로 생성해야 하는 full-duplex 환경에서 중요하다.
3. 학습
3.1. Raon-Speech
Raon-Speech의 학습은 세 단계로 구성된다. 첫째, 음성 모듈 정렬, 둘째, 지식 증류를 활용한 end-to-end SpeechLM 사전학습, 셋째, 선호도 기반 후학습이다.
이 과정에서의 목표는 두 가지이다.
- 첫째, backbone LLM에 음성 이해 및 음성 생성 능력을 부여하는 것이고,
- 둘째, 음성 적응 과정에서도 기존 텍스트 능력을 보존하는 것이다.
학습 과업은 음성-텍스트 변환(STT), 텍스트-음성 변환(TTS), 음성 질의응답(SpeechQA), 구어 질의응답(SpokenQA), 텍스트 질의응답(TextQA)을 포함한다. 각 과업의 정의와 대표적인 입출력 예시는 표 1에 제시하며, 학습 단계별 하이퍼파라미터는 표 2에 요약한다.
- 즉 STT, TTS, SpeechQA, SpokenQA, TextQA 데이터로 학습하는 것이고,
- SFT 식으로 응답쪽에만 loss가 걸리는 식
- 학습은 Full-finetuning은 아닌거 같고, 아래보면 순차적 학습이 이뤄짐
정렬 단계
이 단계에서는 backbone LLM을 고정하고, 새롭게 추가된 음성 이해 및 음성 생성 모듈만 학습한다. 이는 멀티모달 LLM 정렬에서 일반적으로 사용되는 방식이다. 목적은 backbone 자체를 업데이트하기 전에 새 음성 모듈의 표현을 backbone의 임베딩 공간에 정렬하는 것이다.
이 단계와 이후의 모든 Raon-Speech 학습 단계에서 입력 오디오는 8초 단위로 분할한 뒤 토큰 시퀀스로 변환한다.
음성 이해 정렬
음성 인코더와 다른 모든 모듈은 고정하고, 입력 어댑터만 학습한다. 학습 데이터는 영어 및 한국어 STT, SpeechQA, SpokenQA 샘플로 구성된다.
실제 환경의 다양한 음향 조건에 대한 강건성을 향상하기 위해, Moshi를 따라 사용자 음성 입력에 온라인 오디오 증강을 적용한다. 구체적으로 다음과 같은 증강을 사용한다.
여러 코퍼스에서 샘플링한 잡음을 (-30)dB에서 (6)dB 사이의 SNR로 추가
합성 잔향 적용
응답 필터링을 이용한 채널 왜곡 시뮬레이션
대역폭 열화
학습은 global batch size 128, packed sequence length 24,576으로 13,500 iteration 동안 수행한다. AdamW optimizer와 cosine learning-rate schedule을 사용하며, 최대 learning rate는 (1.5\times10^{-4}), 최소 learning rate는 (1.5\times10^{-5}), warmup은 950 step이다.
음성 생성 정렬
Backbone LLM과 speech codec을 모두 고정하고, output adaptor, speech generation expert, residual code predictor(RCP)를 포함하는 음성 생성 모듈만 학습한다. 학습 데이터는 영어 및 한국어 TTS 데이터로 구성된다.
Speaker embedding은 dropout rate 0.2로 사용한다. 학습은 global batch size 64, packed sequence length 8,192로 65,500 iteration 동안 수행한다. AdamW optimizer와 cosine learning-rate schedule을 사용하며, 최대 learning rate는 (1\times10^{-4}), 최소 learning rate는 (1\times10^{-5}), warmup은 6,550 step이다.
지식 증류를 활용한 end-to-end 사전학습
이 단계의 목적은 backbone LLM과 음성 모듈을 공동으로 학습하여 음성 이해 및 생성 성능을 향상하는 동시에, 기존 텍스트 능력을 보존하는 것이다.
학습에는 다음의 다섯 과업을 모두 사용한다.
STT
TTS
SpeechQA
SpokenQA
TextQA
이 가운데 TextQA는 backbone LLM의 기존 텍스트 능력 망각을 완화하기 위해 포함한다. TextQA의 정답 응답은 원래 backbone LLM이 생성하며, 이를 통해 backbone의 기존 출력 분포와 일관성을 유지한다.
Speech encoder, speech codec, speaker encoder를 제외한 모든 모듈을 학습한다. 저자들은 이러한 인코더 측 모듈을 함께 미세조정하는 것보다 고정하는 것이 더 나은 성능과 안정적인 최적화를 제공한다는 것을 확인했다.
학습은 global batch size 112, packed sequence length 8,192로 60,000 iteration 동안 수행한다. AdamW optimizer와 cosine learning-rate schedule을 사용하며, 최대 learning rate는 (1.2\times10^{-5}), 최소 learning rate는 (1\times10^{-7}), warmup은 4,000 step이다.
학습 목적함수는 cross-entropy loss와 knowledge distillation loss의 가중합으로 구성하며, 두 손실에 동일한 가중치를 부여한다. SFT는 다섯 과업 모두에 적용하고, 지식 증류는 SpeechQA, SpokenQA, TextQA에 적용한다.
지식 증류에는 입력 모달리티에 따라 서로 다른 두 teacher를 사용한다.
오디오 입력: 동일한 모델에 대응되는 텍스트 transcript를 조건으로 제공한 self-distillation teacher를 사용한다. 이를 통해 음성과 텍스트 표현의 정렬을 명시적으로 유도한다.
텍스트 입력: 사전학습 이전의 원래 backbone LLM을 teacher로 사용한다. 이를 통해 catastrophic forgetting을 완화한다.
이 두 teacher를 함께 사용함으로써 모델은 강한 텍스트 성능을 유지하면서, 해당 능력을 오디오 입력으로 더욱 효과적으로 전이한다.
KL loss는 student가 직접 생성한 trajectory를 기반으로 하는 on-policy 방식으로 계산한다. 저자들은 이 방식이 새로운 음성 능력을 습득하고 backbone의 기존 텍스트 지식 망각을 줄이는 데 효과적임을 확인했다.
선호도 최적화를 활용한 후학습
모델의 품질과 활용성을 더욱 향상하기 위해, 엄선한 고품질 데이터에 대한 SFT와 선호도 최적화를 결합한 후학습을 수행한다.
계산량과 메모리 효율을 높이기 위해 별도의 reference policy가 필요하지 않은 단순화된 선호도 최적화 방법인 SimPO를 사용한다. SFT는 모든 과업에 적용하며, 선호도 최적화는 STT, SpeechQA, SpokenQA, TextQA에 적용한다.
학습은 global batch size 96, packed sequence length 8,192로 800 iteration 동안 수행한다. 최대 learning rate (1\times10^{-6})의 constant learning-rate schedule을 사용하며, warmup은 112 step이다.
선호도 데이터는 offline 방식과 online 방식을 모두 사용하여 구축한다.
Offline 데이터: 반복적인 출력을 억제하도록 설계된 chosen-rejected prompt-response pair를 직접 구성한다.
Online 데이터: SFT 데이터셋의 응답을 chosen response로 사용하고, 동일한 prompt에 대해 현재 모델이 생성한 응답을 rejected response 후보로 사용한다.
생성된 응답을 실제 rejected sample로 사용할지는 과업별 reward function으로 ground truth와 비교하여 결정한다. 가능한 경우 결정론적 verifier를 사용하고, 그렇지 않은 경우 LLM judge를 사용한다.
Judge가 모델의 생성 응답을 ground truth보다 더 높게 평가하면 해당 pair는 학습 데이터에서 제외한다. 선호도 최적화 이후 반복적인 출력이 일관되게 감소하고, 여러 과업에서 reward score가 향상되는 것을 확인했다.
먼저 백본인 Raon Speech 학습하는 과정을 보자
- 세가지 학습 단계로 구성됨
- 1. 음성 이해 정렬
- backbone LLM 고정. 즉 Qwen3-VL-Instruct는 고정함
- 즉 학습되는 모듈은
- 학습:
- Speech input adaptor
- 고정:
- Backbone LLM
- Speech encoder
- Speech codec
- Speaker encoder
- Speech output adaptor
- Speech generation expert
- Residual code predictor
- 영어/한국어 STT, SpeechQA, SpokenQA 데이터로만 학습 (+데이터 증강)
- 데이터 증강은 모시 방법을 따라한건데
- noise 일부 추가
- 원본 음성: "오늘 날씨 알려줘"
- 추가 잡음: 자동차 소리, 사람 말소리, 카페 소음, 바람 소리
- 합성 잔향
- 원본: "안녕하세요"
- 잔향 적용: "안녕하세요...요...요..."
- 채널 왜곡
- 좋은 마이크로 녹음한 음성
- → 전화 통화처럼 답답한 음성
- → 저가형 마이크처럼 특정 주파수가 강조된 음성
- 대역폭 열화
- 고음질 음성
- → 전화 음질
- → 저품질 압축 음성
- 2. 음성 생성 정렬
- Backbone LLM과 speech codec 모두 고정하고, output adaptor, speech generation expert, residual code predictor만 학습
- 학습 데이터는 TTS
- 3. 지식 증류 학습
- speech encoder, speech codec, speaker encoder 제외하고 (이건 제외하는게 실험적으로 더 좋았다) 모든 파라미터 학습
- 학습 파라미터
- Backbone LLM
- Speech input adaptor
- Speech output adaptor
- Speech generation expert
- Residual code predictor
- STT, TTS, SpeechQA, SpokenQA, TextQA 모두 사용
- 로스는 총 2개
- 해당 데이터로 SFT 방식으로 학습하는 CE loss가 하나
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- 정답쪽에서 knowledge distillation loss가 하나
- SpeechQA
- SpokenQA
- TextQA
- knowledge distillation 할때 입력이 아래 2가지의 경우가 있음
- 1. 오디오 입력인 경우
- self-distillation 으로 본인을 teacher로 사용
- 대신 입력을 텍스트 스크립트로 바꿔서 텍스트 표현과의 정렬을 명시적으로 유도
- 2. 텍스트 입력이 경우
- 원래 backbone LLM (Qwen3-VL-Instruct) 모델을 teacher 로 사용
- 4. 선호도 최적화
- 모든 파라미터 학습?
- SFT loss
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- 선호도 학습
- STT, SpeechQA, SpokenQA, TextQA로 학습
- 선호도 데이터 구성은 offline, online 방식으로 구성
- SimPO 기법으로 학습
3.2. Raon-SpeechChat
본 절에서는 실시간 전이중 상호작용을 지원하도록 Raon-Speech를 Raon-SpeechChat으로 확장하는 방법을 설명한다. 학습 과정은 인과적 Raon-Speech 적응, 전이중 사전학습, 전이중 미세조정의 세 단계로 구성된다. 각 단계에 사용된 최적화 설정도 함께 정리한다.
인과적 Raon-Speech 적응
먼저 Raon-Speech의 기존 음성 인코더를 인과적 음성 인코더로 교체하고, 짧은 적응 학습을 수행하여 인과적 Raon-Speech 초기 모델을 구축한다. 이 단계는 이후 전이중 학습 단계를 안정적으로 시작하기 위한 초기화 모델을 제공한다. 이 단계에서는 교차 엔트로피 손실만 사용한다.
음성 인코더와 음성 코덱은 각각 고유한 슬라이딩 윈도우 설정으로 동작하며, 청크 크기는 각각 30초와 12초이다. 학습에는 Raon-Speech와 마찬가지로 두 단계 전략을 사용하되, 학습 스텝 수는 비교적 작게 설정한다.
정렬 단계에서는 AdamW 옵티마이저를 사용하며, 최대 학습률은 (1.5 \times 10^{-4}), 최소 학습률은 (1.5 \times 10^{-5})이다. 학습률은 코사인 방식으로 감소하며, 700스텝의 워밍업을 적용한다. 총 10,000스텝 동안 학습하며, 전역 배치 크기는 128이다. 시퀀스 패킹을 적용한 최대 시퀀스 길이는 12,288이고, 오디오 길이는 최대 30초로 제한한다.
전체 학습 단계에서는 학습률을 (2 \times 10^{-6})으로 낮추고, 최대 시퀀스 길이를 8,192로 줄인다. 전역 배치 크기는 160으로 늘리고, 학습 데이터의 범위도 확장한다. 학습 스텝 수는 동일하게 10,000스텝으로 유지한다.
전이중 사전학습
인과적 적응 이후에는 대규모 전이중 인터리브 데이터에 대해 전이중 사전학습을 수행한다. 이를 통해 모델은 동시 듣기와 말하기에 필요한 시퀀스 패턴뿐만 아니라, 폭넓은 대화 행동에도 노출된다.
이 단계에서는 음성 모듈이 고정된 길이의 학습 청크를 처리하는 대신, 각 모듈의 고유한 슬라이딩 윈도우 설정을 사용하여 전체 오디오 스트림을 처리한다. 이를 통해 전이중 환경에서 연속적인 대화 흐름과 상호작용 동역학을 학습할 수 있다.
또한 이 단계에서는 한 프레임의 텍스트 룩어헤드를 적용한다. 즉, 음성 의미 토큰은 한 프레임 앞서 생성된 텍스트를 조건으로 예측된다. 이와 함께 학습 데이터를 확장하여 더 다양한 실시간 대화 패턴을 포함한다.
Raon-Speech로부터 물려받은 능력을 보존하고 망각을 줄이기 위해, 기존 Raon-Speech 사전학습 데이터의 10%를 전이중 데이터와 함께 혼합한다.
최적화에는 AdamW를 사용하며, 최대 학습률은 (5 \times 10^{-6}), 최소 학습률은 (5 \times 10^{-7})이다. 학습률은 코사인 방식으로 감소하고, 전체 학습의 5%를 워밍업에 사용한다. 총 25,000회 반복 학습하며, 전역 배치 크기는 128이다. 최대 시퀀스 길이는 4,096으로, 약 2분 길이의 오디오에 해당하며 시퀀스 패킹을 사용한다.
학습 중 PAD 토큰과 SIL 토큰의 손실 가중치는 각각 0.75와 0.5로 설정한다.
전이중 미세조정
마지막으로 모델을 실시간 대화 상황에 점진적으로 적응시키기 위해 두 단계의 미세조정을 수행한다.
- 첫 번째 단계에서는 고품질 대화 데이터셋을 사용하여 모델을 미세조정한다. 이를 통해 정확한 턴테이킹, 자연스러운 응답 시점, 유창한 음성 생성을 포함하는 안정적인 전이중 상호작용 패턴을 학습한다.
- 두 번째 단계에서는 합성 데이터와 특정 시나리오에 특화된 데이터로 학습을 전환한다. 이 데이터는 다양한 페르소나 기반 대화, 안전 응답, 자기 수정 패턴, 사용자 인터럽션, 백채널 변형 등 더 폭넓은 상황을 포함한다.
또한 PersonaPlex를 따라 페르소나 또는 대화 문맥을 시스템 프롬프트로 제공한다. 두 미세조정 단계에서 어시스턴트의 페르소나를 안정적으로 유지하기 위해, 합성 데이터 생성 시 화자 정체성을 고정한다.
백채널을 모델링하기 위해 BOW 토큰을 BC 토큰으로 대체하고, BC 임베딩은 BOW 임베딩으로 초기화한다. 또한 라벨 불균형을 완화하기 위해 BC 토큰에 대한 교차 엔트로피 손실 가중치를 50배로 증가시킨다.
각 단계는 AdamW를 사용하여 5,000회 반복 학습한다. 최대 학습률은 (3 \times 10^{-6}), 최소 학습률은 (3 \times 10^{-7})이며, 코사인 학습률 감소와 5% 워밍업을 적용한다. 전역 배치 크기는 64이고, 시퀀스 패킹을 적용한 최대 시퀀스 길이는 4,096이다. 미세조정 중 SIL 토큰의 손실 가중치는 0.25로 설정한다.
Raon-SpeechChat은 Raon-Speech에서 3가지 학습 단계를 더 거친다
- 1. Causal Raon-Speech
- 여기서는 인코더를 교체한것을 적응시키는 단계임
- 원래는 음성을 AuT 모델로 인코딩을 했는데 Voxtral-Mini-4B-Realtime-2602로 바꿔서 인코딩하도록 바꿈
- Causal alignment
- 음성 이해 정렬: STT, SpeechQA, SpokenQA
- 음성 생성 정렬: TTS
- 이걸로 alignment 학습
- Causal full training
- STT
- TTS
- SpeechQA
- SpokenQA
- TextQA
- CE loss로 학습
- 전체 모듈을 학습하는 듯? (명시 안됨)
- 2. Full-duplex pre-training
- 여기서부터 그림3처럼 인터리빙대로 학습하는 듯
- 텍스트를 먼저 한스텝 나오게 함 (모시나 그런데서도 쓰는 방법)
- 시퀀스 입력에 아래 입력들이 들어감
- 스트리밍 사용자 음성
- 어시스턴트 텍스트
- 어시스턴트 음성
- SIL
- BOW
- PAD
- 기존 Raon-speech 사전학습 데이터의 10%을 사용
- 그외 학습 데이터는 pre, fine 학습 다포함한것으로 아래처럼 나와있음 (자세히는 안나와있는듯)
- 실제 대화 13.21K시간
- 자연스러운 턴테이킹
- 머뭇거림과 필러
- 음성 중첩
- 다양한 녹음 조건
-
합성 대화 106.33K시간
- 기존 SpeechLM 데이터를 대화 형태로 재구성한 데이터
- 새로 만든 상호작용 시나리오 데이터
- 일반 대화
- 회의 대화
- 전화 대화
- 오픈 도메인 대화
- 안전 관련 대화
- 갑작스러운 주제 전환
- 이전 주제로 다시 돌아오는 멀티턴 대화
- 모듈 전체가 학습되는거겠지? (안나와있음)
- 학습 중 PAD 토큰과 SIL 토큰의 손실 가중치는 각각 0.75와 0.5로 설정한다.
- 3. Full-duplex fine-tuning
- 3.1 고품질 대화 데이터세트로 모델을 학습함
- 3.2 합성 데이터와 특정 시나리오 특화된 데이터로 학습함
- 여기가 페르소나 기반 대화, 안전 응답, 자기 수정 패턴, 사용자 인터럽션, 백채널 변형 등 여러가지를 커버하는 듯함
- 모듈 전체가 학습되는거겠지? (안나와있음)
- 그리고 여기서 BC 토큰이 학습되는데, 백채널링을 말하는 토큰임
- BC 토큰은 BOW 토큰으로 초기화되고 여기에 가중치 50배 걸려서 CE loss로 학습됨
- BC와 BOW의 차이는
- BOW가 기본적으로 assistant가 응답시작한다는 것을 표시하는 토큰인데
- BOW→“네”
- BOW→“그 문제는 다음과 같이 해결할 수 있습니다”
- 이런식으로 "네"와 같이 백채널로 말해야하는 경우와, 진짜 대답하는 경우와 같은 BOW 토큰으로 사용되는걸 구분하겠다는 것
- 따라서 아래처럼 데이터를 바꿔서 학습
- 기존: 사용자 발화 중→BOW→“네”→SIL
- 변환: 사용자 발화 중→BC→“네”→SIL
4. 데이터
그림 4는 Raon-Speech와 Raon-SpeechChat을 위한 데이터 구축 파이프라인의 전체 개요를 보여준다.
학습 데이터는 여러 출처에서 수집되며, 영어 및 한국어 음성과 텍스트 데이터셋 총 138만 시간으로 구성된다.
포괄적인 오디오–텍스트 데이터 구축 파이프라인을 통해 고품질 음성 사전학습 및 후속학습 데이터셋을 구축한다. 또한 정밀한 전이중 데이터 구축 파이프라인을 통해 전이중 사전학습 및 미세조정 데이터셋을 구성한다. 토큰 수를 포함한 보다 자세한 데이터 통계는 표 3에 제시한다.
4.1. SpeechLM 데이터 구축
데이터 출처
대규모 오디오–텍스트 데이터셋을 구축하는 것은 고품질의 쌍을 이룬 데이터가 제한적이기 때문에 어렵다. 이를 해결하기 위해, 오디오–텍스트 쌍 데이터뿐만 아니라 풍부한 오디오 단독 데이터와 텍스트 단독 데이터도 활용하여 데이터셋을 확장한다. 이러한 데이터는 서로 쌍을 이루고 있지 않으므로, 오디오 데이터에는 공개 STT 모델을 사용하고 텍스트 데이터에는 TTS 모델을 사용하여 각각 부족한 모달리티를 생성한다.
또한 원래의 성능을 보존하고 추론 능력을 더욱 향상하기 위해, 텍스트 이해 과제를 위한 텍스트 단독 데이터셋도 포함한다. 구체적으로 각 데이터 유형은 다음과 같이 구성된다.
오디오–텍스트 데이터: 영어와 한국어의 공개 데이터 및 사내 데이터베이스에서 수집한 오디오–텍스트 쌍을 사용한다. 전사문이 있는 샘플은 서로 다른 파이프라인을 통해 STT와 TTS 형식으로 각각 구축한다. 또한 전사문과 오디오 메타데이터를 LLM에 제공하여 SpeechQA와 같은 다양한 과제별 데이터를 생성한다.
오디오 단독 데이터: 공개 코퍼스와 웹에서 수집한, 전사문이 없는 음성 데이터를 사용한다. Whisper와 같은 STT 모델을 이용해 의사 전사문을 생성하고, 이렇게 얻은 음성–텍스트 쌍을 STT 및 SpeechQA 과제에 포함한다.
텍스트 단독 데이터: 독해, 상식 추론, 명령어 수행 코퍼스를 사용한다. 이 데이터는 TextQA 학습 데이터로 직접 사용하거나, Qwen3-TTS를 포함한 TTS 모델로 질문 또는 문맥을 음성으로 합성하여 SpeechQA 데이터셋으로 변환한다.
데이터 전처리
학습 데이터의 품질을 높이기 위해 데이터셋을 필터링하고, 정규화하고, 재라벨링하고, 재균형화하는 전처리 방법을 설계한다.
수집된 데이터에는 여러 원인에서 비롯된 품질 문제가 존재한다. 오디오 샘플에는 심한 잡음이 포함되는 경우가 많고, 텍스트 샘플은 지나치게 비격식적이거나 실제 음성 상황과 잘 맞지 않을 수 있다. 이러한 문제는 합성 데이터에서 더욱 심해진다. STT 모델이 생성한 전사문과 TTS 모델이 합성한 음성이 항상 정확한 것은 아니며, 자동으로 생성된 전사문이 추가적인 잡음을 유발할 수 있기 때문이다.
샘플 단위의 품질 문제뿐 아니라, 전체 데이터셋의 분포도 주제나 내용 측면에서 편향되거나 불균형할 수 있다. 이러한 문제를 해결하기 위해 다음 전략을 적용한다.
정규화: 주로 STT와 TTS 과제에 적용한다. 신경망 기반 구두점 및 대소문자 복원 모델을 사용해 구두점과 대문자 표기를 복원한다. 중복 전사문, 특수 기호, 잡음 표기, 반복 표기는 규칙 기반 정규화를 통해 추가로 정제한다.
필터링: 음성과 전사문이 불일치하는 샘플, 저품질 오디오, 저품질 QA 쌍, 목표 언어가 아닌 샘플을 제거한다. 오디오 데이터에는 STT 기반 오류율 필터링, 강제 정렬 검증, 지각적 오디오 품질 점수를 적용한다. LLM이 생성한 출력에서는 반복적이거나 퇴화된 응답을 탐지하여 제거한다.
재라벨링: 품질이 낮은 전사문은 Whisper를 사용해 다시 전사하고, QA 정답은 LLM을 이용해 수정하거나 다시 생성한다.
재균형화: 오디오 도메인, 과제 유형, QA 형식 등 여러 축을 기준으로 데이터셋 구성을 제어하여, 모든 범주에서 능력이 균형 있게 학습되도록 한다.
4.2. Full-Duplex Data Curation
데이터 출처
대규모의 시간 정렬된 실제 대화 데이터가 부족하기 때문에, 전이중 데이터셋을 구축하는 것은 어렵다. 이러한 한계를 해결하기 위해 실제 환경에서 수집한 전이중 대화와 합성 전이중 대화를 함께 사용하여 학습한다. 실제 대화는 자연스럽게 발생하는 상호작용 패턴과 다양한 음향 조건을 제공하며, 합성 대화는 다양한 시나리오를 대규모로 확장하고 백채널, 발화 중첩, 인터럽션과 같은 상호작용 이벤트의 위치를 제어할 수 있게 한다. 합성 데이터는 공개 LLM과 음성 기반 모델을 사용하는 별도의 파이프라인을 통해 생성되며, 이 파이프라인은 전사문과 자연스러운 타이밍 정보를 함께 생성한다.
실제 대화: 다양한 공개 코퍼스와 사내 데이터 소스에서 수집한 총 13.21K시간의 대화 음성을 사용한다. 이 데이터에는 다양한 녹음 조건에서 자연스럽게 발생하는 턴테이킹, 비유창성, 필러 발화, 발화 중첩이 포함된다.
합성 대화: 다단계 파이프라인을 통해 총 106.33K시간의 대화 음성을 생성한다. 합성 데이터는 다음 두 종류로 구성된다.
모델이 기존에 학습한 지식을 보존하기 위해 SpeechLM 데이터를 재구성한 샘플
목표 상호작용 시나리오에 맞게 새롭게 구축한 데이터
갑작스러운 주제 전환에 대한 강건성을 높이기 위해, 별도의 사전 문맥 없이 시작되는 멀티턴 대화와 중간에 다른 대화가 진행된 뒤 이전 주제로 다시 돌아오는 예시도 포함한다. 구축된 데이터는 시나리오 기반 대화, 오픈 도메인 대화, 안전이 중요한 상호작용, 일반 목적 대화 등 다양한 범주를 포함한다.
데이터 전처리
실제 대화와 합성 대화로부터 전이중 학습 데이터를 구축하기 위해 다단계 데이터 구축 과정을 적용한다. 이 과정은 다음 단계로 구성된다.
시나리오 기반 대화 생성
화자 분할
단어 단위 정렬
품질 필터링
각 구성 요소는 데이터 유형과 개별 샘플의 특성에 따라 선택적으로 적용된다. 이를 통해 데이터의 신뢰도를 높이고 정확한 시간 정렬을 확보한다.
구체적으로 대화 생성은 다양한 상호작용 시나리오를 포함할 수 있게 하고, 화자 분할은 화자 단위의 음성 분리를 개선한다. 단어 정렬은 오디오와 텍스트 사이의 시간적 일관성을 높이며, 필터링은 전체 데이터 품질을 추가로 개선한다. 각 단계의 세부 내용은 다음과 같다.
대화 생성: 서로 다른 문맥에서 다양한 상호작용 패턴을 만들기 위해 과업 지향 시나리오와 음성 게임 시나리오를 설계하고, 이를 조건으로 LLM을 사용해 대화를 생성한다. 이후 생성된 대화는 TTS 모델을 이용해 음성으로 합성한다.
각 발화에는 다음과 같은 대화 역할을 주석으로 부여한다.
일반 발화
백채널
인터럽션
동시 발화
또한 규칙 기반 방법과 타이밍 예측 모델을 함께 사용하여 백채널, 인터럽션, 발화 중첩과 같은 상호작용 이벤트의 발생 시점을 추가로 조정한다. 전이중 합성 데이터 구축에 관한 자세한 구현은 부록 D에 제시한다.
화자 분할: 실제 데이터셋의 대부분이 단일 채널로 구성되어 있으므로, 화자 분할을 수행하고 발화가 중첩된 구간에서 목표 화자의 음성을 추출한다.
단어 정렬: 강제 정렬 모델을 사용하여 시간 정보가 포함된 전사문을 얻는다. 정답 텍스트가 존재하는 경우에는 이를 입력으로 사용하고, 그렇지 않은 경우에는 자동으로 생성된 전사문을 사용한다.
필터링: 백채널 위치가 잘못 정렬된 샘플이나 TTS 합성에 실패한 샘플을 제거한다. 이러한 샘플을 제거하기 위해 규칙 기반 필터링과 STT 기반 필터링을 함께 적용한다. 예를 들어 전사문 길이에 비해 오디오가 지나치게 긴 샘플이나, 백채널이 대응하는 상대 발화와 실제로 중첩되지 않은 샘플을 제거한다.
또한 클러스터링을 통해 중복 샘플을 식별하고 제거하여 데이터의 중복성을 줄인다.
5. 평가
최근 음성 기반 파운데이션 모델들과 비교하여 Raon-Speech와 Raon-SpeechChat을 종합적으로 평가한다. Raon-Speech는 자동 음성 인식(ASR), 음성 생성, 음성 질의응답, 음성 이해, 텍스트 질의응답을 아우르는 영어 및 한국어 벤치마크에서 평가한다. Raon-SpeechChat은 영어 전이중 대화 벤치마크에서 평가한다.
5.1. Raon-Speech
비교 모델
Raon-Speech는 최근 공개된 유사한 규모의 오디오 파운데이션 모델 8개와 비교한다.
Qwen2.5-Omni
Kimi-Audio
Audio Flamingo 3
Step-Audio 2 mini
InteractiveOmni
Fun-Audio-Chat
HyperCLOVA X 8B Omni
MiniCPM-o 4.5
과제 및 평가 지표
Raon-Speech를 평가하기 위해 음성과 관련된 네 가지 과제와 텍스트 관련 한 가지 과제를 사용한다.
자동 음성 인식
다양한 음향 조건의 낭독 음성과 자발적 음성을 모두 포함하는 네 개의 ASR 벤치마크에서 평가한다.
영어 평가에는 다음 데이터셋을 사용한다.
LibriSpeech
FLEURS
한국어 평가에는 다음 데이터셋을 사용한다.
KSponSpeech
FLEURS
언어별 특성을 반영하기 위해 영어에는 단어 오류율(WER)을, 한국어에는 문자 오류율(CER)을 보고한다. 두 지표 모두 값이 낮을수록 성능이 우수하다.
음성 생성
객관적 지표와 지각적 지표를 모두 사용하여 다섯 개의 벤치마크에서 음성 생성 품질을 평가한다.
영어에는 다음 벤치마크를 사용한다.
LibriSpeech test-clean
Seed
한국어에는 다음 벤치마크를 사용한다.
KSponSpeech clean
MiniMax
CV3-Eval
생성 음성의 명료도를 측정하기 위해 영어에는 WER, 한국어에는 CER을 보고한다. 생성된 음성은 영어의 경우 Whisper-large-v3로 전사하고, 한국어의 경우 Zipformer 기반의 사내 ASR 모델로 전사하여 오류율을 계산한다.
지각적 자연스러움은 UTMOSv2를 사용해 평가한다. WER과 CER은 낮을수록 좋고, UTMOS는 높을수록 좋다.
음성 질의응답
오디오 형태의 질문을 입력으로 제공하여 음성 질의응답 능력을 평가한다.
입력은 오디오고 출력은 텍스트인 형태의 테스트
영어에는 다음 벤치마크를 사용한다.
VoiceBench
Baichuan-Audio와 함께 제안된 OpenAudioBench
VoiceBench는 다음 벤치마크로 구성된다.
OpenBookQA
MMSU
Big-Bench-Hard(BBH)
SD-QA
AlpacaEval
CommonEval
WildVoice
IFEval
AdvBench
OpenAudioBench는 다음 벤치마크로 구성된다.
AlpacaEval
Llama Questions(LlamaQ)
TriviaQA
Web Questions(WebQ)
한국어 음성 질의응답을 위한 기존 벤치마크가 없기 때문에, 새로운 벤치마크인 KVoiceBench와 KOpenAudioBench를 구축한다.
구체적으로 VoiceBench와 OpenAudioBench의 모든 전사문을 한국어로 번역하고, 음성으로 자연스럽게 발화할 수 있는 텍스트 형태로 정규화한 뒤, Qwen3-TTS 시스템을 사용해 음성을 합성한다. 이 과정에서 대문자 표기나 일부 문법 규칙처럼 한국어에 그대로 적용하기 어려운 언어적 특성은 제거하거나 수정한다.
평가 지표는 문제 형식에 따라 다르게 적용한다.
OpenBookQA, MMSU, BBH와 같은 객관식 질문에는 정확도를 사용한다.
LlamaQ, TriviaQA, WebQ와 같은 단답형 질문에도 정확도를 사용한다.
AlpacaEval, CommonEval, WildVoice와 같은 개방형 질문은 GPT-5.4를 판정 모델로 사용하고, 100점 척도의 점수를 보고한다.
영어 평가에는 VoiceBench에서 제공하는 판정 프롬프트를 사용하고, 한국어 평가에는 이를 번역한 프롬프트를 사용한다.
IFEval에는 프롬프트 수준 정확도와 지시 수준 정확도의 평균을 사용하며, 각각은 엄격한 점수와 느슨한 점수의 평균으로 계산한다.
AdvBench에는 규칙 기반 문구 탐지를 통해 측정한 거부율을 사용한다.
가독성을 위해 본문의 영어 및 한국어 결과 표에는 VoiceBench/OpenAudioBench와 KVoiceBench/KOpenAudioBench의 집계 점수만 보고하고, 벤치마크별 상세 음성 질의응답 결과는 부록 E에 제시한다.
음성 이해
영어 음성 이해 평가에는 다음 벤치마크를 사용한다.
MMAU의 speech subset 중 test-mini split
MMAU-Pro
- MMAU는 단순히 음성에 담긴 문장을 이해하는 것뿐 아니라, 오디오 자체의 비언어적·음향적 정보까지 추론해야 하는 과제입니다.
- 예) “이 오디오에는 몇 명의 화자가 등장하는가?”
한국어 음성 이해를 위해 설계된 기존 벤치마크가 없기 때문에 새로운 벤치마크인 KMMAU를 구축한다.
KMMAU는 다음 세 개의 한국어 오디오 데이터셋에서 가져온 오디오, 메타데이터, 전사문을 사용해 구성한다.
KSS
KMSAV
Seoul Corpus
이러한 데이터로부터 다음 능력을 평가하는 질문을 생성한다.
화자 수 계산
성별 및 연령과 같은 화자 속성 인식
사실 추출
주제 이해
단어 수준 추론
요약 결과 표에서는 부록 F에 제시된 능력별 정확도의 평균을 KMMAU 점수로 보고한다. 상세한 능력별 결과는 한국어 음성 이해에서 어떤 능력이 이미 강하고 어떤 능력이 여전히 어려운지를 보여준다.
모든 음성 이해 벤치마크는 객관식 형식이므로 정확도를 평가 지표로 사용한다.
텍스트 질의응답
음성 모달리티 학습이 백본 LLM의 기존 능력에 파국적 망각을 일으키는지 확인하기 위해 텍스트 질의응답 과제도 함께 평가한다.
영어에는 다음 벤치마크를 사용한다.
MMLU-Pro
MMLU-Redux
한국어에는 다음 벤치마크를 사용한다.
KMMLU-Pro
KMMLU-Redux
모든 결과는 정확도로 보고한다.
결과
표 4와 표 5는 각각 Raon-Speech의 영어 및 한국어 벤치마크 결과를 보여준다. 집계 점수의 기반이 되는 벤치마크별 음성 질의응답 결과는 부록 E에 제시한다.
전체적으로 Raon-Speech는 주요 비교에서 가장 강한 음성 중심 성능을 보여준다.
영어에서는 특히 다음 영역에서 뚜렷한 성능 향상을 보인다.
음성 이해
음성 질의응답
생성 음성의 명료도
구체적으로 MMAU와 MMAU-Pro에서 가장 높은 점수를 기록하고, VoiceBench 평균에서도 최고 점수를 달성한다. 또한 영어 음성 생성 벤치마크에서 가장 낮은 WER을 기록하며, OpenAudioBench와 ASR에서도 경쟁력 있는 성능을 유지한다.
이러한 성능 향상은 텍스트 능력의 희생을 통해 얻어진 것이 아니다. Raon-Speech는 MMLU-Pro와 MMLU-Redux에서도 가장 높은 성능을 달성한다.
한국어에서는 성능 향상이 더 광범위하고 뚜렷하다. Raon-Speech는 다음 모든 항목에서 최고 성능을 달성한다.
세 개의 ASR 벤치마크 모두에서 가장 낮은 CER
세 개의 음성 생성 벤치마크 모두에서 가장 낮은 CER
KVoiceBench
KOpenAudioBench
KMMAU
KMMLU-Pro
KMMLU-Redux
부록의 상세 결과에서는 한국어 음성 질의응답 벤치마크 12개 중 10개에서 가장 높은 성능을 보인다.
종합하면, Raon-Speech의 가장 큰 성능 향상은 음성 중심 능력에서 나타난다. 특히 한국어 음성 지각, 음성 이해, 생성 음성의 명료도에서 강점을 보인다. 반면 UTMOS 결과에서 나타나듯이, 지각적 자연스러움은 일부 비교 모델이 상대적으로 더 강한 영역으로 남아 있다.
- 여기서 전반적으로 영어/한국어에 대해 ASR, TTS, Speech Understanding, Audio Understanding 평가를 진행함
- 한국어 데이터는 없는 부분은 합성하여 만들었다고함
- 영어 Spoken QA가 은근 많구만
5.2. Raon-SpeechChat
비교 모델
Raon-SpeechChat은 다음 전이중 음성 대화 모델들과 비교한다.
Moshi
Freeze-Omni
PersonaPlex
MiniCPM-o 4.5
이 정도가 오픈된 full-duplex 모델인가봄
전이중 음성 대화
Raon-SpeechChat은 Full-Duplex-Bench(FDB) v1.0, v1.5, v2.0에서 평가한다.
FDB v1.0과 v1.5의 경우 공식 벤치마크 세트를 사용하고, 내부 평가기를 통해 결과를 재현한다. 부록 G에서는 저자들이 사용한 오프라인 평가기와 공개된 FDB v1.0/v1.5 기준 스크립트 사이의 주요 차이를 정리한다.
FDB v1.0
FDB v1.0은 사전 녹음된 대화를 이용하여 네 가지 핵심 턴테이킹 행동을 평가한다.
Pause Handling: 동일 화자가 말하는 도중 발생한 짧은 쉼을 발화 종료로 잘못 판단하지 않고, 그 사이에 발화권을 가져가지 않는 능력을 평가한다.
Backchanneling: 발화권을 가져가지 않으면서 적절한 시점과 빈도로 짧은 맞장구를 생성하는 능력을 평가한다.
Smooth Turn-Taking: 사용자가 발화권을 넘긴 뒤 모델이 얼마나 자연스럽게 발화를 시작하는지 평가한다.
User Interruption: 사용자가 모델의 발화 중간에 끼어들었을 때, 모델이 발화를 멈추고 적절하게 반응하는지 평가한다.
Pause Handling과 Smooth Turn-Taking에는 CANDOR를 사용하고, Backchanneling에는 In-Conversation Corpus(ICC)를 사용한다. 통제된 Pause Handling과 interruption 상황에는 합성 데이터를 사용한다.
FDB v1.5
FDB v1.5는 오프라인 평가 방식을 유지하면서, 발화가 서로 겹치는 상황에 초점을 맞춘다.
User Backchannel: 사용자가 짧은 맞장구를 했을 때, 모델이 이를 인터럽션으로 잘못 해석하지 않고 자신의 응답을 계속하는 능력을 평가한다.
Background Speech: 주변의 관련 없는 음성을 무시하면서 답변을 계속할 수 있는지 평가한다.
Talking to Others: 자신에게 하는 말이 아닌 다른 사람에게 향한 발화를 무시하고 기존 상호작용을 유지하는지 평가한다.
User Interruption: 사용자가 모델에게 새로운 발화를 했을 때, 모델이 기존 응답을 멈추고 새 발화에 반응하는지 평가한다.
본문에서는 시나리오별 Resume 또는 Respond 비율과 Unknown 비율을 보고하며, 지연 시간에 관한 세부 결과는 부록 G에 제시한다.
FDB v2.0
FDB v2.0은 자동화된 examiner를 사용하는 멀티턴 평가 프레임워크이며, 네 가지 과제로 구성된다.
Daily: 일상적인 오픈 도메인 대화를 평가한다.
Correction: 후속 피드백이 주어졌을 때 모델이 이전 응답을 수정하거나 바로잡을 수 있는지 평가한다.
Entity Tracking: 여러 턴에 걸쳐 대화 상태를 유지하고 갱신할 수 있는지 평가한다.
Safety: 안전이 중요한 대화 제약을 따르는지 평가한다.
FDB v2.0은 다음 세 가지 지표를 보고한다.
Turn-Taking Fluency
Multi-Turn Instruction Following
Task-Specific Metric
마지막 지표는 각 과제 유형에서의 과업 수행 정도를 요약한다.
평가 지표
FDB의 각 버전에 따라 턴테이킹, 백채널, 과업 수행을 평가하는 서로 다른 지표를 사용한다.
FDB v1.0
Takeover Rate(TOR): 대화 중 모델이 발화권을 가져간 빈도를 나타낸다.
Pause Handling과 Backchanneling에서는 낮을수록 좋다.
Smooth Turn-Taking과 User Interruption에서는 높을수록 좋다.
Backchannel Frequency(Freq.): 모델이 발화권을 가져가지 않고 백채널을 생성한 빈도를 나타낸다.
Latency: 사용자 인터럽션 또는 사용자 발화 종료 이후 모델이 반응하기까지의 평균 시간을 의미한다.
Jensen-Shannon Divergence(JSD): 모델이 예측한 백채널 타이밍 분포와 사람의 백채널 타이밍 분포 사이의 차이를 측정한다.
Judge: 사용자 인터럽션에 대한 모델 응답의 관련성을 LLM 기반으로 평가한 점수이다.
FDB v1.5
User Backchannel, Background Speech, Talking to Others에서는 Resume 비율을 보고한다.
User Interruption에서는 Respond 비율을 보고한다.
모든 시나리오에서 Unknown 비율도 함께 보고한다.
공식 행동 주석에서는 발화 중첩이 시작된 뒤 유효한 후속 구간이 존재해야 하기 때문에 Unknown 항목이 포함된다.
FDB v2.0
Turn-Taking Fluency(TT Fluency): 턴테이킹 과정에서 응답이 얼마나 자연스럽고 적절한 시점에 발생하는지 측정한다.
Multi-Turn Instruction Following(IF): 여러 턴에 걸쳐 지시를 해석하고 수행하는 능력을 평가한다.
Task-Specific Metric(Task Metric): 전체 과업 수행 수준을 평가한다.
결과
표 6은 FDB v1.0, v1.5, v2.0에서 Raon-SpeechChat의 주요 결과를 제시한다.
부록 G에는 FDB v1.5의 시나리오별 지연 시간, 전체 행동 분포, 오프라인 평가기의 주요 차이가 제시된다.
전체적으로 Raon-SpeechChat은 인터럽션에 민감한 턴테이킹 행동과 발화 중첩 상황에서의 강건한 응답 처리에서 가장 뚜렷한 강점을 보인다.
FDB v1.0에서는 대부분의 지표에서 선도적인 성능을 보인다. 구체적으로 다음 항목에서 가장 좋은 성능을 기록한다.
Backchannel TOR
Backchannel Frequency
User Interruption TOR
Pause Handling과 Smooth Turn-Taking에서도 최고 수준에 근접한 성능을 보인다.
FDB v1.5에서는 다음 시나리오에서 경쟁력 있는 성능을 유지한다.
Background Speech
Talking to Others
User Interruption
특히 User Interruption에서는 가장 낮은 Unknown 비율을 기록하고, Background Speech와 Talking to Others에서는 두 번째로 낮은 Unknown 비율을 보인다. 다만 User Backchannel에서는 가장 강한 비교 모델보다 성능이 낮다.
FDB v2.0에서는 세 개의 세션 수준 지표 모두에서 Moshi와 Freeze-Omni보다 높은 성능을 보인다. 반면 장기적인 멀티턴 대화 설정에서는 PersonaPlex와 MiniCPM-o 4.5가 더 강한 성능을 보인다.
6. 관련 연구
음성 언어 모델
최근 몇 년간 음성 언어 모델(SpeechLM)은 빠르게 발전해 왔으며, 그 흐름은 크게 세 가지 방향으로 정리할 수 있다. 첫째, 음성 이해 중심 모델에서 음성 이해와 생성을 모두 지원하는 모델로의 전환이다. 둘째, 이미지, 비디오, 오디오, 텍스트를 아우르는 옴니모달 모델링으로의 확장이다. 셋째, 실시간 상호작용 능력과 더 폭넓은 언어 지원의 발전이다.
Qwen2-Audio는 다양한 오디오 과제를 공동 학습하여 음성 이해와 생성을 모두 지원한 초기의 대표적 모델이다. 이러한 방향은 이후 Qwen3-Omni, MiniCPM-o 4.5, InteractiveOmni와 같은 옴니모달 모델로 발전했으며, 이들 모델은 오디오와 텍스트를 넘어 이미지와 비디오까지 포함하는 멀티모달 추론과 대화를 지원한다.
오디오 중심 능력과 상호작용 품질 측면에서는 Kimi-Audio와 Audio Flamingo 3가 대규모 오디오–텍스트 사전학습을 통해 강한 성능을 보인다. Step-Audio 2 mini는 효율적인 음성 이해 능력을 개선하며, Fun-Audio-Chat은 자연스러운 멀티턴 음성 상호작용에 초점을 둔다.
이러한 발전에도 불구하고, 기존 모델 대부분은 영어와 중국어 같은 고자원 언어를 중심으로 개발되어 더 폭넓은 언어 환경에서의 활용에는 한계가 있다. HyperCLOVA X Omni와 같은 최근 연구가 한국어를 포함한 추가 언어를 지원하고 있지만, 여전히 상당한 성능 격차가 남아 있다.
전이중 모델
보다 자연스럽고 현실적인 음성 상호작용을 지원하기 위해, 기존 SpeechLM의 명시적인 턴테이킹 가정을 넘어 동시에 듣고 말할 수 있는 전이중 모델들이 제안되었다.
Moshi는 대표적인 초기 전이중 음성–텍스트 파운데이션 모델로, inner monologue 메커니즘을 도입하여 명시적인 턴테이킹 신호 없이도 실시간 음성 대화를 가능하게 한다.
Freeze-Omni는 LLM 백본을 고정한 상태에서 동작하는 저지연 음성 대 음성 대화 프레임워크를 제안하며, 이를 통해 실시간 상호작용을 위한 효율적인 적응을 가능하게 한다.
OmniFlatten은 텍스트 기반 LLM을 전이중 음성 모델로 점진적으로 변환하는 학습 방식을 제안하며, 이 과정에서 언어 이해 능력을 유지하는 것을 목표로 한다.
PersonaPlex는 Moshi 구조를 기반으로 음성과 역할 제어 기능을 추가하여, 일관된 페르소나를 유지하는 상호작용을 가능하게 한다.
이러한 모델들은 전이중 상호작용에서 유망한 성능을 보이지만, 여전히 정교한 시간 인식과 자연스러운 상호작용 측면에서는 한계가 존재한다.
7. 논의
결론
본 연구에서는 강력한 이중언어 음성 언어 모델인 Raon-Speech와, 자연스러운 실시간 대화를 위한 전이중 확장 모델인 Raon-SpeechChat을 제안하였다.
Raon-Speech는 3단계 학습 파이프라인을 통해 사전학습된 LLM을 고품질 SpeechLM으로 성공적으로 변환하였다. 또한 유사한 규모의 최근 오디오 파운데이션 모델 8개와 비교했을 때, 영어 및 한국어 음성·텍스트 벤치마크 42개 전반에서 가장 강한 음성 중심 성능을 보이면서도 뛰어난 텍스트 능력을 유지하였다.
Raon-SpeechChat은 대규모 시간 정렬 대화 데이터를 이용한 연속 학습을 통해 자연스러운 전이중 음성 상호작용을 가능하게 한다. 특히 FDB v1.0에서 다루는 턴테이킹 및 인터럽션 민감 행동에서 가장 뚜렷한 강점을 보였으며, 더 폭넓은 전이중 평가 환경에서도 경쟁력 있는 성능을 유지하였다. 다만 장기적인 멀티턴 지시 수행 능력은 향후 연구에서 중요한 개선 과제로 남아 있다.
모든 모델 체크포인트, 추론 코드, 상호작용형 데모를 공개함으로써, 본 연구의 결과물이 접근 가능하고 실용적인 음성–언어 상호작용 연구에 폭넓은 영향을 줄 수 있을 것으로 기대한다.
향후 연구
Raon-Speech와 Raon-SpeechChat이 인상적인 성능을 보였지만, 향후 연구를 위한 여러 방향이 남아 있다.
첫째, 현재의 이중언어 설정을 넘어 더 다양한 언어로 프레임워크를 확장함으로써 진정한 다국어 SpeechLM을 지원할 수 있다.
둘째, Raon-Speech와 Raon-SpeechChat에 시각 모달리티를 통합하면 더욱 풍부한 멀티모달 상호작용이 가능해질 것이다. 이를 통해 모델은 음성, 오디오, 시각 입력을 실시간으로 함께 추론할 수 있다.
마지막으로, 음성 중심 환경에서의 후속학습을 통해 모델을 에이전트 과제로 확장할 수 있다. 이는 음성 상호작용을 통해 복잡한 다단계 과업을 안정적으로 수행하는 음성 기반 에이전트로 이어질 수 있다.
Reference
댓글
댓글 쓰기