Communitygithub.com

clean-voice-sidon

Limpe a trilha de voz de um vídeo (gravação de telefone ou talking-head) com o modelo Sidon de restauração de fala em uma GPU em nuvem Modal, normalize a loudness e remuxe no vídeo. Use para "limpar o áudio", "melhorar minha voz", "reduzir ruído deste vídeo", "consertar o áudio do microfone do telefone".

O que é clean-voice-sidon?

Esta skill utiliza o modelo Sidon v0.1 (Hugging Face), um modelo de áudio para áudio que re-sintetiza a voz a 48 kHz, para remover ruídos de fundo e melhorar a qualidade de gravações de voz em vídeos. A skill executa o modelo em uma GPU na nuvem Modal, enquanto as operações de extração de áudio, normalização de loudness e remuxagem são realizadas localmente com ffmpeg, sem re-codificar o vídeo original. Ela suporta plataformas como Claude Code e outros agentes que utilizam plugins, e segue um procedimento passo a passo: extrai o áudio como FLAC mono 48 kHz, testa primeiro um trecho de 30 segundos para aprovação do usuário, processa o áudio completo no Modal, normaliza a loudness para alvos configuráveis (como -14 LUFS) e remuxa o áudio limpo no vídeo original. A skill é ideal para gravações de telefone ou talking-head, mas não preserva música ou sons não-fala; é recomendável adicionar trilhas musicais após a limpeza vocal. Ela oferece preferências configuráveis via arquivo JSON e verifica a existência de uma biblioteca de scripts para armazenar modificações.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Limpe a voz de um vídeo com Sidon no Modal

Restauração de fala com Sidon v0.1 (sarulab-speech/sidon-v0.1 no Hugging Face), um modelo áudio para áudio que re-sintetiza a voz em 48 kHz. Ele precisa de uma GPU, então o modelo roda no Modal; todo o resto (extração, loudness, remuxagem) é feito com ffmpeg local na máquina. O fluxo de vídeo nunca é re-codificado.

O job do Modal é scripts/sidon_enhance.py neste plugin (${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py).

Escolha do modelo (por que Sidon)

ModeloVeredito
Sidon v0.1Padrão. Leve; um arquivo de 11 minutos rodou em um job em uma GPU classe L4 por alguns centavos. A saída é limpa, banda completa, 48 kHz.
NVIDIA RE-USEMantém mais detalhes espectrais do próprio locutor, mas ficou sem memória GPU em arquivos longos (falhou no segundo chunk de 30 s de um arquivo de 11 minutos). Use apenas para clipes curtos.
DeepFilterNetDescartado: distorção audível na voz.

Sidon regenera tudo acima de 8 kHz, então o resultado é uma voz sem nenhum ruído de ambiente ou fundo. Música e outros sons não-fala na trilha são perdidos. Se o vídeo tiver faixas musicais, limpe a voz antes de adicioná-las.

Preferências

Leia remote-video-editing/preferences.json sob a primeira raiz de dados que existir: $CLAUDE_USER_DATA, depois ~/.claude-user-data, depois ${XDG_DATA_HOME:-~/.local/share}/claude-plugins. Chaves:

ChavePadrãoSignificado
modal_commandmodalComando que executa apps Modal (um wrapper que seleciona perfil ou workspace é aceito)
run_notesnenhumInstruções de texto livre sobre onde rodar Modal (ex.: outro host que detém a autenticação) e como os arquivos chegam até ele. Siga-as.
loudness_lufs-14Alvo de loudness integrada (estilo YouTube)
true_peak_db-1.5Teto de pico verdadeiro

Se nenhum arquivo existir e modal token não estiver configurado (modal profile current falhar), pare e peça ao usuário para rodar modal setup primeiro.

Procedimento

Trabalhe em uma pasta ao lado do vídeo de origem. IN=<video>, MODAL=<modal_command, padrão modal>.

  1. Extraia o áudio como FLAC mono 48 kHz:
    ffmpeg -v error -y -i "$IN" -vn -ac 1 -ar 48000 -c:a flac -sample_fmt s16 audio.flac
    
  2. Teste com 30 segundos primeiro. Corte um clipe de uma seção com fala (não nos primeiros segundos):
    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
    
    Entregue ambos os arquivos ao usuário para ouvir. Não processe o arquivo completo até que ele aprove o som.
  3. Processe a trilha completa:
    $MODAL run "${CLAUDE_PLUGIN_ROOT}/scripts/sidon_enhance.py" --src audio.flac --out audio_sidon.flac
    
    O job imprime uma linha por chunk de 96 s. A primeira execução constrói a imagem (alguns minutos); execuções posteriores a reutilizam.
  4. Meça a loudness (primeira passagem do loudnorm de duas passagens):
    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. Remuxe com os valores medidos. O vídeo é copiado diretamente:
    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 "<nome>_clean.mp4"
    
    Para fontes HEVC que precisam tocar em players Apple, adicione -tag:v hvc1.
  6. Verifique: Use ffprobe para comparar a duração com a fonte (deve coincidir dentro de um quadro) e corte um par de 30 s antes/depois no mesmo offset (-vn -c:a copy) para o usuário comparar.

Biblioteca de scripts

Se o usuário tiver uma biblioteca de scripts (find-script, save-script), verifique-a antes de alterar o job do Modal e salve qualquer versão modificada depois.

Custo e limites

  • Lista de GPU no script: L4, A10G, L40S (o que Modal tiver disponível). Timeout de 1 hora.
  • O arquivo inteiro é enviado para a função como bytes. Funciona para trilhas de voz de até uma ou duas horas de FLAC mono; para material mais longo, divida o áudio, processe as partes e junte com ffmpeg concat.
  • Os pesos são baixados do Hugging Face a cada cold start (público, nenhum token necessário).

Relacionados

Para edição local, renderização e trabalho de áudio (Kdenlive, melt, predefinições ffmpeg, corte de silêncio), veja a skill complementary-plugins neste plugin.

Individual skills in this repo

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

Habilidades Relacionadas