Communitygithub.com

iamjeffia/estudio-ia

비디오 및 애니메이션을 위한 사운드 디자인 및 믹싱 스킬. 각 요소의 등장/퇴장 효과, 배경 음악, 나레이션, 최종 믹스를 자동화하고 효과 라이브러리를 관리합니다.

estudio-ia란 무엇인가요?

이 스킬은 비디오 편집자와 애니메이터가 사운드 디자인 및 믹싱을 자동화할 수 있도록 설계되었습니다. After Effects, HyperFrames, Remotion 등 다양한 모션 기반 애니메이션 환경에서 생성된 이벤트 목록을 기반으로 각 요소에 적절한 사운드 효과를 동기화하여 배치합니다. `som.py` 스크립트가 핵심 역할을 하며, 각 효과의 피크가 정확한 프레임에 위치하도록 하고, 나레이션 아래에 배경 음악을 적절히 배치하며, 최종 믹스와 보고서를 생성합니다. 또한, 효과 라이브러리 구축 (`sintetizar_sfx.py`, `nivelar.py`), 음악 BPM 및 드롭 분석 (`batida.py`), 음성/악기 분리 (`separar.py`) 등의 보조 도구를 제공합니다. 이 스킬은 사운드 디자인이 렌더링을 기다리지 않고 애니메이션 타임라인이 확정되는 즉시 병렬로 진행될 수 있게 하여 워크플로우 효율을 크게 향상시킵니다. 모든 믹싱 수치는 중앙 규칙 파일(`06-metodo/regras.md`)에 의해 관리되며, 일관된 품질을 보장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iamjeffia/estudio-ia/tree/HEAD/.agents/skills/som-do-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

비디오 사운드

날짜: 2026-10-22 · 유형: skill · 상태: 유효

요약: 비디오의 사운드는 요소가 나타나거나, 사라지거나, 화면에 닿을 때마다의 이벤트 목록과 som.py 명령어로부터 생성됩니다. som.py는 각 효과의 피크를 정확한 프레임에 배치하고, 음악을 음성 아래에 정돈하며, 최종 믹스와 보고서를 제공합니다. 사운드는 렌더링을 기다리지 않습니다: 애니메이션 시간이 결정되면 바로 작업할 수 있습니다. 믹스 수치는 06-metodo/regras.md에 의해 단독 관리되며, 이 스킬은 방법, 명령어 및 주요 표를 제공합니다.

사용 시기

  • 모션, 인터페이스, 튜토리얼, 광고 또는 동기화된 효과가 필요한 음악 전용 비디오.
  • 나레이션 비디오: 앞쪽에 건조한 음성, 아래에 음악, 미묘한 효과.
  • '정적'으로 느껴지는 사람이나 장소가 포함된 비디오: 장면 사운드 (앰비언스 및 폴리). references/som-de-cena.md 참조.
  • 음악 처리: 비트 및 드롭 측정 (batida.py) 또는 음성 분리 (separar.py).

방법

  1. 보이는 각 동작에 하나의 사운드, 그리고 사운드는 동작을 설명합니다. 카드가 들어오면 팝, 버튼은 클릭, 화면 전환은 우쉬, 도장은 탁, 숫자는 굴러갑니다. 밀도는 단어가 아닌 동작 기준: 음성 아래에서 최대 두 개의 효과가 동시에 울립니다.
  2. 이미지가 동기를 부여하는 사운드만 들어갑니다. 정지된 컷의 우쉬, 장면에 시계가 없는 데서 나는 시계 소리, 상승하는 것 없이 나는 라이저는 사운드를 비디오에서 분리시킵니다. 믹싱 전에 비디오를 보고 무엇이, 언제, 어떤 재질로 움직이는지 기록하세요.
  3. 피크는 이벤트 프레임에 위치합니다. 클릭, 팝, 도장, 임팩트: 요소가 닿는 프레임에 피크. 우쉬: 제스처 중간에 피크 (~시작 후 0.2초; 기본 맵이 이미 수행). 라이저: 드롭 또는 컷에서 건조하게 끝남.
  4. 토널은 과대 광고, 전환 및 놀라움에만 사용합니다. 임팩트, 도장, 로고에 토널 타격; 큰 전환에 짧은 패드; 공개에 종. 클릭, 팝, 키에는 절대 사용하지 마세요. '작은 음악'이 되어 피로를 줍니다. 음악에 알려진 조성이 있을 때만 --tom (예: Am)을 전달하세요.
  5. 음악은 깔개가 아닌 순간을 위해 사용합니다. 부드러운 도입; 드롭 전 감속; 숨; 클라이맥스는 킥 드럼과 함께. 나레이션이 있는 경우, 음악은 음성보다 훨씬 낮게 유지되고 숨과 말이 없는 구간에서 올라옵니다.
  6. 드롭 전 숨. 드롭 전 마지막 비트에서 악기가 약 0.3~0.5초 동안 건조하게 떨어집니다 (--drop T가 수행). 키워드 또는 가장 큰 이미지 변화는 드롭의 첫 프레임에 위치합니다. 드롭은 batida.py로 측정하고, 눈으로 측정하지 마세요.
  7. 레이어는 피크에만 사용합니다. 드롭, 로고, 클로징에 2~3개의 사운드; 나머지는 동작당 하나의 사운드. 동일한 사운드가 반복될 때 높이를 다양하게 합니다 (맵이 카테고리의 변형 간에 순환).
  8. 건조한 음성. 리버브나 에코 없는 나레이션.
  9. 분리된 레이어를 들어보세요. 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프레임 이내 컷

단계별 가이드

모든 명령은 스튜디오 루트에서 실행합니다.

  1. 라이브러리 준비 완료? 05-biblioteca/som/sfx/catalogo.json이 없으면: uv run scripts/som/sintetizar_sfx.py. 녹음된 사운드: uv run scripts/som/nivelar.py <팩 폴더> (세부 사항은 05-biblioteca/som/README.md 참조).
  2. 이벤트. 애니메이션 엔진에서 audio/ 프로젝트 폴더로 eventos.json을 내보냅니다. 형식, 허용된 유형 및 After Effects, HyperFrames, Remotion에서 내보내는 방법: references/eventos.md 참조.
  3. 비트가 있는 음악? uv run scripts/som/batida.py musica.mp3 --fps 30은 BPM, 강한 비트 및 예상 드롭을 제공합니다. 이 그리드에서 컷을 애니메이션합니다.
  4. 음악의 음성 또는 악기 부분이 필요하신가요? uv run scripts/som/separar.py musica.mp3 (음성 + 악기) 또는 --modo 6 (6개 스템).
  5. 믹스:
    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.4
    
    mix.wav, escuta/*.wav, relatorio-som.json 및 previa-som.mp4가 생성됩니다 (이미지는 복사됨; 사운드만 변경됨).
  6. 보고서를 읽고 경고가 없을 때까지 수정하세요. "eventos sem som" = 맵이 모르는 유형: 유형을 알려진 것으로 바꾸거나, 이벤트에 "som": "categoria"를 추가하거나 --mapa를 작성하세요 (아래 참조). LUFS, 피크 및 "música abaixo da voz"가 목표를 벗어난 경우도 나타납니다.
  7. 장면 사운드? uv run scripts/som/verificar_som_de_cena.py <장면 사운드 전용 믹스> 또는 ... escuta/efeitos.wav --voz escuta/voz.wav. 불합격 시 전달되지 않습니다.
  8. 들어보세요. 사운드가 포함된 미리보기가 스튜디오 소유자에게 승인을 위해 전송됩니다. 최종 비디오에서는 --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 실행 또는 해당 카테고리로 팩 레벨링

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

관련 스킬