Views
No views yet
1from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, BitsAndBytesConfig
2import torch
3import librosa
4
5# Load processor
6processor = AutoProcessor.from_pretrained("Jacaranda-Health/ASR-STT-4bit")
7
8# Configure quantization
9quantization_config = BitsAndBytesConfig(
10 load_in_4bit=True,
11 bnb_4bit_compute_dtype=torch.float16,
12 bnb_4bit_quant_type="nf4",
13 bnb_4bit_use_double_quant=True
14)
15
16# Load quantized model
17model = AutoModelForSpeechSeq2Seq.from_pretrained(
18 "Jacaranda-Health/ASR-STT-4bit",
19 quantization_config=quantization_config,
20 device_map="auto"
21)
22
23# Transcription function
24def transcribe(filepath):
25 audio, sr = librosa.load(filepath, sr=16000)
26 inputs = processor(audio, sampling_rate=sr, return_tensors="pt")
27
28 # Convert to half precision for quantized models
29 if torch.cuda.is_available():
30 inputs = {k: v.cuda().half() for k, v in inputs.items()}
31 else:
32 inputs = {k: v.half() for k, v in inputs.items()}
33
34 with torch.no_grad():
35 generated_ids = model.generate(inputs["input_features"])
36
37 return processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
38
39# Example usage
40transcription = transcribe("path/to/audio.wav")
41print(transcription)