커뮤니티 입장하기

로컬 음성 합성과 목소리 학습 (Qwen3-TTS, 동의와 표시)

로컬 음성 합성은 글을 읽는 TTS 모델을 내 컴퓨터에서 실행하는 것입니다. 참조 녹음으로 목소리를 흉내 내는 제로샷 복제와 녹음 자료로 모델을 추가 학습하는 미세조정을 구분합니다.

같은 말:Qwen3-TTS로컬 TTS목소리 복제보이스 클로닝AI 음성 표시 의무

새로 올라온 개념이에요. 먼저 읽어 보고 퀴즈도 풀어 보세요
Share
목차
  1. 🤔 내 목소리로 안내 음성을 만들고 싶을 때
  2. 🔑 로컬 음성 합성과 목소리 학습의 정의
  3. 🎙️ Qwen3-TTS 모델 구성
  4. ⚡ 제로샷 복제: 짧은 참조 음성으로
  5. 🧪 미세조정: 수십 분 녹음으로
  6. ⚖️ 목소리 주인의 동의와 AI 생성 표시
  7. 🔐 데모 서버를 열 때 주의할 점
  8. ⚠️ 자주 하는 실수
  9. ❓ 자주 묻는 질문
  10. 본인 녹음과 전사문부터 대조하기
  11. 📋 3줄 요약
  12. 참고 자료

🤔 내 목소리로 안내 음성을 만들고 싶을 때

교육 영상의 내레이션이나 매장 안내 방송을 매번 직접 녹음하기는 번거롭습니다. 요즘 음성 합성 모델은 몇 초짜리 녹음만으로 비슷한 목소리를 만들어 주는데, 외부 서비스에 내 목소리 파일을 올리기는 망설여집니다. 그래서 목소리 복제를 내 컴퓨터 안에서 끝낼 수 있는지 궁금해집니다.

큐원 모델 계열에서 Qwen3-TTS가 어떤 위치인지는 1차 코스의 큐원 모델 패밀리 구분에서 다뤘습니다. 지금부터는 Qwen3-TTS로 로컬에서 목소리를 복제하는 두 가지 방법, 맥에서 실제로 걸린 시간과 메모리, 그리고 복제한 목소리를 쓰기 전에 알아야 할 동의와 표시 의무를 정리합니다. 모델 정보와 법령은 2026년 10월 3일 공식 자료 기준입니다.

🔑 로컬 음성 합성과 목소리 학습의 정의

로컬 음성 합성은 글을 읽는 TTS 모델을 내 컴퓨터에서 실행하는 것입니다. 목소리 복제에는 짧은 녹음을 참고하는 방법과 모델을 추가 학습하는 방법이 있습니다.

TTS는 Text to Speech의 줄임말로 글을 소리로 읽어 주는 기술입니다. 목소리를 흉내 내는 방법은 두 가지로 나뉩니다.

  • 제로샷 복제: 모델을 추가 학습하지 않고 짧은 참조 음성 하나를 입력해 그 목소리로 읽게 합니다. 빠르지만 긴 문장에서 목소리가 흔들릴 수 있습니다
  • 미세조정: 수십 분 분량의 녹음으로 모델을 추가 학습시켜 그 목소리에 맞춥니다. 학습 시간과 메모리가 추가로 필요하며 품질은 데이터와 설정에 따라 달라집니다

🎙️ Qwen3-TTS 모델 구성

알리바바 큐원 팀이 2026년 1월 22일 공개한 Qwen3-TTS는 공식 저장소 기준 다섯 가지 모델로 나뉩니다.

모델하는 일말투 지시
1.7B-Base, 0.6B-Base내 목소리 복제, 미세조정의 출발점지원 안 함
1.7B-CustomVoice, 0.6B-CustomVoice미리 들어 있는 목소리로 읽기1.7B만 지원
1.7B-VoiceDesign글로 묘사한 목소리 만들기지원

모든 모델이 한국어를 포함한 10개 언어를 지원하고, 허깅페이스의 Base 모델 라이선스는 Apache 2.0입니다. 내 목소리를 복제할 수 있는 것은 Base 모델뿐이고, 공식 설명은 약 3초의 참조 음성으로 복제할 수 있다고 소개합니다. 어느 컴퓨터에서나 3초 안에 결과 파일이 완성된다는 뜻은 아닙니다. 설치는 기존 프로젝트와 분리한 환경에서 pip install -U qwen-tts로 하고, 공식 예제는 주로 엔비디아 GPU를 사용합니다. FlashAttention 2는 메모리 사용을 줄이기 위한 권장 설정이며 지원 하드웨어가 필요합니다. 아래 맥 실행은 별도의 블로그 실측 사례입니다. 모델 이름으로 처음 실행하면 파일을 내려받을 수 있으므로 다운로드 시간과 음성 생성 시간을 구분합니다.

⚡ 제로샷 복제: 짧은 참조 음성으로

제로샷 복제에는 참조 음성(ref_audio)과 그 음성을 받아 적은 전사문(ref_text)을 사용합니다. 새로 읽힐 내용은 별도 text 입력이며 전사문과 역할이 다릅니다. 전사문 없이 목소리 특징만 쓰는 x_vector_only_mode도 있지만 공식 문서는 복제 품질이 떨어질 수 있다고 적습니다.

준이아빠블로그의 Qwen3-TTS 맥미니 실측에서는 M4 프로 맥미니(통합 메모리 24GB)에서 이렇게 동작했습니다.

  • 맥에서 돌리는 설정: device_map="mps", attn_implementation="sdpa"로 바꾸면 동작했고 FlashAttention은 건너뛰었습니다. 공식 지원이 아니라 실측 결과입니다
  • 걸린 시간: 1.7B 모델을 올리는 데 68초, 15초 분량 음성을 만드는 데 14초가 걸렸습니다
  • 참조 음성: 이 사례는 13초짜리 24kHz 모노 WAV와 전사문을 사용했습니다. 준비를 포함한 작업 시간과 한 번의 생성 시간은 구분합니다
  • 안정적인 길이: 문장이 끊기지 않는 10~15초 참조 음성이 가장 안정적이었습니다(실측 경험)

🧪 미세조정: 수십 분 녹음으로

공식 미세조정은 Base 모델의 단일 화자 학습만 지원하고, 여러 사람의 목소리를 함께 학습하는 기능은 향후 지원 예정이라고 적혀 있습니다. JSONL은 한 줄에 JSON 객체 하나를 적는 형식입니다. 학습 데이터는 JSONL 한 줄에 음성 파일(audio), 전사문(text), 참조 음성(ref_audio)을 적고, 공식 문서는 모든 줄에 같은 참조 음성을 쓰라고 강하게 권합니다. LoRA 같은 파인튜닝 일반 원리는 파인튜닝 기초에서 다뤘습니다.

같은 맥미니 실측에서 0.6B 모델을 미세조정한 결과는 다음과 같습니다.

항목실측값 (M4 프로 맥미니 24GB)
학습 데이터클립 217개, 31.4분
메모리19GB에서 23GB까지 증가
에포크당 시간(자료 전체를 한 번 학습)약 95초 (다른 프로그램이 떠 있으면 300초 이상)
체크포인트 하나(중간 저장 모델)2.3GB, 디스크 여유 30GB 이상 권장

실측에서 드러난 함정도 있습니다. 당시 사용한 학습 스크립트의 버그로 손실은 12.2에서 3.6까지 내려갔는데 결과는 잡음이었고, 에포크를 6번보다 4번 돌린 판이 더 자연스러웠습니다. 녹음 분량은 18분으로도 결과가 나왔고 30분에서 1시간을 현실적인 목표로 봤는데, 이 수치는 공식 기준이 아니라 실측과 저장소 사례에서 나왔습니다. 1.7B 미세조정은 24GB에서 시도하지 않았습니다. 공식 미세조정 명령 예시도 엔비디아 GPU(cuda:0)를 전제로 적혀 있고 최소 GPU 사양은 밝히지 않아, 맥에서의 학습은 공식 지원 범위 밖의 시도라고 보는 편이 맞습니다.

본문의 JSONL 필드와 실측에서 드러난 검수 항목입니다. 학습 손실 감소만으로 음성 품질을 판정하지 않습니다.

⚖️ 목소리 주인의 동의와 AI 생성 표시

목소리 주인이 허용한 용도와 공개 범위를 먼저 정합니다. 동의를 받았다는 사실과 AI 생성 표시를 했다는 사실은 서로 대신할 수 없습니다.

인공지능기본법 제31조는 인공지능사업자의 사전 고지와 생성물 표시를 규정합니다. 실제와 구분하기 어려운 음향을 제공하는 경우에는 이용자가 AI 생성 사실을 명확하게 인식할 수 있어야 합니다. 모든 개인의 음성 파일에 같은 의무가 일괄 적용된다는 뜻은 아니며, 사업자 해당 여부와 제공 방식 및 시행령의 적용 예외를 함께 확인합니다.

다른 사람의 녹음은 구할 수 있다는 이유만으로 복제와 공개에 사용하지 않습니다. 용도, 이용 기간, 공개 매체와 학습 파일 보관 범위를 합의하고 기록합니다. 첫 연습은 다른 사람의 목소리가 섞이지 않은 본인 녹음으로 진행합니다. 결과 파일을 공개한다면 듣는 사람이 확인할 수 있도록 AI로 만든 음성임을 알립니다. 표시만으로 무단 사용 문제가 해결되지는 않습니다.

🔐 데모 서버를 열 때 주의할 점

Qwen3-TTS의 공식 데모 명령 예시는 qwen-tts-demo 모델이름 --ip 0.0.0.0 --port 8000처럼 모든 네트워크 인터페이스에 서버를 엽니다. 방화벽과 인증 설정에 따라 같은 망의 다른 기기에서도 접근할 수 있습니다. 별도 접근 제한이 없다면 의도하지 않은 사람이 기능을 사용할 수 있습니다. 내 컴퓨터에서만 쓸 때는 127.0.0.1로 열고, 원격으로 쓸 때는 로컬 AI 보안과 백업에서 다룬 방법으로 접속을 잠급니다.

⚠️ 자주 하는 실수

  • CustomVoice 모델로 내 목소리를 복제하려 합니다: 복제는 Base 모델만 됩니다
  • 학습 손실만 보고 끝냅니다: 실제 음성을 들어 확인해야 합니다
  • 최대 생성 길이를 기본값으로 둡니다: 실측에서 끝을 알리는 토큰이 나오지 않자 11분짜리 잡음이 만들어졌습니다. max_new_tokens를 문장 길이에 맞게 줄입니다
  • 동의 없이 가족이나 동료 목소리를 복제해 공개합니다: 동의를 받고 AI 음성임을 밝힙니다

❓ 자주 묻는 질문

24GB 맥에서 1.7B 모델 미세조정이 되나요?

실측에서는 시도하지 않았고, 0.6B 미세조정만으로도 메모리를 23GB까지 썼습니다. 이 사례만으로 다른 모델의 최소 메모리를 계산할 수는 없습니다. 먼저 짧은 제로샷 생성이 필요한 수준인지 확인하고, 학습은 지원 환경과 메모리 여유를 별도로 점검합니다.

미세조정한 모델로 말투를 바꿀 수 있나요?

실측에서는 "차분하게", "밝게" 같은 말투 지시를 줘도 출력이 바이트 단위로 같았습니다. 공식 표에서도 말투 지시를 지원하는 것은 1.7B-VoiceDesign과 1.7B-CustomVoice뿐입니다.

내 목소리로 만든 음성을 유튜브에 올려도 되나요?

본인 목소리를 썼어도 녹음 속 음악과 읽는 대본의 이용 권한, 공개할 플랫폼의 규칙을 확인합니다. 듣는 사람이 AI 생성 음성임을 알 수 있게 표시하고, 사업으로 제공한다면 사업자 해당 여부와 제공 방식에 따른 법적 의무를 확인합니다.

본인 녹음과 전사문부터 대조하기

첫 연습은 모델을 설치하기 전에 할 수 있습니다. 본인 목소리로 “오늘 회의는 오전 열 시에 시작합니다”를 녹음하고 다시 듣습니다. 배경에 다른 사람 목소리나 음악이 들어갔다면 조용한 곳에서 다시 녹음합니다.

메모장에 다음 세 칸을 만듭니다.

입력적을 내용
ref_audio본인이 녹음한 실제 파일 경로
ref_text오늘 회의는 오전 열 시에 시작합니다
새로 읽힐 text내일 회의는 오후 세 시에 시작합니다

전사문을 일부러 “오후 두 시”로 적었다면 녹음을 듣고 “오전 열 시”로 고칩니다. 전사문을 매끄럽게 바꾸기보다 실제 발화를 맞추는 연습입니다.

이미 Base 모델을 실행할 수 있는 로컬 환경이 있다면 참고 녹음, 전사문과 생성 문장을 각각 맞는 입력칸에 넣고 언어를 Korean으로 선택해 짧게 한 번 생성합니다. 파일 경로 입력과 파일 업로드 중 무엇을 받는지는 사용하는 화면에 따라 다릅니다. 새 문장의 “내일”, “오후 세 시”가 맞는지, 단어가 빠지거나 끝없이 반복되는지, 끝에 잡음이 붙는지 원문을 보며 듣습니다. 목소리가 비슷한 것과 내용을 정확히 읽은 것은 따로 기록합니다.

잘못 읽었다면 녹음과 전사문을 먼저 대조하고, 한 번에는 입력 문장 또는 참조 녹음 하나만 바꿔 다시 비교합니다. 긴 잡음이 계속되면 화면의 중지 버튼이나 실행 터미널의 Ctrl+C로 중단합니다. max_new_tokens는 생성 단위 수의 상한이며 초 단위가 아닙니다. 상한을 너무 줄이면 문장 중간에서 끊길 수 있으므로 모델 설정과 짧은 문장을 함께 확인합니다. 그다음 새 문장의 시간만 “오후 네 시”로 바꾸어 반복합니다. 두 결과의 문장, 모델, 설정과 들린 오류를 남기면 첫 비교를 마친 것입니다. 환경이 없다면 입력 대조까지만 마치고 공식 설치 조건을 확인합니다.

📋 3줄 요약

  1. 제로샷 복제는 참고 녹음으로 음성을 만들고 미세조정은 녹음 자료로 모델을 추가 학습합니다.

  2. 전사문을 실제 발화와 맞추고 새로 읽힐 문장을 구분한 뒤 숫자와 누락 및 잡음을 직접 듣고 확인합니다.

  3. 목소리 사용 동의와 공개 범위를 정하고 AI 생성 표시 및 파일 보관 조건을 함께 확인합니다.

참고 자료

Share

제대로 이해했는지 한 문제로 확인해 볼까요?

답을 고르면 바로 풀이가 나와요.

본인 녹음에는 “오전 열 시”라고 말했는데 전사문에는 “오후 두 시”라고 적혀 있습니다. 첫 생성 전에 무엇을 해야 할까요?

예제나 확인 질문을 직접 시도한 뒤 완료 표시해요. 더 연습할 내용이 남으면 표시하지 않고 다음 글을 읽어도 됩니다. 완료 버튼은 이해도를 채점하지 않으며 잘못 표시하면 취소할 수 있어요.

6개념 / 클래스컴피UI(ComfyUI)로 로컬 이미지 생성하기 (워크플로, 모델 폴더, VRAM)