Views
No views yet
1import torch
2from transformers import AutomaticSpeechRecognitionPipeline
3from transformers import WhisperTokenizer,WhisperForConditionalGeneration,WhisperProcessor
4from peft import PeftModel, PeftConfig
5
6stt_model_id = "ShakhzoDavronov/whisper-large-lora-uz"
7language = "Uzbek"
8task = "transcribe"
9stt_config = PeftConfig.from_pretrained(stt_model_id)
10stt_model = WhisperForConditionalGeneration.from_pretrained(
11 stt_config.base_model_name_or_path, load_in_8bit=True, device_map="auto"
12)
13
14stt_model = PeftModel.from_pretrained(stt_model, stt_model_id)
15stt_tokenizer = WhisperTokenizer.from_pretrained(stt_config.base_model_name_or_path, language=language, task=task)
16stt_processor = WhisperProcessor.from_pretrained(stt_config.base_model_name_or_path, language=language, task=task)
17stt_feature_extractor = stt_processor.feature_extractor
18forced_decoder_ids = stt_processor.get_decoder_prompt_ids(language=language, task=task)
19stt_pipe = AutomaticSpeechRecognitionPipeline(model=stt_model, tokenizer=stt_tokenizer, feature_extractor=stt_feature_extractor)
20
21
22def transcribe(audio):
23 with torch.cuda.amp.autocast():
24 text = stt_pipe(audio, generate_kwargs={"forced_decoder_ids": forced_decoder_ids}, max_new_tokens=255)["text"]
25 return text1extracted_text=transcribe(test_audio)
2ner_labels=ner_pipe(extracted_text)
3for ner in ner_labels:
4 print(ner)Soon