음성
스크립트 경로는 이 SKILL.md를 기준으로 하며, speak.py는 film 폴더에서 실행됩니다. 이 단계는 선택 사항입니다: 녹음 파일이나 다른 도구의 오디오도 사용할 수 있습니다. 해당 파일은 audio/voice/<line id>.wav에 넣거나, 라인에 file을 설정하세요.
상대방의 언어로 대화하세요.
키 설정 (최초 한 번)
비용은 사용자의 계정으로 청구됩니다. 사용자가 자신의 터미널에서 다음을 실행하도록 요청하세요:
python <dula-start 폴더>/scripts/configure.py
Claude Code에서는 ! python <path>/configure.py라고 입력하면 됩니다.
대화에서 키를 요청하지 말고, ~/.dula-craft/config.env를 읽거나 출력하지 마세요. 키 설정 여부를 확인하려면 configure.py --status를 사용하세요. 누군가가 대화에 키를 붙여넣으면, 콘솔에서 키를 폐기하고 새로 만들도록 안내하세요.
음성 설계
config/film.json의 최상위 레벨에 voices를 추가하세요:
"voices": {
"mochi": {"desc": "여덟 살 정도의 남자아이, 밝고 활기찬, 빠른 호흡, 가벼운 숨결"},
"gran": {"desc": "일흔 살 여성, 따뜻하고 약간 쉰 목소리, 느리며 매우 또렷한 발음"}
}
라인에는 delivery를 지정할 수 있습니다:
{"id": "l03", "who": "mochi", "text": "진-짜?", "delivery": "놀라며 기뻐함, 첫 단어에 떨림, 끝에서 올라감"}
선택적 음성 필드: lang은 언어를 설정하며 (기본값은 라인의 언어), speaker는 공식 Volcano 음성 ID를 지정하고, reference는 사용자가 사용할 권리가 있는 참조 오디오를 가리킵니다.
desc와 delivery는 영어 또는 라인의 언어로 작성하세요. 음성 자체를 설명하세요: 나이, 긴장도, 호흡, 속도, 무게. "행복한"만으로는 음성이 바뀌지 않습니다. "특정 배우나 캐릭터처럼 들린다"라고 쓰지 말고, 유명 캐릭터나 실제 인물을 모방하는 음성을 선택하지 마세요. 음성도 초상권과 저작권 문제를 일으킬 수 있습니다.
생성
python <이 폴더>/scripts/speak.py --dry-run # 비용 없이 프롬프트 확인
python <이 폴더>/scripts/speak.py
각 캐릭터의 첫 번째 라인은 이후 라인의 음성 참조 기준이 되므로 첫 번째 라인을 먼저 들어보세요. 마음에 들지 않으면 desc를 변경하고 다시 생성하세요. 첫 번째 라인을 변경한 후에는 --only를 사용하여 해당 캐릭터의 이후 라인만 새 음성에 맞게 다시 생성하세요.
라인이나 음성을 변경한 후 다시 실행하면 변경된 부분만 재생성됩니다.
분위기 및 효과음
python <이 폴더>/scripts/speak.py --sound "조용한 낡은 방, 가끔 멀리서 새소리" --seconds 10 --out audio/sfx/room.wav
항상 --seconds를 지정하세요. 과금은 길이에 따라 부과되며, 지정하지 않으면 클립이 30초 이상 재생될 수 있습니다. 이 값은 근사치이며, 매우 짧은 요청은 실제로 더 길게 생성되는 경향이 있습니다. 생성된 클립은 종종 소리가 작으므로, film.json에서 스토리 사운드에 level_db를 설정하세요 (film.json 참조 참고).
한 번에 하나씩 생성하세요. 대사, 효과, 음악을 하나의 프롬프트로 요청하지 마세요. 그렇게 하면 레벨을 개별적으로 조정할 수 없고 입 모양이 맞지 않게 됩니다.
결과 확인
- 가능하면 들어보세요. 들을 수 없다면 "이 오디오는 귀로 확인되지 않았습니다"라고 말하세요.
- 직접 할 수 있는 작업: 길이가 적절한지 확인하세요 (짧은 라인에 5초면 문제입니다). Whisper 같은 전사 도구를 사용할 수 있다면 텍스트를 대본과 비교하세요. 매우 조용한 단어가 누락될 수 있으며, 이는 다시 생성해야 한다는 신호입니다.
delivery는 요청일 뿐, 정확한 제어가 아닙니다. 특히 멈춤 길이는 신뢰할 수 없으므로, 속도가 맞지 않으면 라인을 줄이거나 다시 생성하세요.- 동일한 프롬프트는 매번 다른 결과를 생성하므로, 오류 시 다시 생성하세요.
일반적인 문제
| 증상 | 해결 방법 |
|---|---|
키 거부됨, 또는 Audio Generation 1.0이 활성화되지 않음 | 서비스가 활성화되었는지 확인하세요. 키는 음성 콘솔에서 가져와야 하며, Ark 키는 작동하지 않습니다 |
| 단어가 잘못 읽힘 | 다시 생성하거나 라인을 다시 작성하세요 |
| 라인들이 한 사람처럼 들리지 않음 | 첫 번째 라인이 올바른지 확인한 후 --only로 이후 라인을 다시 생성하거나 speaker를 설정하세요 |
| 라인 끝이 잘림 | 더 느린 delivery를 요청하거나 다시 생성하세요 |