whisper-en-tiny / app.py
azamat's picture
Added translation form any to en
825496b
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()