Files
ShortVideoGenerator/.agents/skills/short-video-tts/SKILL.md
T
2026-10-08 00:49:05 +09:00

37 lines
4.0 KiB
Markdown

---
name: short-video-tts
description: 짧은 영상의 05 발화 단위로 기존 qwen3-tts 환경의 Qwen3-TTS 요청과 실제 WAV 결과를 관리하고 06-tts 검토를 작성한다.
---
# Qwen3-TTS 음성 제작
## 먼저 읽을 자료
- [공통 제작 계약](../../../docs/workflow-contracts.md): 실제 파일·시간 확인, 외부 결과와 상태, 승인 경계.
- [제작 지침의 음성 기준](../../../docs/short-video-guide.md#음성을-기준으로-컷과-연결을-확정한다): 의미·호흡·발음과 실제 음성 구간.
- [06 양식](../../../templates/stages/06-tts.json), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md).
## 입력과 환경 확인
개별 호출에서도 같은 제작물의 유효한 05-tts-split과 그 근거인 03의 story 승인을 확인한다. 선행 결과·승인 부재나 오래된 버전이면 총괄에 issues를 보고하고 기다린다. `inputs`는 실제 사용한 05 버전을 기록한다.
기존 conda 환경 `qwen3-tts`의 `Qwen3-TTS`를 사용한다. 환경 재설치·전역 설정 변경으로 해결하지 않는다. 실제 제작 시 사용 가능한 모델·화자·입력 언어 지원을 확인한다. 환경이나 패키지 존재, 모델 로딩 성공, 실제 추론 성공을 따로 보고한다. 설치 확인만으로 음성 생성이 성공했다고 쓰지 않는다.
지원되지 않는 언어나 도구 부재는 blocking issues로 총괄에 보고하고 결과·해결 입력을 기다린다. 요청 언어를 임의로 바꾸거나 다른 도구로 대체하지 않는다. 외부 실행파일 경로·키·인증정보는 결과에 기록하지 않는다.
## 요청과 실제 결과
1. 양식의 `request.engine`, `request.conda_env`, `request.language`, `request.units`에 도구·환경·입력 언어·05 단위를 기록한다. 정확한 구조는 스키마를 따르며 새 필드를 만들지 않는다.
2. 외부 결과를 받기 전에는 `result=null`을 유지한다. 요청 작성과 추론 성공을 구분한다. 실제로 사용한 모델·화자는 `result.model`, `result.voice`에 기록한다.
3. 요청 단위별 WAV를 `result.files`에 연결하고 실제 통합 WAV를 `result.narration`에 기록한다. unit_id는 요청에 존재하며 모든 단위가 순서대로 누락·중복 없이 포함되어야 한다.
4. WAV 실존·내용 형식·실제 길이를 확인한 파일만 media.verified=true로 기록한다. kind=audio, width/height=null이며 duration_ms는 실측한다. 예제 경로나 요청 길이를 실제 파일로 표시하지 않는다.
5. `result.unit_ranges`는 실제 통합 음성 안의 단위별 구간이다. 단위 WAV의 파일 길이, 03의 예상 길이, 통합 음성에서의 시작·끝을 구분한다. 구간의 순서·전체 포함·겹침과 발음·호흡·언어·누락·중복을 실제 청취로 확인한다.
실제 통합 음성이 180000ms를 넘으면 03 대본 수정과 story 재승인으로 돌아간다. 임의로 언어를 바꾸거나 발화를 빠르게 재생해 상한에 맞추지 않는다. 실측·청취·정렬 확인 방법과 미확인 내용을 review.md에 남겨 07의 timing_evidence 작성 근거로 전달한다.
## 제출과 진행 보고
자기 단계의 새 버전을 `projects/<project_id>/stages/06-tts/r<revision>/artifact.json`과 같은 폴더의 `review.md`에 저장한다. 데이터 경로는 저장소 루트 기준이며 이전 버전을 덮어쓰지 않는다. review.md에 실제 사용한 의미·호흡·발음 원칙과 결과, 적용하지 않은 구성의 이유를 적는다. 추가 입력·승인 지점을 만들지 않는다.
총괄에 제출 경로·선행 버전·실제 파일 검증·남은 issues를 보고한다. result 부재는 awaiting_input, 실행·검증 실패는 failed다. 부분 파일은 보존하되 모든 요청 파일·통합 음성·구간을 확인하기 전 complete로 보고하지 않는다. `project.json`의 상태·포인터·승인은 총괄만 작성한다. 검증된 통합 음성과 구간을 07로 전달한다.