From eb7eb8a022f0a7f0af4a46753d61e29fb3ca71c9 Mon Sep 17 00:00:00 2001 From: Plachta Date: Fri, 21 Apr 2023 21:17:45 +0800 Subject: [PATCH] rearranged repo --- denoise_audio.py => scripts/denoise_audio.py | 42 +++++++++---------- .../download_model.py | 0 .../download_video.py | 0 .../long_audio_transcribe.py | 6 ++- .../rearrange_speaker.py | 0 scripts/resample.py | 20 +++++++++ .../short_audio_transcribe.py | 0 video2audio.py => scripts/video2audio.py | 0 voice_upload.py => scripts/voice_upload.py | 0 9 files changed, 46 insertions(+), 22 deletions(-) rename denoise_audio.py => scripts/denoise_audio.py (97%) rename download_model.py => scripts/download_model.py (100%) rename download_video.py => scripts/download_video.py (100%) rename long_audio_transcribe.py => scripts/long_audio_transcribe.py (93%) rename rearrange_speaker.py => scripts/rearrange_speaker.py (100%) create mode 100644 scripts/resample.py rename short_audio_transcribe.py => scripts/short_audio_transcribe.py (100%) rename video2audio.py => scripts/video2audio.py (100%) rename voice_upload.py => scripts/voice_upload.py (100%) diff --git a/denoise_audio.py b/scripts/denoise_audio.py similarity index 97% rename from denoise_audio.py rename to scripts/denoise_audio.py index 81a53b8..fc061c6 100644 --- a/denoise_audio.py +++ b/scripts/denoise_audio.py @@ -1,22 +1,22 @@ -import os -import json -import torchaudio -raw_audio_dir = "./raw_audio/" -denoise_audio_dir = "./denoised_audio/" -filelist = list(os.walk(raw_audio_dir))[0][2] -# 2023/4/21: Get the target sampling rate -with open("./configs/finetune_speaker.json", 'r', encoding='utf-8') as f: - hps = json.load(f) -target_sr = hps['data']['sampling_rate'] -for file in filelist: - if file.endswith(".wav"): - os.system(f"demucs --two-stems=vocals {raw_audio_dir}{file}") -for file in filelist: - file = file.replace(".wav", "") - wav, sr = torchaudio.load(f"./separated/htdemucs/{file}/vocals.wav", frame_offset=0, num_frames=-1, normalize=True, - channels_first=True) - # merge two channels into one - wav = wav.mean(dim=0).unsqueeze(0) - if sr != target_sr: - wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=target_sr)(wav) +import os +import json +import torchaudio +raw_audio_dir = "./raw_audio/" +denoise_audio_dir = "./denoised_audio/" +filelist = list(os.walk(raw_audio_dir))[0][2] +# 2023/4/21: Get the target sampling rate +with open("./configs/finetune_speaker.json", 'r', encoding='utf-8') as f: + hps = json.load(f) +target_sr = hps['data']['sampling_rate'] +for file in filelist: + if file.endswith(".wav"): + os.system(f"demucs --two-stems=vocals {raw_audio_dir}{file}") +for file in filelist: + file = file.replace(".wav", "") + wav, sr = torchaudio.load(f"./separated/htdemucs/{file}/vocals.wav", frame_offset=0, num_frames=-1, normalize=True, + channels_first=True) + # merge two channels into one + wav = wav.mean(dim=0).unsqueeze(0) + if sr != target_sr: + wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=target_sr)(wav) torchaudio.save(denoise_audio_dir + file + ".wav", wav, target_sr, channels_first=True) \ No newline at end of file diff --git a/download_model.py b/scripts/download_model.py similarity index 100% rename from download_model.py rename to scripts/download_model.py diff --git a/download_video.py b/scripts/download_video.py similarity index 100% rename from download_video.py rename to scripts/download_video.py diff --git a/long_audio_transcribe.py b/scripts/long_audio_transcribe.py similarity index 93% rename from long_audio_transcribe.py rename to scripts/long_audio_transcribe.py index e786274..e839855 100644 --- a/long_audio_transcribe.py +++ b/scripts/long_audio_transcribe.py @@ -1,6 +1,7 @@ from moviepy.editor import AudioFileClip import whisper import os +import json import torchaudio import librosa import torch @@ -28,6 +29,9 @@ if __name__ == "__main__": 'zh': "[ZH]", } assert(torch.cuda.is_available()), "Please enable GPU in order to run Whisper!" + with open("./configs/finetune_speaker.json", 'r', encoding='utf-8') as f: + hps = json.load(f) + target_sr = hps['data']['sampling_rate'] model = whisper.load_model(args.whisper_size) speaker_annos = [] for file in filelist: @@ -62,7 +66,7 @@ if __name__ == "__main__": print(f"Transcribed segment: {speaker_annos[-1]}") # trimmed_wav_seg = librosa.effects.trim(wav_seg.squeeze().numpy()) # trimmed_wav_seg = torch.tensor(trimmed_wav_seg[0]).unsqueeze(0) - torchaudio.save(savepth, wav_seg, 22050, channels_first=True) + torchaudio.save(savepth, wav_seg, target_sr, channels_first=True) if len(speaker_annos) == 0: print("Warning: no long audios & videos found, this IS expected if you have only uploaded short audios") print("this IS NOT expected if you have uploaded any long audios, videos or video links. Please check your file structure or make sure your audio/video language is supported.") diff --git a/rearrange_speaker.py b/scripts/rearrange_speaker.py similarity index 100% rename from rearrange_speaker.py rename to scripts/rearrange_speaker.py diff --git a/scripts/resample.py b/scripts/resample.py new file mode 100644 index 0000000..7ed44ff --- /dev/null +++ b/scripts/resample.py @@ -0,0 +1,20 @@ +import os +import json +import argparse +import torchaudio + + +def main(): + with open("./configs/finetune_speaker.json", 'r', encoding='utf-8') as f: + hps = json.load(f) + target_sr = hps['data']['sampling_rate'] + filelist = list(os.walk("./sampled_audio4ft"))[0][2] + if target_sr != 22050: + for wavfile in filelist: + wav, sr = torchaudio.load("./sampled_audio4ft" + "/" + wavfile, frame_offset=0, num_frames=-1, + normalize=True, channels_first=True) + wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=target_sr)(wav) + torchaudio.save("./sampled_audio4ft" + "/" + wavfile, wav, target_sr, channels_first=True) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/short_audio_transcribe.py b/scripts/short_audio_transcribe.py similarity index 100% rename from short_audio_transcribe.py rename to scripts/short_audio_transcribe.py diff --git a/video2audio.py b/scripts/video2audio.py similarity index 100% rename from video2audio.py rename to scripts/video2audio.py diff --git a/voice_upload.py b/scripts/voice_upload.py similarity index 100% rename from voice_upload.py rename to scripts/voice_upload.py