run.sh 1.2 KB

123456789101112131415161718192021
  1. #!/bin/bash
  2. mkdir -p /data/output /data/ingest /data/models /data/temp /data/cache
  3. rm -rf /data/temp/*
  4. # For each video file in the ingest directory
  5. for f in /data/ingest/*; do
  6. # Get file name without extension
  7. filename="$(basename "${f%.*}")"
  8. # Extract audio from video file
  9. ffmpeg -loglevel warning -y -i /data/ingest/"${f##*/}" -f wav /data/temp/"$filename".wav
  10. # Split voice and music from audio file
  11. python3 /vocal-remover/inference.py -i /data/temp/"$filename".wav -o /data/temp/ --tta --pretrained_model /vocal-remover/models/baseline.pth
  12. # Clone the voice
  13. svc infer -o /data/temp/"$filename"_"$SPEAKER".wav -m "$MODEL_PATH" -c "$MODEL_CONFIG_PATH" -s "$SPEAKER" /data/temp/"$filename"_Vocals.wav
  14. # Combine voice and music into one mp3 file
  15. ffmpeg -loglevel warning -y -i /data/temp/"$filename"_"$SPEAKER".wav -i /data/temp/"$filename"_Instruments.wav \
  16. -filter_complex "[0:a]volume=$VOCALS_VOLUME[a0];[a0][1:a]amix=inputs=2:duration=longest" /data/temp/"$filename"_"$SPEAKER"_combined.wav
  17. # Combine audio and video into one file
  18. ffmpeg -loglevel warning -y -i /data/ingest/"${f##*/}" -i /data/temp/"$filename"_"$SPEAKER"_combined.wav -c:v copy -map 0:v:0 -map 1:a:0 /data/output/"$filename".mp4
  19. done