Views
No views yet





1from transformers import WhisperProcessor, WhisperForConditionalGeneration
2import torchaudio
3import torch
4
5model_name = "ionut-visan/whisper-large-v3-turbo_kinyarwanda500"
6
7# Load processor and model
8processor = WhisperProcessor.from_pretrained(model_name)
9model = WhisperForConditionalGeneration.from_pretrained(model_name)
10
11# Move model to GPU if available
12device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13model.to(device)
14model.eval()
15
16def preprocess_audio(audio_path, processor):
17 waveform, sample_rate = torchaudio.load(audio_path)
18
19 if sample_rate != 16000:
20 resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=16000)
21 waveform = resampler(waveform)
22
23 inputs = processor(waveform.squeeze().numpy(), sampling_rate=16000, return_tensors="pt")
24 return {key: val.to(device) for key, val in inputs.items()}
25
26def transcribe(audio_path, model, processor):
27 """Generate transcription."""
28 inputs = preprocess_audio(audio_path, processor)
29
30 with torch.no_grad():
31 generated_ids = model.generate(inputs["input_features"])
32
33 transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)
34 return transcription[0]
35
36# Define audio path
37audio_file = "audio.wav"
38transcription = transcribe(audio_file, model, processor)
39print("Transcription:", transcription)