
Dia2 소개
Dia2는 Nari Labs에서 지난 4월 공개한 1.6B 규모의 Dia 모델에 이어 새롭게 공개한 고성능 대화형 텍스트-음성 변환(TTS, Text-to-Speech) 모델입니다. 이 모델은 단순히 텍스트를 읽는 것을 넘어, 실제 사람 간의 대화처럼 자연스러운 호흡과 뉘앙스를 재현하는 데 특화되어 있습니다. 특히 10억 개(1B) 및 20억 개(2B) 파라미터의 두 가지 버전으로 제공되며, 가벼운 무게에도 불구하고 놀라운 성능을 보여줍니다.
최근 AI 음성 기술은 단방향 낭독에서 실시간 상호작용으로 진화하고 있습니다. 하지만 기존 TTS 모델들은 문장이 완성될 때까지 기다려야 하거나, 감정 표현이 제한적이라는 한계가 있었습니다. Dia2는 이러한 문제를 해결하기 위해 입력 스트리밍(Input Streaming) 기술을 도입하여, LLM(거대 언어 모델)이 텍스트를 생성하는 즉시 음성으로 변환할 수 있도록 설계되었습니다. 이는 AI 에이전트, 실시간 통역, 게임 내 NPC 대화 등 즉각적인 반응이 필수적인 분야에서 강력한 도구가 됩니다.
또한, 웃음소리, 한숨, 기침 소리와 같은 비언어적 표현(Non-verbal cues) 을 자연스럽게 생성할 수 있어, 기계적인 느낌을 배제하고 몰입감 높은 오디오 경험을 제공합니다. 이 모델은 Apache 2.0 라이선스로 공개되어 연구 목적뿐만 아니라 상업적 제품 개발에도 자유롭게 활용할 수 있다는 점에서 개발자 커뮤니티의 큰 주목을 받고 있습니다.
Nari Labs의 Dia2를 기존의 TTS 모델들과 비교해보면 다음과 같습니다:
| 특징 | 기존 일반 TTS 모델 | Dia2 |
|---|---|---|
| 대화 처리 | 단일 화자 낭독 중심 | 다중 화자([S1], [S2]) 대화 생성 최적화 |
| 지연 시간(Latency) | 문장/문단 단위 처리로 대기 시간 발생 | 토큰 단위 스트리밍 지원으로 초저지연 구현 |
| 표현력 | 정제된 낭독조 위주 | 웃음, 한숨 등 비언어적 표현 및 감정 조절 가능 |
| 접근성 | 주로 고가의 API 종량제 (예: ElevenLabs) | 오픈 소스 (Apache 2.0), 로컬 구동 가능 |
Dia2 주요 특징
Dia2 모델은 1B / 2B의 2가지 버전으로 출시되었습니다. 1B(10억 파라미터) 버전은 빠른 속도를, 2B(20억 파라미터) 버전은 더 높은 품질과 디테일을 제공합니다.
LLM이 문장을 모두 생성하기 전에, 앞부분의 단어 몇 개만으로도 음성 생성을 시작할 수 있습니다. 이러한 스트리밍 생성 방식은 'STT(음성인식) - LLM(생성) - TTS(음성합성)' 파이프라인의 전체 지연 시간을 획기적으로 줄여줍니다.
또한, [S1], [S2] 태그를 사용하여 두 명의 화자가 대화하는 상황을 단일 모델 내에서 생성하는 다중 화자 기능을 제공합니다. 그 외에도 (laughs), (sighs), (clears throat) 등의 태그를 텍스트 중간에 삽입하면 해당 상황에 맞는 소리를 생성하는 등, 비언어적 요소를 포함하여 발화 스타일도 함께 제어할 수 있는 점이 특징입니다.
Dia2 설치 방법
Dia2는 Python 환경에서 실행되며, PyTorch와 Transformers 라이브러리를 기반으로 합니다. CUDA를 지원하는 GPU 환경(VRAM 10GB 이상 권장)에서 최적의 성능을 발휘합니다.
# 저장소 복제(clone) 및 소스코드 기반 설치
git clone https://github.com/nari-labs/dia2.git
cd dia2
pip install -e .
# (필요 시) PyPI 의존성 설치
pip install -U torch transformers accelerate
Dia2 모델 사용 예시
다음은 Dia2를 사용하여 대화형 오디오를 생성하는 기본적인 Python 코드입니다. 화자를 구분하는 태그인 [S1], [S2] 사용법에 주의하여 살펴봐주세요:
from dia2 import Dia2
import torch
# 모델 로드 (기본값: 2B 모델)
# GPU 메모리가 부족한 경우 1B 모델 사용 권장
model = Dia2.from_repo("nari-labs/Dia2-2B", device="cuda", dtype="bfloat16")
# 대화 스크립트 작성
# [S1], [S2] 태그로 화자를 구분합니다.
text = """
[S1] Hey, have you seen the new AI model released yesterday?
[S2] No, not yet. (laughs) Is it another LLM?
[S1] It's actually a TTS model called Dia2. It sounds incredibly real.
"""
# 오디오 생성
# 스트리밍이 아닌 일반 생성 모드 예시
audio = model.generate(text)
# 오디오 저장 또는 재생
# (저장 코드는 프로젝트 내 유틸리티나 soundfile 라이브러리 활용)
Dia2의 고급 기능: 음성 복제(Voice Cloning)
Dia2는 제로샷(Zero-shot) 음성 복제 기능을 지원합니다. 단 몇 초 분량의 참조 오디오(Reference Audio)만 있으면 해당 목소리의 톤과 스타일을 모방하여 텍스트를 읽을 수 있습니다. 이는 사용자 정의 보이스 어시스턴트나 콘텐츠 제작에 유용합니다.
라이선스
Nari Labs의 Dia2 프로젝트는 Apache 2.0 License로 배포되고 있습니다.
Dia2 2B 모델 데모 (Hugging Face)
Dia2 프로젝트 GitHub 저장소
Nari Labs - Dia2 1B 모델 다운로드
Nari Labs - Dia2 2B 모델 다운로드
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()