diff --git a/download_model.py b/download_model.py index 9c96384..fda2716 100644 --- a/download_model.py +++ b/download_model.py @@ -1,3 +1,3 @@ from google.colab import files files.download("./OUTPUT_MODEL/G_latest.pth") -files.download("./configs/modified_finetune_speaker.json") \ No newline at end of file +files.download("./finetune_speaker.json") \ No newline at end of file diff --git a/video_transcribe.py b/video_transcribe.py new file mode 100644 index 0000000..c820d8a --- /dev/null +++ b/video_transcribe.py @@ -0,0 +1,43 @@ +from moviepy.editor import AudioFileClip +import whisper +import os +import torchaudio +parent_dir = "../" +filelist = ["taffy1.mp4", "taffy2.mp4"] +for file in filelist: + my_audio_clip = AudioFileClip(parent_dir + file) + my_audio_clip.write_audiofile(parent_dir + file.rstrip(".mp4") + ".wav") +for file in filelist: + file = file.replace(".mp4", ".wav") + os.system(f"demucs --two-stems=vocals {parent_dir}{file}") +for file in filelist: + file = file.strip(".mp4") + 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 != 22050: + wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=22050)(wav) + torchaudio.save(file + ".wav", wav, 22050, channels_first=True) +model = whisper.load_model("medium") +def transcribe_one(audio_path): + # load audio and pad/trim it to fit 30 seconds + audio = whisper.load_audio(audio_path) + audio = whisper.pad_or_trim(audio) + + # make log-Mel spectrogram and move to the same device as the model + mel = whisper.log_mel_spectrogram(audio).to(model.device) + + # detect the spoken language + _, probs = model.detect_language(mel) + lang = max(probs, key=probs.get) + # decode the audio + options = whisper.DecodingOptions() + result = whisper.decode(model, mel, options) + + # print the recognized text + return result + +result = model.transcribe("taffy2.wav") +# segment audio based on segment results +