블로그 목록
오픈소스 & 개발도구

목소리 복제·받아쓰기 한 곳에, 오픈소스 Voicebox

음성 합성(TTS)과 받아쓰기(STT)를 한 앱에 모은 로컬 우선 오픈소스 스튜디오, Voicebox를 소개해요. 7개 TTS 엔진, 목소리 클로닝, 전역 받아쓰기 단축키, 에이전트 음성 출력(MCP)까지 로컬에서 처리하므로 데이터가 내 기기 밖으로 나가지 않아요.

2026년 9월 17일 6분 읽기

음성 AI의 두 갈래를 한 곳에

음성 AI 도구는 크게 둘로 나뉘던 시절이 있었어요. 목소리를 만들고 합성하는 데는 ElevenLabs가, 받아쓰기 입력 쪽은 WisprFlow가 사실상 표준이었죠. 문제는 이 둘이 서로 반대 방향을 맡는다는 거예요.

출력(합성)과 입력(인식)을 따로 쓰려면 앱을 둘 두고, 둘 다 클라우드 기반이라 녹음 데이터가 내 기기 밖으로 나가요. Voicebox(by jamiepine)는 이 두 갈래를 하나의 로컬 앱에서 모두 해결한 오픈소스 프로젝트예요. 스스로를 "올인원 AI 보이스 스튜디오"라고 부르며, MIT 라이선스 아래 GitHub에서 5만 4400여 개의 스타를 받으며 급부상했어요.

Voicebox 데스크톱 앱 화면출처: jamiepine/voicebox GitHub 저장소

로컬에서 돈다는 게 무슨 뜻일까

백엔드는 Python FastAPI로, 데스크톱 앱은 Rust 기반 Tauri로 만들어졌어요. Electron 대신 Tauri를 써서 메모리 사용을 줄인 게 특징이에요. 모든 추론(TTS·STT·로컬 LLM)은 기기에서 일어나고, 추론 백엔드는 환경별로 자동 골라져요.

환경추론 백엔드비고
macOS(Apple Silicon)MLX(Metal)Neural Engine으로 4~5배 가속
Windows(NVIDIA)PyTorch CUDA앱 안에서 CUDA 바이너리 자동 설치
Linux(AMD)PyTorch ROCmHSA 오버라이드 설정 자동화
Windows(모든 GPU)DirectML범용 GPU 지원
Intel ArcIPEX/XPU인텔 개별 GPU 가속
어디든CPU느리지만 어디서든 동작

클라우드 서비스를 쓰면 내 목소리 샘플이 서버로 올라가지만, 여기선 전 구간이 로컬이라 프라이버시 걱정이 줄어요. 음성 프로필·녹음·캡처 모두 내 데이터 폴더에만 저장돼요.

일곱 개 TTS 엔진, 상황에 맞게 고르기

Voicebox의 핵심은 멀티 엔진 설계예요. 하나의 큰 모델에 얽매이지 않고 목적별로 강한 엔진을 골라 쓸 수 있어요.

엔진언어특징
Qwen3-TTS (0.6B/1.7B)10다국어 클로닝, "천천히 말해", "속삭여" 식 지시
Qwen CustomVoice109개 사전 목소리, 자연어 발화 제어
LuxTTS영어가벼움(~1GB VRAM), 48kHz, CPU 실시간 150배
Chatterbox Multilingual23가장 넓은 언어 커버리지
Chatterbox Turbo영어350M 파라미터, [laugh] 같은 감정 태그
TADA (1B/3B)10HumeAI, 700초 이상 연속 발화
Kokoro882M 초경량, 50개 사전 목소리, 빠른 CPU

오디오북처럼 긴 대본은 길이 제한 없이 자동 분할·크로스페이드 되고, 감정 표현이 필요한 캐릭터 대사는 Chatterbox Turbo로 [laugh] 같은 태그를 넣으면 웃음소리가 합성돼요. 이후 8종의 후처리 이펙트(피치·리버브·딜레이·컴프레서 등)를 한 번 더 적용할 수 있고, 재사용 가능한 프리셋으로 저장해요.

받아쓰기와 에이전트 음성까지

이 프로젝트가 주목받는 진짜 이유는 출력만이 아니라 입력과 에이전트 연결까지 다룬다는 점이에요.

전역 받아쓰기 — 핫키를 누른 채 말하면 Whisper가 받아쓰고, macOS에선 포커스된 텍스트 필드에 자동 붙여넣기가 돼요. "어" 같은 군더더기는 선택적으로 로컬 LLM이 정리해 줘요.

에이전트 음성 출력 — MCP(Model Context Protocol) 서버를 내장해서, Claude Code·Cursor·Windsurf 같은 에이전트가 voicebox.speak 한 번의 도구 호출로 내가 클로닝한 목소리로 말하게 할 수 있어요.

// MCP를 지원하는 어떤 에이전트에서든
await voicebox.speak({
  text: "배포 완료.",
  profile: "Morgan",   // 클로닝한 음성 프로필
});

핵심은 음성 프로필에 성격(personality)을 붙일 수 있다는 거예요. 로컬 Qwen3(0.6B/1.7B/4B)가 그 성격으로 문장을 다시 써 준 뒤 TTS로 합성해요.

처음 문구를 뽑는 Compose, 입력을 캐릭터 관점으로 고쳐 주는 Rewrite 모드가 있고, 에이전트는 personality: true 인자로 같은 파이프라인을 그대로 호출할 수 있어요.

REST API와 개발자 경험

같은 기능은 REST API로도 노출돼요. 기본 포트는 17493이고, 합성(/generate), 에이전트 음성(/speak), 인식(/transcribe), 프로필 목록(/profiles) 같은 엔드포인트가 있으니 자체 앱이나 스크립트에 음성 입출력을 붙이기 쉬워요.

# 음성 합성
curl -X POST http://127.0.0.1:17493/generate \
  -H "Content-Type: application/json" \
  -d '{"text": "안녕하세요", "profile_id": "abc123", "language": "ko"}'

언어는 23개를 지원하고 목소리 클로닝은 몇 초 분량의 샘플이면 충분해요. 최신 0.5.0(Capture) 릴리스에서 받아쓰기·MCP·성격 기능이 함께 들어왔고, 로드맵엔 Windows/Linux 자동 붙여넣기, 스트리밍 받아쓰기, 음성 대 음성 엔드투엔드 모델 등이 잡혀 있어요.

누구에게 유용할까

  • 클로닝을 시험해 보려는 개인 — 몇 초 샘플로 내 목소리 합성을 무료로, 로컬에서 확인해볼 수 있어요.
  • 에이전트 개발자 — MCP로 에이전트가 말하게 해서 음성 인터랙션을 빠르게 붙일 수 있어요.
  • 프라이버시 중시 사용자 — 음성 데이터가 외부로 나가지 않는 설계라 보안에 민감한 환경에 적합해요.

다만 한계도 있어요. 23개 언어 중 한국어 품질은 엔진에 따라 편차가 있고, Linux는 아직 사전 빌드 바이너리가 없어 소스에서 빌드해야 해요. 여러 모델을 동시에 로드하면 GPU 메모리 부담도 커져요.

그 대신 합성과 받아쓰기, 에이전트 음성을 오픈소스로 한곳에서 다루는 건 흔치 않은 선택이에요. 공식 사이트는 voicebox.sh에서 확인할 수 있어요.

참고 링크

#Voicebox#TTS#음성 AI#오픈소스#MCP
Robeedau

발행 전 운영자가 직접 큐레이션·검수·편집합니다.