
OmniVoice 완벽 분석: k2-fsa가 공개한 600+ 언어 제로샷 TTS 오픈소스
OmniVoice 완벽 분석: k2-fsa가 공개한 600+ 언어 제로샷 TTS 오픈소스
Kaldi를 만든 Daniel Povey 팀이 또 일을 냈습니다. 이번엔 600개 이상 언어를 지원하는 오픈소스 TTS입니다.
음성 합성(TTS) 시장은 오랫동안 상용 서비스가 지배했습니다. ElevenLabs, Azure TTS, Google Cloud TTS가 품질을 독점했고, 개발자들은 월 구독료를 감수해왔습니다. 2026년 3월 말, 이 구도에 균열이 생겼습니다.
k2-fsa 팀이 공개한 OmniVoice는 출시 3주 만에 GitHub 3,775 stars, HuggingFace 46만 누적 다운로드를 달성했습니다. 600+ 언어 제로샷 지원, RTF 0.025의 초고속 추론, 3초 레퍼런스 기반 음성 복제까지—상용 서비스를 대체할 수 있는 거의 모든 기능을 Apache 2.0 라이선스로 공개했습니다.
이 글에서는 OmniVoice의 기술적 차별점, 설치 방법, 실제 사용 예시, 그리고 왜 이 프로젝트가 TTS 생태계를 바꿀 수 있는지를 다룹니다.
OmniVoice는 누가 만들었나
OmniVoice는 k2-fsa 팀의 프로젝트입니다. k2-fsa는 음성 인식(ASR) 도구 Kaldi의 후계작을 개발하는 커뮤니티로, Kaldi의 창시자이기도 한 Daniel Povey가 핵심 멤버로 참여하고 있습니다.
| 항목 | 값 |
|---|---|
| GitHub 레포 | github.com/k2-fsa/OmniVoice |
| Stars | 3,775 |
| Forks | 582 |
| License | Apache 2.0 |
| 최초 공개 | 2026-03-31 |
| 최신 릴리스 | 0.1.4 (2026-04-13) |
| HuggingFace 누적 다운로드 | 460,224 |
| HuggingFace Likes | 534 |
| 베이스 모델 | Qwen/Qwen3-0.6B |
| 논문 | arXiv:2604.00688 |
핵심 저자는 Zhu Han, Ye Lingxuan, Kang Wei, Yao Zengwei, Guo Liyong, Kuang Fangjun, Han Zhifeng, Zhuang Weiji, Lin Long, 그리고 Daniel Povey입니다. Povey는 음성 인식 분야에서 30년 넘게 쌓아온 연구자로, Kaldi와 k2 프레임워크의 설계자입니다. 이 팀이 TTS 쪽으로도 진출한 것은 생태계 차원에서 큰 신호입니다.
왜 OmniVoice가 특별한가
OmniVoice의 차별점은 크게 다섯 가지입니다.
600+ 언어 제로샷 지원
대부분의 다국어 TTS는 10~100개 언어 수준에 머물러 있습니다. 한국어를 포함한 저자원 언어는 지원되지 않거나 품질이 현저히 낮은 경우가 많았습니다. OmniVoice는 600개 이상 언어를 제로샷으로 지원하는 업계 최고 커버리지를 달성했습니다. 별도 파인튜닝 없이 즉시 사용 가능합니다.
RTF 0.025의 초고속 추론
RTF(Real-Time Factor)는 1초짜리 오디오를 생성하는 데 걸리는 시간의 비율입니다. OmniVoice의 RTF는 0.025로, 실시간 대비 약 40배 빠른 속도를 보입니다. 1시간짜리 오디오북을 약 1.5분에 생성할 수 있다는 뜻입니다. 실시간 더빙, 라이브 내레이션 자동화 같은 응용이 실용 영역으로 들어왔습니다.
Diffusion Language Model 아키텍처
OmniVoice는 순수 diffusion도, autoregressive도 아닌 하이브리드 구조를 채택했습니다. 이를 통해 고품질과 저지연을 동시에 달성합니다. 베이스 모델로 Qwen3-0.6B라는 경량 LLM을 사용하여 소비자 GPU에서도 구동 가능한 것이 특징입니다.
Voice Cloning: 3초면 충분
3~10초짜리 레퍼런스 오디오 하나로 목소리를 복제할 수 있습니다. 레퍼런스 텍스트가 없어도 Whisper ASR이 자동으로 전사합니다. 개인 목소리를 다국어로 확장하고 싶다면 이 기능 하나로 해결됩니다.
Voice Design: 레퍼런스 없이 속성만으로
레퍼런스 오디오가 없어도 텍스트 속성만으로 목소리를 설계할 수 있습니다.
audio = model.generate(
text="Hello.",
instruct="female, low pitch, british accent",
)
성별, 나이, 피치, 악센트, 방언까지 지정 가능합니다. 캐릭터 보이스를 즉석에서 만들어낼 수 있는 기능입니다.
설치와 최소 동작 예시
OmniVoice는 pip으로 설치 가능합니다. PyTorch를 먼저 설치한 후 omnivoice 패키지를 설치합니다.
설치
# NVIDIA GPU (CUDA 12.8)
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \
--extra-index-url https://download.pytorch.org/whl/cu128
# Apple Silicon
pip install torch==2.8.0 torchaudio==2.8.0
# OmniVoice 본체
pip install omnivoice
Apple Silicon 지원이 명시적으로 포함되어 있다는 점이 중요합니다. M1/M2/M3 맥북에서도 MPS 가속으로 구동됩니다.
Python API 사용
세 가지 모드를 모두 지원합니다. Voice Cloning, Voice Design, Auto Voice입니다.
from omnivoice import OmniVoice
import soundfile as sf
import torch
# 모델 로드
model = OmniVoice.from_pretrained(
"k2-fsa/OmniVoice",
device_map="cuda:0", # Apple Silicon은 "mps"
dtype=torch.float16
)
# 1) Voice Cloning: 3~10초 레퍼런스 사용
audio = model.generate(
text="Hello, this is zero-shot voice cloning.",
ref_audio="ref.wav",
ref_text="Transcription of reference audio.",
)
# 2) Voice Design: 속성으로 목소리 설계
audio = model.generate(
text="Hello.",
instruct="female, low pitch, british accent",
)
# 3) Auto Voice: 아무 목소리로 생성
audio = model.generate(
text="Sentence without voice prompt."
)
# 저장 (24 kHz)
sf.write("out.wav", audio[0], 24000)
한 모델로 세 가지 사용 시나리오를 전부 커버합니다. 이 유연성이 실제 프로덕션에서 중요한 차별점입니다.
CLI와 웹 데모
OmniVoice는 Python API뿐 아니라 CLI와 웹 데모도 번들로 제공합니다.
# 인터랙티브 웹 데모 (Gradio 기반)
omnivoice-demo --ip 0.0.0.0 --port 8001
# 단건 추론
omnivoice-infer --model k2-fsa/OmniVoice \
--text "Hello world." \
--ref_audio ref.wav \
--output hello.wav
# 멀티 GPU 배치 추론
omnivoice-infer-batch --model k2-fsa/OmniVoice \
--test_list test.jsonl \
--res_dir results/
웹 데모는 Gradio 기반이라 팀 내부에서 바로 공유 가능합니다. 배치 추론은 대규모 오디오북 제작에 필수입니다.
고급 기능: 표현력과 발음 제어
상용 TTS와 경쟁하려면 단순히 텍스트를 읽는 것만으로는 부족합니다. OmniVoice는 두 가지 고급 제어 기능을 제공합니다.
비언어 심볼로 표현 제어
인라인 태그를 사용하면 웃음, 한숨, 질문 억양 같은 비언어적 표현을 넣을 수 있습니다.
| 태그 | 효과 |
|---|---|
[laughter] | 웃음소리 삽입 |
[sigh] | 한숨 |
[question-ah] | 질문 말미의 상승 억양 |
[surprise-wa] | 놀람의 감탄 |
이전까지는 상용 TTS에서도 SSML 복잡한 문법이 필요했던 기능입니다. OmniVoice는 단순한 대괄호 태그로 해결합니다.
발음 제어: 동음이의어와 고유명사
중국어는 pinyin, 영어는 CMU 사전 표기법으로 발음을 직접 지정할 수 있습니다.
# 중국어: "這(zhè)"가 아닌 "這(zhé)"로 발음
model.generate(text="打ZHE2")
# 영어: "bass"를 "/beɪs/"로 발음 (저음이 아닌 '베이스')
model.generate(text="[B EY1 S] guitar")
고유명사나 전문 용어의 발음을 교정해야 하는 프로덕션 환경에서 이 기능이 결정적입니다.
실전 사용 팁
GitHub Issue #44의 커뮤니티 토론에서 정리된 실사용 팁입니다.
Voice Design 일관성 확보
Voice Design은 매번 호출할 때마다 음색이 달라집니다. 같은 프롬프트여도 미묘하게 다른 목소리가 생성됩니다. 해결책은 간단합니다. 한 번 생성한 오디오를 저장하고, 이후엔 그 파일을 ref_audio로 재사용하는 것입니다. 이렇게 하면 Voice Cloning 모드로 전환되어 일관성이 유지됩니다.
Voice Clone 프롬프트 캐싱
create_voice_clone_prompt로 레퍼런스를 미리 인코딩해두면 반복 생성 시 연산량을 크게 줄일 수 있습니다. 오디오북이나 연속 내레이션처럼 같은 목소리로 수십 번 호출하는 경우 필수입니다.
숫자 정규화
"123" 같은 숫자는 곧바로 넣지 말고 "one hundred twenty-three"로 전처리하는 것이 안정적입니다. WeTextProcessing 같은 정규화 라이브러리를 사용하면 자동화할 수 있습니다.
Cross-lingual Voice Cloning 주의점
한국어 레퍼런스로 영어를 생성하면, 영어 결과물에 한국어 악센트가 남습니다. 이는 현재 오픈소스 TTS의 공통 한계입니다. 완전한 중립 악센트가 필요하다면 해당 언어 네이티브 레퍼런스를 쓰는 것이 낫습니다.
QJC 독자 관점: 왜 지금 주목해야 하나
퀀텀점프클럽 독자 입장에서 OmniVoice가 중요한 이유는 네 가지입니다.
상용 TTS 구독 대체 가능성
ElevenLabs Pro 플랜은 월 $22, 비즈니스 플랜은 월 $99입니다. 1인 기업이나 소규모 스튜디오에게 결코 작지 않은 비용입니다. OmniVoice는 Apache 2.0 라이선스로 상업 이용이 가능합니다. 자체 서버에 올려 무제한 사용할 수 있다는 뜻입니다.
한국어 콘텐츠 로컬라이징
600+ 언어 지원은 단순히 숫자 이상의 의미가 있습니다. 유튜브 콘텐츠를 영어, 일본어, 스페인어로 로컬라이징하는 작업이 한 개 모델로 가능해졌습니다. 개인 목소리를 Voice Clone으로 복제해두면 다국어 버전이 동일 화자 목소리로 생성됩니다.
실시간 내레이션 자동화
RTF 0.025는 단순한 속도 지표가 아닙니다. 실시간 라이브 방송 내레이션, 실시간 더빙, 챗봇 음성 응답 같은 실시간 응용이 실용 영역으로 들어왔다는 뜻입니다.
Daniel Povey 팀의 신뢰성
k2-fsa 생태계의 연장선이라는 점이 장기적으로 중요합니다. Kaldi, k2, Sherpa로 이어지는 음성 처리 도구 계보에서 장기 지원이 기대됩니다. 단발성 프로젝트와는 리스크 프로필이 다릅니다.
결론
OmniVoice는 단순한 "새 오픈소스 TTS"가 아닙니다. 600개 언어 커버리지, 40배 실시간 추론, 3초 음성 복제, Apache 2.0을 동시에 제공하는 첫 모델입니다. 상용 서비스들이 장점이라고 내세우던 품질, 언어 커버리지, 속도 지표 전반을 오픈소스가 따라잡았거나 앞질렀습니다.
TTS 상용 구독을 고민하고 있다면, OmniVoice를 먼저 시도해보는 것이 합리적입니다. pip install 한 줄이면 시작할 수 있고, 웹 데모도 번들로 제공됩니다. 결과물이 만족스럽지 않다면 그때 상용 서비스를 고려해도 늦지 않습니다.
오픈소스 TTS 생태계의 판도가 2026년 3월 말에 바뀌었습니다. 이 변화를 먼저 활용하는 쪽이 콘텐츠 제작, 로컬라이징, 음성 AI 서비스 전반에서 비용과 유연성 양쪽의 우위를 확보할 것입니다.