Views
No views yet
1from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
2import torch
3import torchaudio
4
5model_name = "sarahai/uzbek-stt-3"
6model = Wav2Vec2ForCTC.from_pretrained(model_name)
7processor = Wav2Vec2Processor.from_pretrained(model_name)
8
9device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
10model.to(device)
11
12def load_and_preprocess_audio(file_path):
13 speech_array, sampling_rate = torchaudio.load(file_path)
14 if sampling_rate != 16000:
15 resampler = torchaudio.transforms.Resample(orig_freq=sampling_rate, new_freq=16000)
16 speech_array = resampler(speech_array)
17 return speech_array.squeeze().numpy()
18
19def replace_unk(transcription):
20 return transcription.replace("[UNK]", "ʼ")
21
22audio_file = "/content/audio_2024-08-13_15-20-53.ogg"
23speech_array = load_and_preprocess_audio(audio_file)
24
25input_values = processor(speech_array, sampling_rate=16000, return_tensors="pt").input_values.to(device)
26
27with torch.no_grad():
28 logits = model(input_values).logits
29
30predicted_ids = torch.argmax(logits, dim=-1)
31transcription = processor.batch_decode(predicted_ids)
32
33transcription_text = replace_unk(transcription[0])
34
35print("Transcription:", transcription_text)