Spaces:
Running
Running
import torch | |
from transformers import pipeline | |
from logging_config import logger | |
def run_whisper_transcription(wav_file_path: str, device: str): | |
try: | |
model_name = "distil-whisper/distil-small.en" | |
logger.info(f"Initialising Whisper ASR pipeline with model: {model_name}") | |
logger.info(f"Running pipeline on device: {device}") | |
asr_pipeline = pipeline( | |
"automatic-speech-recognition", | |
model=model_name, | |
device=0 if device == "cuda" else -1, | |
return_timestamps=True | |
) | |
logger.info("Whisper ASR pipeline initialised.") | |
logger.info(f"Starting transcription for file: {wav_file_path}") | |
# Perform transcription | |
result = asr_pipeline(wav_file_path) | |
transcription = result.get("text", "") | |
logger.info("Transcription completed successfully.") | |
yield transcription # Yield only the transcription string | |
except Exception as e: | |
err_msg = f"Error during transcription: {str(e)}" | |
logger.error(err_msg) | |
yield err_msg # Yield only the error message string | |