Sidon을 사용하여 비디오 음성 트랙 정리 (Modal 기반)
Sidon v0.1(Hugging Face의 sarulab-speech/sidon-v0.1)을 사용한 음성 복원. 이 모델은 음성을 48kHz로 재합성하는 오디오-투-오디오 모델입니다. GPU가 필요하므로 Modal에서 실행되며, 그 외 작업(추출, 라우드니스, 리먹싱)은 로컬 머신에서 일반 ffmpeg로 처리됩니다. 비디오 스트림은 재인코딩되지 않습니다.
Modal 작업은 이 플러그인의 scripts/sidon_enhance.py에 있습니다(${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py).
모델 선택 (Sidon을 선택한 이유)
| 모델 | 판단 |
|---|---|
| Sidon v0.1 | 기본값. 가벼움; 11분짜리 파일을 L4급 GPU에서 한 작업으로 몇 센트에 처리. 출력은 깨끗하고 전대역 48kHz. |
| NVIDIA RE-USE | 화자의 고유 스펙트럼 세부 정보를 더 잘 유지하지만 긴 파일에서는 GPU 메모리 부족으로 실패(11분 파일의 두 번째 30초 청크에서 실패). 짧은 클립에만 사용. |
| DeepFilterNet | 제외: 음성에 청취 가능한 왜곡 발생. |
Sidon은 8kHz 이상의 모든 주파수를 재생성하므로 결과는 방의 잡음이나 배경이 완전히 제거된 음성입니다. 트랙의 음악 및 기타 비음성 사운드는 손실됩니다. 비디오에 배경 음악이 있는 경우, 배경 음악을 추가하기 전에 음성을 먼저 정리하세요.
설정
다음 경로 중 첫 번째로 존재하는 데이터 루트에서 remote-video-editing/preferences.json을 읽습니다: $CLAUDE_USER_DATA, ~/.claude-user-data, ${XDG_DATA_HOME:-~/.local/share}/claude-plugins. 키:
| 키 | 기본값 | 의미 |
|---|---|---|
modal_command | modal | Modal 앱을 실행하는 명령어 (프로필 또는 워크스페이스를 선택하는 래퍼도 가능) |
run_notes | 없음 | Modal을 실행할 위치(예: 인증을 보유한 다른 호스트)와 파일이 도달하는 방법에 대한 자유 텍스트 지침. 따를 것. |
loudness_lufs | -14 | 통합 라우드니스 목표 값 (YouTube 스타일) |
true_peak_db | -1.5 | 실제 피크 제한 값 |
파일이 없고 modal token이 설정되지 않은 경우(modal profile current 실패), 사용자에게 modal setup을 먼저 실행하라고 알리고 중단합니다.
절차
원본 비디오 옆에 있는 폴더에서 작업합니다. IN=<비디오>, MODAL=<modal_command, 기본값 modal>.
- 오디오 추출 (모노 48kHz FLAC):
ffmpeg -v error -y -i "$IN" -vn -ac 1 -ar 48000 -c:a flac -sample_fmt s16 audio.flac - 먼저 30초 테스트 가장 처음이 아닌 음성이 있는 구간에서 클립을 잘라냅니다:
두 파일을 사용자에게 제공하여 들어보게 합니다. 사용자가 사운드를 승인할 때까지 전체 파일을 실행하지 마십시오.ffmpeg -v error -y -ss 60 -t 30 -i audio.flac -c:a flac test30.flac $MODAL run "${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py" --src test30.flac --out test30_sidon.flac - 전체 트랙 실행:
작업은 96초 청크당 한 줄씩 출력합니다. 첫 번째 실행은 이미지를 빌드합니다(몇 분 소요); 이후 실행은 이를 재사용합니다.$MODAL run "${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py" --src audio.flac --out audio_sidon.flac - 라우드니스 측정 (2패스
loudnorm의 첫 번째 패스):ffmpeg -hide_banner -nostats -i audio_sidon.flac \ -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null - 2>&1 | grep -A12 '^{' - 리먹싱 (측정된 값 사용). 비디오는 스트림 복사:
Apple 플레이어에서 재생해야 하는 HEVC 소스의 경우ffmpeg -v error -y -i "$IN" -i audio_sidon.flac -map 0:v -map 1:a -c:v copy \ -af "loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:offset=<target_offset>:linear=true,aresample=48000" \ -c:a aac -b:a 192k -movflags +faststart "<name>_clean.mp4"-tag:v hvc1를 추가하세요. - 검증:
ffprobe로 지속 시간을 원본과 비교(프레임 단위까지 일치해야 함), 그리고 동일한 오프셋에서 30초 전/후 쌍을 잘라내어(-vn -c:a copy) 사용자가 비교할 수 있도록 합니다.
스크립트 라이브러리
사용자에게 스크립트 라이브러리(find-script, save-script)가 있는 경우, Modal 작업을 변경하기 전에 확인하고 변경된 버전을 저장하십시오.
비용 및 제한 사항
- 스크립트 내 GPU 목록: L4, A10G, L40S (Modal에서 사용 가능한 것). 타임아웃 1시간.
- 전체 파일이 함수에 바이트로 전송됩니다. 최대 1~2시간 정도의 모노 FLAC 음성 트랙에 적합; 더 긴 자료의 경우 오디오를 분할하고 각 부분을 실행한 후 ffmpeg
concat으로 결합하세요. - 가중치는 각 Cold start 시 Hugging Face에서 다운로드됩니다(공개, 토큰 불필요).
관련 항목
로컬 편집, 렌더링 및 오디오 작업(Kdenlive, melt, ffmpeg 프리셋, 무음 제거)에 대해서는 이 플러그인의 complementary-plugins 스킬을 참조하세요.