배경 음악
videomotion 기술에서 사용되는 VV, PY 변수를 따릅니다.
소스 선택 (우선순위)
- 사용자가 음악 파일 제공: 파일을
<project>/music/bgm.<extension>에 복사한 후bgm.wav로 변환합니다:ffmpeg -y -i <file> -ar 48000 -ac 2 <project>/music/bgm.wav. 음악이 비디오보다 짧으면 사용자에게 알립니다(믹서는 부족한 부분을 무음으로 처리). - ACE-Step (이 버전에는 없음, 설치 시 여기에 기록됨).
- 코드로 합성된 음악 (1번과 2번이 없을 때 기본값):
"$PY" "$VV/tools/music/synth.py" <project> --duration <words.json의 총 재생 시간> --mood <mood> [--bpm N] [--seed N]
스타일과 콘텐츠에 따라 mood를 선택합니다:
| mood | 기본 BPM | 적합한 용도 |
|---|---|---|
| calm | 84 | 화이트보드, 느린 설명, 진지한 주제 |
| inspiring | 96 | 설명 영상, 교육, 긍정적인 이야기 |
| upbeat | 112 | 광고, 프로모션, 스위스 모션 |
| tech | 104 | 다크 키노트, 기술 제품, 데이터 시각화 |
--seed를 변경하여 동일한 분위기에서 다른 멜로디를 얻습니다. 사용자가 파일을 제공하지 않고 라이선스를 확인하지 않는 한 웹에서 음악을 다운로드하여 저장소나 프로젝트에 패키징하지 마십시오.
비트 감지 (비트에 맞춰 장면을 편집해야 할 때)
합성된 음악에는 이미 music/beats.json이 있습니다. 사용자가 제공한 음악은 bestagentkits에서 가져온 스크립트로 감지합니다:
"$PY" "$VV/vendor/bestagentkits/fit-beat-grid.py" <project>/music/bgm.wav --min-bpm 70 --max-bpm 140
BPM과 BEAT0을 출력하여 music/beats.json에 기록합니다 ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). 각 마디의 dB 열은 음악이 올라가는(build) 부분과 떨어지는(drop) 부분을 나타냅니다: 가능하면 스크립트의 클라이맥스 장면을 드롭 부분에 맞춥니다.
믹싱
"$PY" "$VV/tools/audio/mix.py" mix <project> [--music-db -6] [--duck-db 5]
--music-db: 음성 중 음악의 상대적 볼륨(기본값 -6 dB). 사용자가 "음악 볼륨 낮춰"라고 말하면 낮춤(-9); "음악이 안 들려"라고 말하면 높임(-4).--duck-db: 음성이 없을 때 음악이 얼마나 더 커지는지(기본값 5 dB).MIXDONE I=<LUFS> TP=<dBTP>를 출력합니다. I가 -14 ± 0.5 범위 내에 있고 TP가 -1.0을 초과하지 않으면 성공입니다.