영상 만들 때마다 마이크 앞에 앉는 게 지겨우셨다면, 이 프로그램 하나로 끝납니다. 목소리는 한 번만 등록하면 됩니다. 그다음부터는 대본만 넣으세요.

🖥️ 뭘 하는 프로그램인가요

내 컴퓨터에서 브라우저 창이 하나 열리고, 거기서 두 가지만 하면 됩니다.

  1. 목소리 등록 — 이미 찍어둔 영상을 끌어다 놓으면, 프로그램이 말이 온전하게 이어지는 구간을 알아서 찾아 후보를 들려줍니다. 마음에 드는 걸 고르기만 하면 끝. 새로 녹음할 필요 없습니다.
  2. 대본 넣고 읽히기 — 한 줄에 한 문장씩 적고 버튼을 누르면 내 목소리로 읽은 음성 파일이 나옵니다.
스스로 검수까지 합니다

다 만들고 나면 프로그램이 자기가 만든 음성을 다시 받아쓰기해서원래 대본과 글자로 대조합니다. 발음이 틀렸거나 없는 말을 지어냈으면 여기서 걸립니다. 고유명사와 숫자가 특히 잘 틀리는데, 그걸 사람이 일일이 듣지 않아도 되게 만들었습니다.

대신읽 v1.0 내려받기24KB · 맥 · 윈도우 공용 · 압축을 풀면 「시작하기.txt」가 있습니다
받기

🧭 나에게 맞는 길 고르기

어느 길로 가든 준비물은 똑같습니다. 내 목소리가 담긴 영상이나 녹음 파일 하나 (말이 10초 이상 이어지는 것), 그리고 저장공간 10GB. 목소리 모델이 4GB쯤 됩니다.

🤖 A. AI 에이전트를 쓰는 사람Claude Code · Codex · Cursor 등을 이미 쓰고 있다면 이 트랙
대신읽 v1.0 내려받기24KB · 맥 · 윈도우 공용 · 압축을 풀면 「시작하기.txt」가 있습니다
받기

압축을 푼 뒤, 아래를 통째로 복사해서 에이전트에게 주세요. 첫 줄의 폴더 경로만 본인 것으로 바꾸면 됩니다.

내려받은 "대신읽" 폴더를 설치하고 실행해줘.

- 폴더 위치: (여기에 압축 푼 폴더 경로를 적으세요)

순서
1. 파이썬 3.12 와 ffmpeg 가 있는지 확인하고 없으면 설치해라.
2. 그 폴더 안에 가상환경(.venv)을 만들고 requirements.txt 를 설치해라.
3. python run.py 로 실행하고 브라우저가 열리는지 확인해라.

주의
- 애플 실리콘 맥이면 config.py 의 TTS_DEVICE 를 "cpu" 그대로 둬라.
  MPS는 이 모델의 Mimi 코덱 conv1d에서
  "Output channels > 65536 not supported" 로 실패한다.
- NVIDIA GPU가 있는 윈도우면 환경변수 DAESHIN_DEVICE=cuda 로 실행해봐라.
  오류가 나면 cpu 로 되돌려라.
- 처음 실행하면 목소리 모델 약 4GB를 내려받는다. 멈춘 게 아니니 기다려라.

아예 직접 만들게 하고 싶다면

남이 만든 걸 쓰기 싫고 내 손으로 만들고 싶다면, 아래를 주세요. 제가 하나씩 실패하면서 알아낸 조건들이 들어 있습니다. 이걸 안 주면 에이전트도 저와 똑같은 함정에 빠집니다.

내 목소리를 복제해서 대본을 읽어주는 로컬 TTS를 직접 만들어줘.

[내 재료]
- 내 목소리가 담긴 영상/음성 파일: (여기에 파일 경로를 적으세요)

[반드시 지킬 것 — 실제로 실패해보고 얻은 조건이다]
1. 모델은 Qwen/Qwen3-TTS-12Hz-1.7B-Base 를 쓴다.
   XTTS-v2(coqui-tts)는 한국어에서 고유명사를 틀리고 원문에 없는 문장을
   지어내니 쓰지 마라.
2. device_map="cpu" 로 고정한다. 애플 실리콘 MPS는 Mimi 코덱 conv1d에서
   "Output channels > 65536 not supported" 로 실패한다.
3. 견본 클립에 노이즈 제거(afftdn 등)를 절대 걸지 마라.
   명료도(2~5kHz)와 공기감(5~12kHz)이 원본의 절반으로 깎여서
   합성음이 동굴처럼 먹먹해진다. highpass=f=70 과 loudnorm 까지만 허용한다.
4. 견본은 8~10초로 자르되 문장이 온전히 시작하고 끝나는 구간을 골라라.
   무음 탐지로는 문장 경계를 못 찾는다(말이 촘촘하면 구간이 20~40초씩 된다).
   받아쓰기 엔진이 주는 문장 타임스탬프를 경계로 써라.
5. Qwen 클로닝은 ref_audio 와 ref_text(그 구간의 정확한 전사)를 쌍으로
   요구한다. 전사가 정확할수록 발음이 정확해진다.

[만들어줘]
- 대본 txt를 줄 단위로 읽어 생성하고 문장 사이 0.35초를 넣어 합치는 스크립트
- 줄 단위 캐시(문장 해시로 저장). 한 줄만 고치면 그 줄만 재생성되게 해라.

[검수]
생성한 음성을 whisper로 다시 전사해서 원본 대본과 글자로 대조해줘.
특히 고유명사와 숫자를 확인해라.
에이전트를 믿되, 결과는 직접 들어보세요

에이전트는 "완료했습니다"라고 말하지만 소리를 듣지는 못합니다. 발음이 틀렸는지는 글자 대조로 잡히지만, 목소리가 나와 닮았는지는 사람만 판단할 수 있습니다.

🍎 B. 맥 사용자터미널을 처음 열어보는 분도 그대로 따라올 수 있게 썼습니다

📌 시작 전에 딱 2가지만

터미널이 뭔가요? 컴퓨터에게 글자로 명령을 내리는 창입니다. 정해진 글자를 붙여넣기만 하면 돼요.

  1. 키보드 ⌘(커맨드) + 스페이스바
  2. 터미널 입력 후 Enter
  3. 창이 뜨면 성공. 붙여넣기는 ⌘ + V, 실행은 Enter입니다.
스포트라이트에 터미널을 입력한 화면
⌘ + 스페이스를 누르고 «터미널»이라고 치면 맨 위에 나옵니다

cd가 뭔가요? "이 폴더로 들어가라"는 명령입니다. 프로그램을 실행하려면 먼저 그 폴더로 들어가야 해요.

왕꿀팁 — 경로 직접 안 쳐도 됩니다

cd 까지 치고 한 칸 띄운 뒤 폴더를 터미널 창으로 드래그하면 경로가 자동 입력됩니다. 그다음 Enter.

1단계. 준비물 설치

brew install python@3.12 ffmpeg

(brew: command not found가 나오면 Homebrew부터 설치하세요.brew.sh의 설치 명령을 복사해 붙여넣으면 됩니다.)

확인: python3.12 --versionffmpeg -version이 각각 뭔가 출력하면 성공

2단계. 프로그램 내려받기

대신읽 v1.0 내려받기24KB · 맥 · 윈도우 공용 · 압축을 풀면 「시작하기.txt」가 있습니다
받기

압축을 풀면 대신읽 폴더가 나옵니다. 원하는 곳에 두세요. 폴더 안에 run.py, config.py, core 폴더가 보이면 정상입니다.

3단계. 설치 — 한 줄씩

터미널에서 그 폴더로 들어간 다음,

cd (여기에 대신읽 폴더를 드래그) 
cd 뒤에 폴더를 드래그해 경로가 자동 입력된 터미널 화면
cd 치고 한 칸 띄운 뒤 폴더를 끌어다 놓으면 경로가 이렇게 들어옵니다. 아직 Enter는 누르지 마세요
python3.12 -m venv .venv

아무 메시지 없이 몇 초 뒤 입력이 가능해지면 성공

source .venv/bin/activate

줄 맨 앞에 (.venv)가 붙으면 성공

줄 앞에 (.venv)가 붙은 터미널 화면
줄 맨 앞에 (.venv)가 붙으면 성공입니다. 앞으로 이게 계속 붙어 있어야 해요
pip install -r requirements.txt

마지막에 Successfully installed …가 나오면 성공 (5분쯤 걸립니다)

4단계. 실행

python run.py
python run.py 실행 후 주소가 표시된 터미널 화면
이렇게 나오면 켜진 겁니다. 이 창은 닫지 말고 두세요

브라우저가 자동으로 열립니다. 안 열리면 주소창에 http://127.0.0.1:8770 을 직접 입력하세요.

이 검은 창은 켜둔 채로 두세요

닫으면 프로그램도 꺼집니다. 끄고 싶을 때는 터미널에서 Control + C.

🆘 맥에서 자주 나오는 오류

command not found: python3.12
파이썬이 안 깔린 겁니다. brew install python@3.12를 다시 실행하세요.

No module named 'fastapi'
줄 앞에 (.venv)가 없습니다. source .venv/bin/activate를 먼저 하세요.

ffmpeg 가 없습니다 라고 화면에 뜸
brew install ffmpeg 후 프로그램을 다시 켜세요.

🔁 다음부터는 이 3줄만

cd (대신읽 폴더 드래그)
source .venv/bin/activate
python run.py
🪟 C. 윈도우 사용자NVIDIA 그래픽카드가 있으면 맥보다 훨씬 빠르게 돌아갑니다
아래 사진은 맥에서 찍은 것입니다

윈도우는 창 모양과 경로 표기(C:\\대신읽)가 다르게 보입니다. 하지만 해야 할 순서와 «성공했는지 확인하는 지점»은 똑같습니다.사진은 그 지점이 어떻게 생겼는지 참고용으로 보세요.

📌 시작 전에 딱 2가지만

cmd(명령 프롬프트)가 뭔가요? 컴퓨터에게 글자로 명령을 내리는 검은 창입니다.

  1. 왼쪽 아래 윈도우 키(⊞) 누르기
  2. cmd 입력
  3. "명령 프롬프트" 클릭. 붙여넣기는 마우스 오른쪽 클릭 한 번입니다.

cd가 뭔가요? "이 폴더로 들어가라"는 명령입니다.

왕꿀팁

cd 까지 치고 한 칸 띄운 뒤 폴더를 cmd 창으로 드래그하면 경로가 자동 입력됩니다.

1단계. 준비물 설치

파이썬python.org → Downloads → 3.12 버전 내려받아 설치.

윈도우에서 가장 중요한 한 가지

설치 첫 화면 맨 아래 "Add python.exe to PATH" 네모칸에 반드시 체크하세요. 이걸 빠뜨리면 이후 명령이 하나도 안 먹힙니다. 가장 많이 하는 실수입니다.

ffmpeg — cmd에 붙여넣고 Enter:

winget install Gyan.FFmpeg

⚠️ 설치 후 지금 열린 cmd를 닫고 새로 여세요. 그래야 인식됩니다.

확인: python --versionffmpeg -version이 각각 출력하면 성공

2단계. 프로그램 내려받기

대신읽 v1.0 내려받기24KB · 맥 · 윈도우 공용 · 압축을 풀면 「시작하기.txt」가 있습니다
받기

압축을 풀어 C:\\대신읽 같은 곳에 두세요. 폴더 안에 run.py가 보이면 정상입니다.

3단계. 설치 — 한 줄씩

cd C:\대신읽
cd 뒤에 폴더를 드래그해 경로가 자동 입력된 화면
맥 화면입니다. 윈도우도 cd 치고 한 칸 띄운 뒤 폴더를 끌어다 놓으면 이렇게 경로가 들어옵니다
python -m venv .venv

아무 메시지 없이 몇 초 뒤 입력이 가능해지면 성공

.venv\Scripts\activate

줄 맨 앞에 (.venv)가 붙으면 성공

줄 앞에 (.venv)가 붙은 화면
맥 화면입니다. 윈도우도 줄 맨 앞에 (.venv)가 이렇게 붙습니다
pip install -r requirements.txt

마지막에 Successfully installed …가 나오면 성공

4단계. 실행

python run.py
python run.py 실행 후 주소가 표시된 화면
맥 화면입니다. 윈도우도 이렇게 주소가 뜨면 켜진 겁니다

브라우저가 자동으로 열립니다. 안 열리면 http://127.0.0.1:8770 을 직접 입력하세요.

💡 NVIDIA 그래픽카드가 있다면 아래처럼 실행해보세요. 훨씬 빨라집니다. 오류가 나면 그냥 python run.py 로 되돌리면 됩니다.

set DAESHIN_DEVICE=cuda && python run.py

🆘 윈도우에서 자주 나오는 오류

'python'은(는) 내부 또는 외부 명령이 아닙니다
"Add python.exe to PATH" 체크를 빠뜨린 겁니다. 다시 설치하면서 꼭 체크하세요.

No module named 'fastapi'
줄 앞에 (.venv)가 없습니다. .venv\\Scripts\\activate를 먼저 하세요.

ffmpeg가 인식 안 됨
설치 후 cmd를 새로 열지 않았습니다. 창을 닫고 새로 여세요.

🔁 다음부터는 이 3줄만

cd C:\대신읽
.venv\Scripts\activate
python run.py
📎 공통 — 셋 다 해당됩니다설치를 마쳤다면 여기부터는 똑같습니다

목소리 등록하기 (한 번만)

영상이나 음성 파일을 화면에 끌어다 놓으면, 프로그램이 말이 온전한 구간을 찾아 후보 5개를 들려줍니다. 재생해서 마음에 드는 걸 고르세요.

후보마다 무슨 말을 하는지 글로도 같이 보여줍니다. 실제와 다른 부분이 있으면 고쳐주세요. 이 프로그램은 "이 소리가 이 글자다"를 짝으로 배우기 때문에, 이 글자가 정확할수록 발음이 정확해집니다.

처음 한 번은 오래 걸립니다

첫 생성 때 목소리 모델 약 4GB를 내려받습니다. 몇 분 멈춘 듯 보여도 정상입니다. 한 번 받으면 그다음부터는 바로 시작합니다. 문장당 50~60초 걸리니, 3문장이면 3분쯤 걸린다고 보시면 됩니다.

두 번째부터는 훨씬 빠릅니다

한 번 만든 문장은 저장됩니다. 대본에서 한 줄만 고치면 그 줄만 다시 만들고나머지는 그대로 씁니다. 7문장 기준 7분이 5초로 줄어듭니다. 숫자 하나 고쳤다고 처음부터 기다릴 일이 없습니다.

🎚️ 조절할 수 있는 것

config.py를 메모장으로 열어 숫자만 바꾸면 됩니다.

바꾸는 값기본값뜻 / 언제 바꾸나
GAP_SEC0.35문장 사이 쉬는 시간(초). 답답하면 0.25, 여유롭게 하려면 0.5
REF_MIN_SEC / REF_MAX_SEC7.0 / 10.5견본 길이 범위
ASR_REFINE_MODELsmall견본 대사를 받아쓰는 정확도. medium이면 더 정확하고 느림
TTS_DEVICEcpuNVIDIA GPU가 있으면 cuda

⚠️ 반드시 지킬 것

본인 목소리이거나, 동의를 받은 목소리만 복제하세요.

기술적으로는 10초만 있으면 누구 목소리든 복제됩니다. 남의 목소리를 허락 없이 복제해 쓰면 법적 문제로 이어집니다. 등록한 견본(data/voices)은 목소리의 지문에 해당하니 공개된 곳에 올리지 마세요.

✅ 한 줄 요약

파이썬·ffmpeg 깔기 → 대신읽 받아서 압축 풀기 → 터미널에서 세 줄 → 영상 끌어다 놓고 목소리 고르기 → 대본 쓰고 버튼 누르기. 끝!

이 프로그램으로 만든 내레이션을 조달코치 가이드 영상에 실제로 쓰고 있습니다. 이제 대본만 고치면 목소리가 따라옵니다.