Views
No views yet
1import torch
2import gradio as gr
3from transformers import (
4 AutomaticSpeechRecognitionPipeline,
5 WhisperForConditionalGeneration,
6 WhisperTokenizer,
7 WhisperProcessor,
8)
9from peft import PeftModel, PeftConfig
10from pytube import YouTube
11
12peft_model_id = "anzorq/openai-whisper-large-v2-LORA-colab"
13# peft_model_id = "/content/whisper_large_kbd_lora/checkpoint-64"
14language = "Georgian"
15task = "transcribe"
16peft_config = PeftConfig.from_pretrained(peft_model_id)
17model = WhisperForConditionalGeneration.from_pretrained(
18 peft_config.base_model_name_or_path, load_in_8bit=True, device_map="auto"
19)
20
21model = PeftModel.from_pretrained(model, peft_model_id)
22tokenizer = WhisperTokenizer.from_pretrained(peft_config.base_model_name_or_path, language=language, task=task)
23processor = WhisperProcessor.from_pretrained(peft_config.base_model_name_or_path, language=language, task=task)
24feature_extractor = processor.feature_extractor
25forced_decoder_ids = processor.get_decoder_prompt_ids(language=language, task=task)
26pipe = AutomaticSpeechRecognitionPipeline(model=model, tokenizer=tokenizer, feature_extractor=feature_extractor)
27
28def transcribe(path_to_audio):
29 with torch.cuda.amp.autocast():
30 text = pipe(audio_path, generate_kwargs={"forced_decoder_ids": forced_decoder_ids}, max_new_tokens=255)["text"]
31 return text
32
33transcribe(path_to_audio)bitsandbytes quantization config was used during training: