import gradio as gr from faster_whisper import WhisperModel # Load tiny model optimized for CPU model_size = "tiny" device = "cpu" compute_type = "int8" model = WhisperModel(model_size, device=device, compute_type=compute_type) def transcribe(audio): if audio is None: return "No audio detected" segments, _ = model.transcribe(audio, beam_size=5) return "".join([segment.text for segment in segments]) # Allow both microphone and file upload gr.Interface( title='Fast Whisper Speech Recognition', description='CPU-optimized speech-to-text using Whisper tiny model', fn=transcribe, inputs=gr.Audio(sources=["microphone", "upload"], type="filepath"), outputs="textbox" ).launch()