Audio-028, Raon-Speech Technical Report, Preprint 2026
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이 목적이면, casual 통일하는게 낫지 않나?
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 환경에서 중요하다.
Reference
댓글
댓글 쓰기