From e33f8919d03f88b54411be8c7fade5550e697e3c Mon Sep 17 00:00:00 2001 From: Plachta Date: Fri, 21 Apr 2023 20:43:02 +0800 Subject: [PATCH] added new base model (pure Chinese) --- denoise_audio.py | 12 ++++++++---- short_audio_transcribe.py | 11 ++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/denoise_audio.py b/denoise_audio.py index a25f076..81a53b8 100644 --- a/denoise_audio.py +++ b/denoise_audio.py @@ -1,9 +1,13 @@ 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}") @@ -13,6 +17,6 @@ for file in filelist: channels_first=True) # merge two channels into one wav = wav.mean(dim=0).unsqueeze(0) - if sr != 22050: - wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=22050)(wav) - torchaudio.save(denoise_audio_dir + file + ".wav", wav, 22050, channels_first=True) \ No newline at end of file + 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/short_audio_transcribe.py b/short_audio_transcribe.py index 04b23ef..2cf3c69 100644 --- a/short_audio_transcribe.py +++ b/short_audio_transcribe.py @@ -1,5 +1,6 @@ import whisper import os +import json import torchaudio import argparse import torch @@ -54,6 +55,10 @@ if __name__ == "__main__": speaker_names = list(os.walk(parent_dir))[0][1] speaker_annos = [] # resample audios + # 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 speaker in speaker_names: for i, wavfile in enumerate(list(os.walk(parent_dir + speaker))[0][2]): # try to load file as audio @@ -63,12 +68,12 @@ if __name__ == "__main__": wav, sr = torchaudio.load(parent_dir + speaker + "/" + wavfile, frame_offset=0, num_frames=-1, normalize=True, channels_first=True) wav = wav.mean(dim=0).unsqueeze(0) - if sr != 22050: - wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=22050)(wav) + if sr != target_sr: + wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=target_sr)(wav) if wav.shape[1] / sr > 20: print(f"{wavfile} too long, ignoring\n") save_path = parent_dir + speaker + "/" + f"processed_{i}.wav" - torchaudio.save(save_path, wav, 22050, channels_first=True) + torchaudio.save(save_path, wav, target_sr, channels_first=True) # transcribe text lang, text = transcribe_one(save_path) if lang not in list(lang2token.keys()):