Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| import torch | |
| # Load the Whisper model pipeline for speech recognition with optimizations | |
| model_name = "Vira21/Whisper-Small-Khmer" | |
| whisper_pipeline = pipeline( | |
| "automatic-speech-recognition", | |
| model=model_name, | |
| device=0 if torch.cuda.is_available() else -1 # Use GPU if available, otherwise use CPU | |
| ) | |
| def transcribe_audio(audio): | |
| print(f"Received audio type: {type(audio)}") # Debugging line | |
| try: | |
| result = whisper_pipeline(audio)["text"] | |
| return result | |
| except Exception as e: | |
| return f"An error occurred during transcription: {str(e)}" | |
| # Gradio Interface with optimizations | |
| interface = gr.Interface( | |
| fn=transcribe_audio, | |
| inputs=gr.Audio(type="filepath"), | |
| outputs="text", | |
| title="Whisper Small Khmer-Eng Speech-to-Text", | |
| description="Upload an audio file or record your voice to get the transcription in Khmer-English.", | |
| examples=[["Example Audio/126.wav"], ["Example Audio/232.wav"], ["Example Audio/tomholland28282.wav"]], | |
| allow_flagging="never" # Disables flagging to save resources | |
| ) | |
| # Launch the app with queue enabled for better handling on free CPU | |
| if __name__ == "__main__": | |
| interface.queue() # Enable asynchronous queuing for better performance | |
| interface.launch() | |