Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| # Load the model and processor | |
| model_id = "openai/whisper-small" | |
| device = "cpu" | |
| BATCH_SIZE = 8 | |
| pipe = pipeline( | |
| task="automatic-speech-recognition", | |
| model=model_id, | |
| chunk_length_s=30, | |
| device=device, | |
| ) | |
| def transcribe(inputs, task): | |
| if inputs is None: | |
| raise gr.Error("No audio file submitted! Please upload or record an audio file before submitting your request.") | |
| text = pipe(inputs, batch_size=BATCH_SIZE, generate_kwargs={"task": task}, return_timestamps=True)["text"] | |
| return text | |
| def transcribelocal(microphone, file_upload): | |
| # Check which input is not None | |
| if microphone is not None: | |
| audio = microphone | |
| else: | |
| audio = file_upload | |
| return transcribe(audio, "transcribe") | |
| # Create a Gradio interface with two modes: realtime and file upload | |
| iface = gr.Interface( | |
| fn=transcribelocal, | |
| inputs=[ | |
| gr.inputs.Audio(source="microphone", type="filepath", label="Realtime Mode"), | |
| gr.inputs.Audio(source="upload", type="filepath", label="File Upload Mode") | |
| ], | |
| outputs=[ | |
| gr.outputs.Textbox(label="Transcription") | |
| ], | |
| title="Whisper Transcription App", | |
| description="A Gradio app that uses OpenAI's whisper model to transcribe audio" | |
| ) | |
| # Launch the app | |
| iface.launch() |