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