비디오 사운드
날짜: 2026-10-22 · 유형: skill · 상태: 유효
요약: 비디오의 사운드는 요소가 나타나거나, 사라지거나, 화면에 닿을 때마다의 이벤트 목록과 som.py 명령어로부터 생성됩니다. som.py는 각 효과의 피크를 정확한 프레임에 배치하고, 음악을 음성 아래에 정돈하며, 최종 믹스와 보고서를 제공합니다. 사운드는 렌더링을 기다리지 않습니다: 애니메이션 시간이 결정되면 바로 작업할 수 있습니다. 믹스 수치는 06-metodo/regras.md에 의해 단독 관리되며, 이 스킬은 방법, 명령어 및 주요 표를 제공합니다.
사용 시기
- 모션, 인터페이스, 튜토리얼, 광고 또는 동기화된 효과가 필요한 음악 전용 비디오.
- 나레이션 비디오: 앞쪽에 건조한 음성, 아래에 음악, 미묘한 효과.
- '정적'으로 느껴지는 사람이나 장소가 포함된 비디오: 장면 사운드 (앰비언스 및 폴리). references/som-de-cena.md 참조.
- 음악 처리: 비트 및 드롭 측정 (
batida.py) 또는 음성 분리 (separar.py).
방법
- 보이는 각 동작에 하나의 사운드, 그리고 사운드는 동작을 설명합니다. 카드가 들어오면 팝, 버튼은 클릭, 화면 전환은 우쉬, 도장은 탁, 숫자는 굴러갑니다. 밀도는 단어가 아닌 동작 기준: 음성 아래에서 최대 두 개의 효과가 동시에 울립니다.
- 이미지가 동기를 부여하는 사운드만 들어갑니다. 정지된 컷의 우쉬, 장면에 시계가 없는 데서 나는 시계 소리, 상승하는 것 없이 나는 라이저는 사운드를 비디오에서 분리시킵니다. 믹싱 전에 비디오를 보고 무엇이, 언제, 어떤 재질로 움직이는지 기록하세요.
- 피크는 이벤트 프레임에 위치합니다. 클릭, 팝, 도장, 임팩트: 요소가 닿는 프레임에 피크. 우쉬: 제스처 중간에 피크 (~시작 후 0.2초; 기본 맵이 이미 수행). 라이저: 드롭 또는 컷에서 건조하게 끝남.
- 토널은 과대 광고, 전환 및 놀라움에만 사용합니다. 임팩트, 도장, 로고에 토널 타격; 큰 전환에 짧은 패드; 공개에 종. 클릭, 팝, 키에는 절대 사용하지 마세요. '작은 음악'이 되어 피로를 줍니다. 음악에 알려진 조성이 있을 때만
--tom(예:Am)을 전달하세요. - 음악은 깔개가 아닌 순간을 위해 사용합니다. 부드러운 도입; 드롭 전 감속; 숨; 클라이맥스는 킥 드럼과 함께. 나레이션이 있는 경우, 음악은 음성보다 훨씬 낮게 유지되고 숨과 말이 없는 구간에서 올라옵니다.
- 드롭 전 숨. 드롭 전 마지막 비트에서 악기가 약 0.3~0.5초 동안 건조하게 떨어집니다 (
--drop T가 수행). 키워드 또는 가장 큰 이미지 변화는 드롭의 첫 프레임에 위치합니다. 드롭은batida.py로 측정하고, 눈으로 측정하지 마세요. - 레이어는 피크에만 사용합니다. 드롭, 로고, 클로징에 2~3개의 사운드; 나머지는 동작당 하나의 사운드. 동일한 사운드가 반복될 때 높이를 다양하게 합니다 (맵이 카테고리의 변형 간에 순환).
- 건조한 음성. 리버브나 에코 없는 나레이션.
- 분리된 레이어를 들어보세요.
som.py는escuta/voz.wav,musica.wav,efeitos.wav,tonais.wav를 기록합니다. 동기화는 효과 스템에서 확인하고, 믹스에서는 절대 확인하지 않습니다.
주요 수치
소유자: 06-metodo/regras.md. 거기에 다른 숫자가 있으면 그것을 따릅니다. Mesa는 이 값을 자동으로 적용합니다.
| 항목 | 값 |
|---|---|
| 음성 또는 음악이 포함된 마스터 | −14 LUFS 통합, 실제 피크 ≤ −1 dBTP (리미터 4배) |
| 음성 아래 음악 | 말이 있을 때 약 15 dB 아래 (보고서 측정, 12–18 허용) |
| 실제 음악이 있는 음성 없는 믹스 | 효과 전 트랙 레벨 −19 LUFS; 효과 ×2.2; 리미터; 마스터 −14 |
| 장면 사운드 전용 작품 | −25 LUFS 통합 (천장 −24), 단기 ≤ −20, 순간 ≤ −16, 피크 ≤ −3. 절대 −14로 정규화 금지 |
| 음성이 있는 장면 사운드 | 장면 사운드 스템이 음성보다 ≥ 15 LU 아래 |
| 효과 라이브러리 | 짧은 효과 −20 LUFS 순간 피크, 앰비언스 −24, 피크 ≤ −3 dBTP; 위치 at = evento − pico_ms/1000 |
| 동기화 | 효과 스템에서 중앙값 ≤ 25 ms |
| 비트 | beat_this, File2Beats(checkpoint_path="final0"); 비트에서 최대 2프레임 이내 컷 |
단계별 가이드
모든 명령은 스튜디오 루트에서 실행합니다.
- 라이브러리 준비 완료?
05-biblioteca/som/sfx/catalogo.json이 없으면:uv run scripts/som/sintetizar_sfx.py. 녹음된 사운드:uv run scripts/som/nivelar.py <팩 폴더>(세부 사항은 05-biblioteca/som/README.md 참조). - 이벤트. 애니메이션 엔진에서
audio/프로젝트 폴더로eventos.json을 내보냅니다. 형식, 허용된 유형 및 After Effects, HyperFrames, Remotion에서 내보내는 방법: references/eventos.md 참조. - 비트가 있는 음악?
uv run scripts/som/batida.py musica.mp3 --fps 30은 BPM, 강한 비트 및 예상 드롭을 제공합니다. 이 그리드에서 컷을 애니메이션합니다. - 음악의 음성 또는 악기 부분이 필요하신가요?
uv run scripts/som/separar.py musica.mp3(음성 + 악기) 또는--modo 6(6개 스템). - 믹스:
uv run scripts/som/som.py --eventos 04-projetos/<video>/audio/eventos.json \ --voz 04-projetos/<video>/audio/voz.wav --musica 04-projetos/<video>/audio/musica.wav \ --video 04-projetos/<video>/render/previa.mp4 --drop 12.4mix.wav,escuta/*.wav,relatorio-som.json및previa-som.mp4가 생성됩니다 (이미지는 복사됨; 사운드만 변경됨). - 보고서를 읽고 경고가 없을 때까지 수정하세요. "eventos sem som" = 맵이 모르는 유형: 유형을 알려진 것으로 바꾸거나, 이벤트에
"som": "categoria"를 추가하거나--mapa를 작성하세요 (아래 참조). LUFS, 피크 및 "música abaixo da voz"가 목표를 벗어난 경우도 나타납니다. - 장면 사운드?
uv run scripts/som/verificar_som_de_cena.py <장면 사운드 전용 믹스>또는... escuta/efeitos.wav --voz escuta/voz.wav. 불합격 시 전달되지 않습니다. - 들어보세요. 사운드가 포함된 미리보기가 스튜디오 소유자에게 승인을 위해 전송됩니다. 최종 비디오에서는
--video render/final.mp4와 함께 동일한 명령을 실행하세요: 리먹스만 수행되며, 다시 렌더링하지 않습니다.
프로젝트 고유 사운드 (--mapa)
MAPA = {tipo: função(M, e)}가 포함된 .py 파일은 사용자가 나열한 유형에 대해서만 기본 맵을 재정의합니다:
# 04-projetos/<video>/audio/mapa.py
MAPA = {
"logo": lambda M, e: (M.poe("logo", e["t"], -11), M.poe("impacto", e["t"], -16), M.golpe(e["t"], -20)),
"moeda": lambda M, e: M.poe("sucesso/sucesso-2", e["t"], -14, st=3), # st = semitons acima
}
맵에서 사용할 수 있는 Mesa 함수: M.poe(som, t, ganho_db, pan, alinha="pico"|"ini"|"fim", st=semitons, fim=duração, fade=s, sala=True), M.tonal(t, lufs), M.golpe(t, lufs), M.textura(t0, t1, lufs), M.riser(t_pico). som은 카테고리 ("whoosh", 변형 간 순환), 라이브러리 파일 ("whoosh/whoosh-2") 또는 경로를 허용합니다.
명령어
| 스크립트 | 용도 |
|---|---|
uv run scripts/som/som.py --eventos E.json [--voz V] [--musica M] [--video P.mp4] [--tom Am] [--drop T] [--mapa mapa.py] | 전체 믹스, 보고서 및 비디오에 사운드 입히기 |
uv run scripts/som/sintetizar_sfx.py [--amostra prova.wav] | 합성된 초기 라이브러리 생성 |
uv run scripts/som/nivelar.py PASTA [--categoria X] [--cama] [--destino D] | 팩을 표준에 맞추고 카탈로그 업데이트 |
uv run scripts/som/verificar_som_de_cena.py MIX.wav [--voz VOZ.wav] | 너무 큰 장면 사운드 불합격 처리 (종료 코드 1) |
uv run scripts/som/batida.py MUSICA [--fps 30] [--json grade.json] [--video render.mp4] | 비트, 강한 비트, BPM 및 드롭 (beat_this) |
uv run scripts/som/separar.py MUSICA [--modo voz|6] [--saida PASTA] | 음성 + 악기 (MelBand Big Beta 4) 또는 6개 스템 (BS-RoFormer SW) |
som.py의 기타 옵션: --voz-entra, --musica-entra, --musica-de (구간 정렬), --dur, --impacto T0 T1 (음악이 음성 레벨로 상승), --lufs, --pico, --fx -10 (음성 기준 LUFS의 효과), --saida.
batida.py 및 separar.py는 AI를 사용하며 추가 패키지가 필요합니다: uv sync --extra cpu (또는 NVIDIA 카드가 있는 경우 --extra gpu). 모델은 첫 사용 시 자동으로 다운로드됩니다 (beat_this ~80 MB; 각 분리 모델 ~300–700 MB, ~/.cache/estudio-ia/에 저장). 추가 패키지 없이 실행하면 설치 안내와 함께 중지됩니다.
일반적인 오류
| 증상 | 예상 원인 | 조치 |
|---|---|---|
| 장면 비디오에서 효과가 "너무 큼" | 장면 사운드가 −14로 정규화됨 | som.py는 음성이나 음악 없이 이미 −25를 목표로 함; verificar_som_de_cena.py로 확인 |
| 음성 없는 비디오에서 음악 아래 효과가 사라짐 | 마스터링된 트랙 (−8 ~ −11 LUFS) | Mesa가 트랙을 −19로 레벨링하고 효과를 ×2.2로 올림; 그래도 사라지면 이벤트에서 vol 증가 |
| 우쉬에서 사운드 "지연" | 제스처 끝에 이벤트가 표시됨 | 제스처 시작을 표시; 맵이 0.2초 후에 피크를 배치 |
| 동일한 사운드 반복이 로봇처럼 들림 | 변형이 하나뿐인 카테고리 | 해당 카테고리에 더 많은 사운드 레벨링 또는 --mapa에서 다른 st 사용 |
| 보고서: "categorias trocadas" | 라이브러리에 카테고리가 없음 | sintetizar_sfx.py 실행 또는 해당 카테고리로 팩 레벨링 |