Drama Audio Soundstage (사운드 엔지니어링 및 지능형 배경 음악 공정)
공정 위치: 드라마 사운드 디자인 및 상업 배경 음악 공정. 일반적인 잡담 배제: 트랙이 무엇인지 설명하지 않고, 오디오 게이팅 클리닝 파라미터, 언어 드리프트 차단 임계값 및 사이드체인 덕킹 믹싱 커브만 집중적으로 다룹니다.
1. 실행 계약 및 입출력
- 입력:
- 3번 공정에서 출력된 원본 오디오가 포함된 비디오 컷:
segments/{seg_id}.mp4; - 독립적인 고품질 영화 배경 음악 BGM:
assets/bgm/*.wav.
- 3번 공정에서 출력된 원본 오디오가 포함된 비디오 컷:
- 출력:
- 배경 잡음이 제거된 순수 컷:
cleaned_segments/{seg_id}.mp4; - 90초 서스펜스 비즈니스 배경 음악과 보컬 사이드체인 지능형 회피가 적용된 최종 영상:
[에피소드명]_final_ducked.mp4; - ASR 언어 및 대사 정확도 검사 목록.
- 배경 잡음이 제거된 순수 컷:
2. 하드코어 SOP: 스펙트럼 감산 오디오 게이팅 클리닝 (Audio Gate)
현상: H3 생성 오디오에는 종종 지속적인 "윙"하는 저주파 전류 소음, 가짜 바람 소리 또는 자극적인 환경 배경 잡음이 포함되어 있어 시청 몰입감을 해칩니다. 목표: 지속적인 배경 잡음을 완전히 제거하고, 캐릭터 대화와 짧은 액션 효과음(칼 빼는 소리, 책상 치는 소리, 발소리)을 100% 보존합니다.
2.1 게이팅 핵심 파라미터 및 물리적 의미
scripts/audio_gate.py 호출 시 골드 파라미터 세트 실행:
--bed-q 15: 시간 영역 슬라이딩 윈도우 분위수(15번째 백분위수로 설정), 지속적인 바닥 잡음을 정확하게 식별;--alpha-bed 6.0: 지속적인 배경 잡음 제거 강도;--alpha-fx 1.0: 과도 효과음/대화 보호 계수, 값이 작을수록 대화가 더 완전하게 보존됨;--fx-snr 4.0: 신호 대 잡음비 판단 임계값;--quiet-gain 0.03: 순수 무음 프레임 감쇠 계수.
명령어:
python scripts/audio_gate.py --in segments/seg01.mp4 --out cleaned_segments/seg01.mp4
3. 하드코어 SOP: ASR 표준 중국어 언어 드리프트 자동 차단
현상: 캐릭터 발음이 가짜 영어, 모호한 잡음 또는 비중국어 잡음으로 드리프트되어 전달 품질에 심각한 영향을 미칩니다.
3.1 차단 및 판단 기준
저장 후 경량 Whisper를 통해 초고속 언어 검증 수행:
- 오디오 트랙의 처음 5초를 추출하여 Language ID 판단;
- 통과 기준:
language == "zh"이고 신뢰도prob >= 0.85; - 차단 조치:
en또는 다른 언어로 판단되면 자동으로LanguageDriftError를 발생시키고 해당 컷을 실패로 표시하여 시드 변경 후 재실행 트리거.
4. 하드코어 SOP: 영화 수준 사이드체인 다이내믹 덕킹 믹싱 (Sidechain Ducking)
금지 사항(반례): BGM을 비디오 아래에 고정 볼륨으로 무분별하게 깔지 마십시오! 대화가 배경 음악에 묻혀 상업 영화의 레이어 감이 전혀 없어집니다.
4.1 FFmpeg 네이티브 sidechaincompress 골드 커브
캐릭터 대화를 사이드체인 제어 신호로 사용하여 BGM을 실시간으로 동적으로 압축:
- BGM 기본 볼륨:
bgm_volume = 0.35; - 임계값 (Threshold):
ducking_threshold = 0.06(보컬이 시작되는 즉시 덕킹 트리거); - 덕킹 깊이 (Ratio):
ducking_ratio = 5.0(대사 중 BGM이 순간적으로 약 -14dB까지 낮아져 보컬에 완전히 명확한 주파수 대역을 확보); - 어택 타임 (Attack):
ducking_attack_ms = 80ms(보컬 첫 글자가 시작되는 순간 부드럽게 덕킹되어 거친 팝 소리 없음); - 릴리스 타임 (Release):
ducking_release_ms = 400ms(대사가 끝난 후 BGM이 0.4초 내에 매끄럽게 원래 볼륨으로 돌아와 긴장감을 고조).
명령어:
python scripts/cinematic_audio_mixer.py --input concat_raw.mp4 --output final_ducked.mp4 --bgm assets/bgm/suspense.wav