유료 TTS 구독(대표적으로 ElevenLabs)을 쓰다 보면 글자 수 제한과 월 요금이 계속 신경 쓰인다. 그런데 최근 한 달 사이 분위기가 확 바뀌었다. **“유료 구독 탈출 → 무료 로컬 TTS”**가 대세가 된 것. 이번 글은 두 부분으로 나뉜다.
- 트렌드 조사 — YouTube Data API로 최근 한 달(6/10~7/10)의 “무료 TTS” 영상 65건을 수집·선별해 지금 뭐가 뜨는지 정리
- 실전 구축 — 그중 오픈웨이트로 한국어가 가장 자연스러운 Qwen3-TTS 1.7B를 게이밍 노트북(RTX 4060 Laptop 8GB)에 설치하고, 감정 태그를 입힌 11분짜리 세미나 내레이션을 실제로 뽑아낸 과정
비용은 0원, 생성 무제한, 인터넷 없이 동작한다.
무료 TTS 트렌드 조사 — 요즘 뭐가 뜨나
유튜브에서 최근 한 달 “무료 TTS” 관련 영상을 API로 긁어 65건을 모으고, 관련도 높은 20개(한국어 14, 해외 6)를 선별해 요약했다. 결론부터:
이번 달 최대 이슈는 수퍼톤(Supertone)이다. 6월 10일 웹 서비스 수퍼톤 플레이(play.supertone.ai)를 출시했고(공식 소개 영상이 한 달 만에 5.7만 회), 동시에 로컬 모델 슈퍼토닉3를 MIT 라이선스로 무료 공개했다. CPU만으로 한국어를 무제한 생성할 수 있어서 “ElevenLabs 해지했다"는 영상이 줄줄이 올라오는 중.
자주 언급된 무료 도구를 성격별로 묶으면:
| 분류 | 도구 | 특징 |
|---|---|---|
| 웹에서 바로 | 수퍼톤 플레이, 클로바더빙, Vrew | 설치 없음, 한국어 더빙은 무료 범위로 충분 |
| 로컬 오픈소스 | 슈퍼토닉3(MIT, 한국어 특화, CPU 가능), Qwen3-TTS, VoxCPM2, OmniVoice | 무제한 + 음성 복제 지원 |
| 개발자용 최저 진입장벽 | Edge-TTS(pip 한 줄, API 키 불필요), Google AI Studio Gemini Flash TTS(70+ 언어) | 스크립트에 바로 붙이기 좋음 |
| 기타 | VoiceBox(오프라인 Windows 앱), RVC(내 목소리 로컬 학습) | 특수 용도 |
한 줄 요약: 웹에서 바로 쓰려면 수퍼톤 플레이·클로바더빙, 개발자라면 Edge-TTS가 진입장벽 최저다.
Qwen3-TTS 1.7B, 설치해서 직접 테스트해봤다
내 목적은 “세미나 영상 내레이션을 컷 단위로, 감정 지시까지 넣어서, 무제한으로 뽑기"였다. 프로그램에서 호출할 수 있고 말투 제어가 되는 로컬 모델이 필요했다.
오픈웨이트 후보들을 비교한 결과:
- Qwen3-TTS 1.7B ← 최종 선택 — Apache 2.0(상업 사용 자유), 한국어 억양·속도가 오픈웨이트 중 가장 자연스러웠다. 3초 샘플만으로 보이스 클로닝이 되고, 크로스링구얼(다른 언어 샘플로 한국어 발화) 오류율이 4.8%로 CosyVoice 3(14.4%)보다 크게 우수하다.
- Fish Audio S2 Pro — TTS Arena 기준 오픈웨이트 1위(전체 11위, Elo 1128.7)로 품질은 최상급. 하지만 상업 사용은 유료 라이선스인 데다 모델이 무거워서 탈락.
- 슈퍼토닉3 — MIT에 CPU만으로 돌아가는 건 매력적이지만, 이번엔 감정 지시(instruct) 제어가 필요해서 Qwen3-TTS로 갔다.
설치 (Windows 11 + RTX 4060 Laptop 8GB)
1. 가상환경 + 패키지
| |
내 환경 기준: Python 3.14, torch 2.11+cu128, qwen-tts 0.1.1.
2. 모델과 화자
모델은 Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice — 첫 실행 시 자동 다운로드된다. VRAM은 4.5GB 정도만 사용해서 8GB GPU에 여유 있게 들어간다.
내장 화자는 9명(aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian)이고, 한국어는 sohee가 담당이다.
3. 알아두면 좋은 것
- flash-attn을 설치하지 않으면 생성 속도는 오디오 길이의 약 2배 (1분짜리 음성에 2분 소요). 배치로 밤에 돌리면 문제없는 수준.
- 실행 시 SoX 관련 경고가 뜨는데 무해하다.
핵심 패턴: 모델을 상주 서버로 띄우기
모델 로딩에 약 1분이 걸리므로, 스크립트를 실행할 때마다 로딩하면 낭비다. 간단한 HTTP 서버로 한 번만 띄워두고 POST로 호출하는 구조를 만들었다.
| |
호출은 이렇게:
| |
결과 WAV는 output\에 저장된다. 핵심은 instruct 필드 — 말투를 자연어로 지시할 수 있다는 점이 이 모델을 고른 결정적 이유다.
실전: 감정 태그 입힌 세미나 내레이션 23컷
세미나 1회차 대본을 23개 컷(01_opener ~ 23_takeaway)으로 쪼개고, 컷마다 감정 태그와 TTS용 instruct 문구를 JSON으로 관리했다.
| |
감정 곡선은 이렇게 설계했다: 도발 → 퀴즈 5연발 → 약올림 → 차분한 강의 → 정답 발표 → 심화 → 묵직한 마무리. 단일 톤으로 11분을 읽으면 졸린데, 컷마다 instruct를 바꿔주니 확실히 “사람이 진행하는” 느낌이 산다.
파이프라인은 3단계:
| |
이 구조의 장점은 수정이 컷 단위라는 것. 특정 컷의 억양이 마음에 안 들면 그 컷만 instruct를 고쳐 재생성하고 해당 파트만 다시 병합하면 된다. 유료 서비스였다면 재생성할 때마다 글자 수가 차감됐을 텐데, 로컬이라 무한 리테이크가 공짜다.
직접 들어보기 — 생성 샘플 3개
말로 설명하는 것보다 듣는 게 빠르다. 아래는 Qwen3-TTS(화자 sohee)로 뽑은 샘플들이다. 스타일별로 하나씩 — 뉴스 리딩, 다큐 내레이션, 감정 표현.
샘플 1 — 뉴스 톤 · “오늘 서울의 낮 최고 기온은 33도까지 오르겠고, 내륙 곳곳에 소나기가 지나겠습니다.”
샘플 2 — 차분한 내레이션 톤 · “인공지능 기술은 지난 10년간 놀라운 속도로 발전해왔습니다. 이제 우리는 컴퓨터와 자연스럽게 대화하는 시대에 살고 있죠.”
샘플 3 — 감정(놀람) 표현 · “정말요? 그게 진짜 된다고요? 와, 이건 생각보다 훨씬 대단한데요?”
같은 화자인데도 instruct 지시에 따라 톤이 이만큼 갈라진다. 특히 샘플 3처럼 감탄·놀람 같은 감정 표현이 어색하지 않다는 점이 세미나 내레이션에 쓸 수 있겠다고 판단한 근거였다.
정리
- 트렌드는 명확하다: 무료 로컬 TTS가 유료 구독을 대체하는 중. 웹은 수퍼톤 플레이·클로바더빙, 개발자는 Edge-TTS, 품질+제어가 필요하면 오픈웨이트 로컬 모델.
- Qwen3-TTS 1.7B는 Apache 2.0 + 한국어 자연스러움 + 자연어 말투 지시(instruct) + VRAM 4.5GB라는 조합으로, 8GB급 GPU에서 실용적인 최선이었다.
- 상주 서버 + 컷별 감정 태그 JSON 패턴으로 11.6분 세미나 내레이션을 컷 단위 리테이크 가능한 형태로 완성했다.
이 글의 코드 전체(상주 서버, 컷별 생성·병합 스크립트, 스트리밍 페이지, 샘플 음성)는 GitHub에 공개했다: junstellar/qwen3-tts-korean-narration
다음 과제는 두 가지다. flash-attn을 설치해 생성 속도를 끌어올리는 것, 그리고 3초 샘플 보이스 클로닝으로 내 목소리를 등록해보는 것. 진행되면 후속 글로 정리하겠다.