Spaces:
Sleeping
Sleeping
from faster_whisper import WhisperModel | |
import os | |
import torch # Lägg till import av torch för att kontrollera GPU | |
# Globalt model för att undvika återladdning | |
model = None | |
def get_model(): | |
global model | |
if model is None: | |
# Kontrollera om GPU är tillgänglig och använd den | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
# Använd float16 för att dra nytta av GPU:n, int8_float16 är också ett alternativ | |
compute_type = "float16" if device == "cuda" else "int8" | |
print(f"Laddar Whisper-modell på {device} med compute_type={compute_type}") | |
model = WhisperModel("base", device=device, compute_type=compute_type) | |
return model | |
def transcribe_audio(audio_path: str) -> str: | |
"""Transkribera ljudfil till text""" | |
try: | |
if not os.path.exists(audio_path): | |
return f"Audio file not found: {audio_path}" | |
model = get_model() | |
segments, info = model.transcribe(audio_path, beam_size=5) | |
transcription = " ".join(segment.text for segment in segments) | |
return transcription.strip() or "No transcription found." | |
except Exception as e: | |
return f"Error transcribing audio: {str(e)}" | |