import whisper import gradio as gr model = whisper.load_model("medium") def transcribe(audio): # load audio and pad/trim it to fit 30 seconds audio = whisper.load_audio(audio) audio = whisper.pad_or_trim(audio) # make log-Mel spectrogram and move to the same device as the model mel = whisper.log_mel_spectrogram(audio).to(model.device) # detect the spoken language _, probs = model.detect_language(mel) detected_language = max(probs, key=probs.get) task = 'transcribe' if detected_language == 'en' else 'translate' print(f"Detected language: {detected_language}") # decode the audio options = whisper.DecodingOptions(task = task, fp16 = False, language=detected_language) result = whisper.decode(model, mel, options) return result.text gr.Interface( title = 'Whisper ASR With Auto Punctuation and Auto Translation Into En', fn=transcribe, inputs=[ gr.inputs.Audio(source="microphone", type="filepath") ], outputs=[ "textbox" ] ).launch()