바탕화면의 취창업역량강화_발표영상 폴더에서 바로 재생할 수 있습니다.
‘정리하겠습니ㄷ’처럼 끝음절이 덜 발음되는 문제를 고치기 위해 전체 150개 문단을 다시 합성했습니다. 교수님이 비교 음성에서 끝의 ‘다’가 온전하다고 확인한 방식입니다. 본문 뒤에 보호용 후속 어절까지 생성한 뒤 실제 무음에서 분리했습니다. 새 음성에 맞춰 자막·강조 시각도 다시 계산했습니다. 아래 _어미수정판 파일이 최신 결과이며, 기존 이름의 영상도 같은 내용으로 교체했습니다.
01_취창업역량강화_강의_박상돈_어미수정판.mp4: 강의 36장, 21분 28초02_포트폴리오_설명_박상돈_어미수정판.mp4: 실제 경력·프로젝트 포트폴리오 8쪽, 6분 02초두 영상은 바탕화면의 녹음 (9).m4a를 참조해 만든 합성 내레이션입니다. 약 66초 원본 중 1.10~17.10초 구간을 사용했습니다. 녹음 자체를 이어 붙인 발표나 별도 미세학습 결과는 아닙니다.
실행 폴더는 C:\Github\TTS\career-presentation입니다. 목소리는 등록되어 있습니다.
01_환경확인.cmd: 모델·GPU·참조 음성을 확인합니다.02_목소리_샘플합성.cmd: 첫 장의 목소리와 말투를 들어볼 수 있습니다.03_발표영상_만들기.cmd: 강의의 변경된 음성만 합성하고 문장 정렬·어미 검사·화자 비교·강조 영상 제작을 실행합니다.04_포트폴리오영상_만들기.cmd: 포트폴리오에도 같은 절차를 적용합니다.원본 결과는 output/lecture와 output/portfolio에 생성됩니다. 다시 만든 영상은 새 자막·강조 화면을 검수한 뒤 바탕화면에 반영합니다. checks/visual-review-*.json에는 실제로 확인한 새 프레임의 해시가 필요합니다. 검수 기록을 갱신한 다음 accept_delivery.py, write_application_report.py, finalize_manual_delivery.py 순서로 실행하면 검증된 복사본과 수업자료 ZIP이 갱신됩니다. 과거 영상의 검수 기록을 그대로 사용하면 복사를 중단합니다.
PPT 발표자 노트의 출처를 제외한 본문을 발화 기준으로 맞췄고, 원문은 notes_orig에 보존했습니다. manifest.json의 caption은 원문 자막, speech는 숫자·영어·기호를 발음대로 바꾼 합성 원고입니다. notes는 읽기 편한 사본입니다. 대본 내용 변경은 PPT 노트·PDF 읽기 대본·manifest의 내용도 함께 맞춰야 합니다.
PPT를 수정하면 assets_native/lecture/slide_NN.png를 PowerPoint에서 1920×1080으로 다시 내보내고 해당 highlights/designs/lecture/slide_NN.json의 강조 대상을 확인합니다. PDF 페이지 이미지는 assets/portfolio에 있습니다. 문장 수를 바꾸면 segment.sentence 형식의 강조 문장 번호도 갱신합니다.
음성·원고·화면·강조 위치의 해시가 같으면 검증된 캐시를 재사용합니다. 특정 문단만 다시 뽑는 예시는 다음과 같습니다. 실행 폴더에서 PowerShell로 실행합니다.
$taskPython = (Get-Content -LiteralPath '.\config.json' -Raw -Encoding UTF8 | ConvertFrom-Json).python
& $taskPython -X utf8 .\redo_segment.py --track lecture --slide 35 --segment 2 --render
기존 조각은 audio_old에 보존됩니다. 새 목소리로 바꿀 때만 00_목소리_등록.cmd를 사용합니다. 자동 검사에서 의심 문단이 발견되면 원본과 기존 영상을 남기고 ending-check.json에 확인 대상을 표시합니다.
output/TRACK/generation_attempts: 보호용 후속 어절까지 포함한 생성 원본과 각 시도의 판정. 실패한 시도도 보존합니다.output/TRACK/raw_segments: 후속 어절을 실제 무음 경계에서 분리한 뒤, 화면 시각을 정렬하기 전의 본문 음성.output/TRACK/segments: 영상에 쓸 본문 음성. 마지막 음절은 후속 어절 이전에 완성하도록 생성했고, 발화 부분에는 페이드를 적용하지 않았습니다.output/TRACK/highlight/slide_NN: 페이지별 MP4·WAV·자막·강조 시각·렌더 검사 결과.output/TRACK/highlight/frames: 실제 영상에서 추출한 모든 강조 장면의 검수 이미지.output/TRACK/narration.wav: 음량을 맞춘 연속 내레이션. narration.raw.wav도 보존합니다.checks/visual-review-*.json, ending-check.json, speaker-check.json: 화면·발화·화자 비교 기록.자막과 강조의 문장 경계는 ASR 단어 시각과 원고를 대조했습니다. 두 줄을 넘는 긴 문장 안에서 자막을 추가로 나눌 때만 해당 문장 길이에 비례해 배분합니다.
이 PC에서는 Python 3.11, RTX 5090, PyTorch 2.8.0 CUDA 12.8, Qwen3-TTS Base 1.7B를 사용합니다. 이미 받은 모델로 합성할 때 녹음이나 원고를 외부 TTS 서비스로 보내지 않습니다. 모델은 사용자 캐시의 career-tts/models에 있습니다.
수업자료 ZIP에는 문서와 재제작 도구가 들어갑니다. 개인 녹음·참조 음성·합성 음성 원본·완성 영상·모델 가중치는 ZIP에 넣지 않았습니다. 영상은 바탕화면, 참조 음성과 모델은 이 PC의 실행 폴더·캐시에 있습니다. 다른 PC에서는 본인 참조를 별도로 등록하고 환경 경로를 설정해야 합니다.