Dia - 현실적인 대화를 생성하는 오픈 웨이트 TTS 모델
(github.com/nari-labs)- Dia는 텍스트 대사를 기반으로 고품질 대화 음성을 생성하는 1.6B 파라미터 TTS 모델로, 오디오 프롬프트를 통해 감정·톤 조절이 가능함
- Nari Labs에서 개발했으며, "Nari"는 순수 한국어로 "백합"을 의미함
- [S1], [S2]로 화자를 지정하고
(laughs)
,(coughs)
등의 비언어적 표현도 생성 가능하며, 간단한 음성 클로닝도 지원함 - HuggingFace에서 바로 실행 가능하며, 별도 설치 없이 브라우저 기반 테스트 및 ZeroGPU 지원도 제공됨
- 현재 영어만 지원, 10GB VRAM 이상 요구되며, 향후 양자화 모델과 다국어 지원 등 예정됨
Dia: 대화 중심 음성 합성 모델
- Dia는 Nari Labs에서 개발한 1.6B 파라미터 오픈웨이트 TTS 모델
- 기존 TTS처럼 화자별 음성을 나눠 생성하지 않고, 대화 전체를 한 번에 생성하는 방식 사용
- 데모: Hugging Face Space
- 코드: GitHub 저장소
주요 기능
대화형 음성 생성
- 텍스트 내
[S1]
,[S2]
로 화자 지정 가능 -
(laughs)
,(coughs)
등 비언어적 사운드도 텍스트로 삽입 가능 - 감정, 톤, 목소리 스타일을 오디오 프롬프트로 지정 가능
음성 클로닝
- 예시 오디오와 해당 대사를 텍스트로 함께 제공하면 음성 클로닝 기능 활성화
- Hugging Face Space에서 오디오 업로드 후 실습 가능
- 자세한 예제는
example/voice_clone.py
참조
라이브러리 형태로 사용
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
-
soundfile
로 MP3 출력 가능 - PyPI 패키지와 CLI 도구도 곧 제공 예정
설치 및 실행
빠른 실행 방법 (Gradio 기반)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
또는 uv
가 없다면:
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- 실행 시 Descript Audio Codec 자동 다운로드
- 실행할 때마다 음성이 랜덤 생성됨, 일관성을 위해 프롬프트나 seed 고정 필요
성능 및 하드웨어 요구
- 테스트 환경: PyTorch 2.0+, CUDA 12.6 이상
- 권장 VRAM: 10GB 이상, 곧 양자화(Quantized) 버전 출시 예정
- A4000 GPU 기준 약 40 토큰/초 생성 (86 토큰 = 약 1초 음성)
-
torch.compile
사용 시 속도 향상 가능
향후 계획 및 TODO
- Docker 지원
- 추론 속도 최적화
- 모델 양자화(메모리 효율화)
- 다국어 지원, 더 많은 화자 수용 등 확장 고려 중
라이선스 및 사용 제한
- Apache 2.0 라이선스 적용
-
금지된 사용 예:
- 타인의 음성을 허가 없이 생성 (Identity Misuse)
- 허위 정보 생성 (Fake News 등)
- 불법·악의적 목적
커뮤니티와 기여
- 연구 인력: 풀타임 1명 + 파트타임 1명으로 구성된 소규모 팀임
- Discord 서버를 통해 피드백 공유 및 기능 제안 가능
- 기여자와 함께 성장하는 오픈소스 지향 프로젝트
참고 및 기술적 기반
- 사운드 모델: SoundStorm, Parakeet, Descript Audio Codec에서 영감 받음
- 연산 지원: Google TPU Research Cloud, HuggingFace ZeroGPU 프로그램
- "Nari"는 순수한 한국어로 "백합"을 의미함
와 한국분이 만드신 거였군요! 데모페이지에서 비교해가며 들어보니 성능이 정말 좋네요. 오디오 프롬프트를 제공하면 해당 목소리를 참고하는 걸까요? s1, s2로 구분된 예시를 각각 넣어줘야하는지 궁금합니다.
감사합니다! 오디오 프롬프트에 [S1] [S2] 구분된 예시를 넣을 필요는 없습니다. [S1] 만 넣어도 되고, [S1] [S2] 둘다 넣어도 괜찮습니다. [S1] 이 항상 먼저 오는것만 지키시면 됩니다.
Hacker News 의견
기술적 감탄 및 칭찬
- 단 두 명이 3개월 만에 만든 프로젝트임에도 매우 높은 퀄리티를 보여줌
- 대형 기업에 비해 작은 팀이 오디오 모델 분야에서 경쟁력 있는 결과를 낸다는 점이 인상적임
- "진짜 사람처럼 들린다", "TTS의 미래를 보는 듯하다", "예시가 놀랍다" 등의 반응
- 여러 사용자가 The Office 장면을 기반으로 만든 오디오 예시를 특히 인상적으로 평가함
음성 품질 및 특징에 대한 평가
- 대부분 "사람처럼 자연스럽다", "감정 표현이 잘된다", "웃음, 기침, 외침 등 디테일이 살아있다"는 긍정적인 반응
- 일부는 과장된 감정, 광고같은 느낌, 초반 잡음 등의 단점도 언급
- 특정 성우 스타일(예: NPR 톤)이나 과거 YouTube 플래시 애니 느낌과 유사하다는 의견도 있음
데모 사용 후기 및 직접 테스트
- M2 MacBook 등 다양한 하드웨어에서 실행 성공 사례 공유
- HuggingFace Spaces를 통해 온라인에서 바로 체험 가능하다는 점에 호평
- Docker와 CUDA 컨테이너로도 쉽게 실행 가능하다는 피드백 공유
오디오북, 소설 활용 관련 논의
- 다양한 사용자들이 오디오북 제작, 캐릭터별 성우 분리, 감정 풍부한 대사 구현 등에서 잠재력 탐색
- 다만, 일부는 "그래도 인간 성우가 낫다"는 의견, "좋은 성우는 작품에 고유한 질감을 부여한다"는 주장도 있음
- AI가 제대로 감정과 캐릭터를 해석한다면 오히려 더 낫다는 반론도 존재
음성 합성 관련 기능 요청 및 질문
- 다음과 같은 기능/지원 요청이 나옴:
- 다국어 지원 (중국어, 핀란드어 등)
- 2인 이상 대화 지원
- 음성 클로닝(본인 목소리)
- 단어 단위 타이밍 정보
- AMD GPU 지원
- 스트리밍 출력 지원
- 이에 대해 개발자 측에서는 기능별로 개발 중이거나 향후 지원 계획 공유
라이선스 및 오픈소스 관련
- Apache 2.0으로 배포 중이며, 원래 문구(연구 목적 한정)는 “shady stuff 하지 말라”는 의미였음을 개발자가 직접 설명
- 일부 사용자는 혼란을 줄 수 있으므로 더 명확히 해야 한다고 지적
학습 데이터 및 훈련 과정 관련 질문
- 다수의 사용자가 "데이터셋은 어디서 왔나", "어떻게 훈련했나" 질문
- 개발자 측에서는 기술 리포트에서 고수준 개요 제공 예정이라고 응답
이름 중복 논란
- GNOME의 다이어그램 툴(Dia), diabrowser.com 등과의 이름 충돌 지적
- "AI 프로젝트가 기존 오픈소스 이름을 일부러 차용한다"는 비판도 있음
- 이에 개발자 측은 "몰랐다, 앞으로 명확히 구분할 것"이라고 답변
사용성과 개선 피드백
- 데모 사이트가 Notion 기반이라 느리고 링크 공유 불편하다는 의견 → GitHub Pages 같은 가벼운 페이지 제안
- "join waitlist" 문구 혼동, 불필요한
venv
명시 등 README 개선 제안 - 서버 캐시 미사용으로 모델을 매번 다운로드하는 문제 등 설정 관련 피드백
개발/응용 및 통합 사례
- E5-F2, Sesame-TTS 등 다른 TTS 모델들과 비교
- 특정 도메인(의료 용어 등) 정확성 강조하는 사용자 존재
- iOS 실행을 위한 codec 정보 요청 및 응용 가능성 제시
- 실제 서비스 적용 시 스트리밍 및 초기 응답 속도 등 고려 요소 공유
기타
- HuggingFace 링크 오류나 접근 문제에 대한 안내 및 수정 공유
- 데모 인터페이스의 북마크 기능 등 부가적인 작은 기능 발견
- 사용자의 하드웨어 제약, TTS 활용에 대한 일반적인 기대와 우려도 함께 언급됨