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 | |