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)}"