음성 생성
videomotion 스킬과 동일한 VV, PY 변수를 사용합니다.
실행
"$PY" "$VV/tools/voice/voice.py" <프로젝트> > <프로젝트>/voice.log 2>&1
스크립트가 1분 이상 걸리면 백그라운드에서 실행합니다. 로그에 VOICEDONE이 나타나면 완료입니다. 모든 생성 결과는 내용에 따라 캐시됩니다. script.json에서 문장을 수정한 후 다시 실행하면 해당 문장만 다시 생성됩니다.
결과 확인
- 각 문장에 대해
score <id>: <점수> ok|WEAK | <Whisper가 들은 내용>이 출력됩니다. - 한 번 실행하는 것으로 충분합니다. 점수는 선별용일 뿐, 높은 점수를 쫓을 필요는 없습니다.
- Whisper가 영어 이름을 잘못 들은 경우("Claude"가 "Clock"으로, "code"가 "cốt"으로) WEAK로 표시되지만 이는 읽기 오류가 아닙니다.
- 실제 WEAK(잘못 읽음, 단어 생략, 숫자 읽기 오류)인 경우 다음 순서로 수정합니다:
- 베트남어 주어가 있는 문장으로 다시 작성하고, 5단어 미만의 짧은 문장이나 영어 이름으로 시작하는 문장을 피합니다.
script.json의"pron"항목에 항목을 추가합니다(예:"MCP": "em xi pi"- 키에 대문자가 있으면 대소문자를 정확히 일치시킵니다).--candidates 4를 사용하여 다시 실행합니다.
- 모든 프로젝트에 적용할 단어 수정은
~/.motionfly/pron.json에 추가합니다.
음성
기본값은 Ngọc Huyền(여성, 북부)입니다. 사용 가능한 일부 음성: Ngọc Huyền, Mai Anh(뉴스), Trúc Ly, Thùy Dung(남부, 뉴스), Hải Đăng, Thiện Minh(이야기), Quang Sơn 및 Ngọc Trân(중부). 전체 25개 음성을 보려면:
"$PY" -c "from vieneu import Vieneu; [print(v[0]) for v in Vieneu().list_preset_voices()]"
script.json의 "voice" 키에 음성을 설정합니다.
출력
voice.wav: 48kHz 모노, 다음 간격으로 공백 포함: 시작 0.5초, 문장 사이 0.35초,|기호 0.55초, 장면 사이 0.7초, 끝 0.8초.words.json:total,scenes(각 장면의 시작 및 종료 타임스탬프),segments(각 문장, 점수, 약한 플래그),words(표시되는 각 단어의start,end). 표시되는 단어는pron을 통해 발음이 변경된 경우에도 스크립트에 있는 원래 문자를 유지합니다.