Communitygithub.com

clean-voice-sidon

비디오(전화 통화 또는 인물 인터뷰 녹화)의 음성 트랙을 Sidon 음성 복원 모델을 사용하여 Modal 클라우드 GPU에서 정리한 후, 라우드니스 노멀라이즈 및 리먹싱합니다. '오디오 정리', '음성 향상', '영상 노이즈 제거', '전화 마이크 음질 수정' 작업에 사용하세요.

clean-voice-sidon란 무엇인가요?

이 스킬은 Sidon v0.1(sarulab-speech/sidon-v0.1) 음성 복원 모델을 Modal 클라우드 GPU에서 실행하여 비디오 음성 트랙에서 잡음과 반향을 제거하고 48kHz 고음질로 재합성합니다. 로컬에서는 ffmpeg를 이용해 오디오 추출/라우드니스 측정/리먹싱만 수행하며, GPU가 필요한 모델 추론만 Modal에서 이루어집니다. 비디오 스트림은 재인코딩되지 않습니다. 먼저 30초 샘플로 결과를 확인한 후 전체 파일을 처리할 수 있으며, 측정된 라우드니스 값을 기반으로 YouTube 스타일(-14 LUFS)의 라우드니스 노멀라이즈를 적용합니다. 장시간 파일도 청크 단위로 처리 가능하고, Cold start 시 가중치를 Hugging Face에서 다운로드하며 Modal 이미지 빌드는 첫 실행에만 필요합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/danielrosehill/Remote-Video-Editing/tree/HEAD/skills/clean-voice-sidon

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

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

문서

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_commandmodalModal 앱을 실행하는 명령어 (프로필 또는 워크스페이스를 선택하는 래퍼도 가능)
run_notes없음Modal을 실행할 위치(예: 인증을 보유한 다른 호스트)와 파일이 도달하는 방법에 대한 자유 텍스트 지침. 따를 것.
loudness_lufs-14통합 라우드니스 목표 값 (YouTube 스타일)
true_peak_db-1.5실제 피크 제한 값

파일이 없고 modal token이 설정되지 않은 경우(modal profile current 실패), 사용자에게 modal setup을 먼저 실행하라고 알리고 중단합니다.

절차

원본 비디오 옆에 있는 폴더에서 작업합니다. IN=<비디오>, MODAL=<modal_command, 기본값 modal>.

  1. 오디오 추출 (모노 48kHz FLAC):
    ffmpeg -v error -y -i "$IN" -vn -ac 1 -ar 48000 -c:a flac -sample_fmt s16 audio.flac
    
  2. 먼저 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
    
    두 파일을 사용자에게 제공하여 들어보게 합니다. 사용자가 사운드를 승인할 때까지 전체 파일을 실행하지 마십시오.
  3. 전체 트랙 실행:
    $MODAL run "${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py" --src audio.flac --out audio_sidon.flac
    
    작업은 96초 청크당 한 줄씩 출력합니다. 첫 번째 실행은 이미지를 빌드합니다(몇 분 소요); 이후 실행은 이를 재사용합니다.
  4. 라우드니스 측정 (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 '^{'
    
  5. 리먹싱 (측정된 값 사용). 비디오는 스트림 복사:
    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"
    
    Apple 플레이어에서 재생해야 하는 HEVC 소스의 경우 -tag:v hvc1를 추가하세요.
  6. 검증: 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 스킬을 참조하세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬