BasqueLabs/whisper-demo-basque
0
1 2import gradio as gr3from AinaTheme import theme4from faster_whisper import WhisperModel5import torch6 7device, torch_dtype = ("cuda", "float32") if torch.cuda.is_available() else ("cpu", "int8")8 9MODEL_NAME = "xezpeleta/whisper-tiny-eu-ct2"10print("Loading model ...")11model = WhisperModel(MODEL_NAME, compute_type=torch_dtype)12print("Loading model done.")13 14def transcribe(inputs):15 print("transcribe()")16 if inputs is None:17 raise gr.Error("Ez da audio fitxategirik aukeratu. Mesedez, igo audio fitxategi bat"\18 "edo grabatu zure ahotsa mikrofono bidez")19 20 segments, _ = model.transcribe(21 inputs, 22 chunk_length=30,23 task="transcribe",24 word_timestamps=True,25 repetition_penalty=1.1,26 temperature=[0.0, 0.1, 0.2, 0,3, 0.4, 0.6, 0.8, 1.0],27 )28 29 text = ""30 for segment in segments:31 text += " " + segment.text.strip()32 return text33 34 35description_string = "Mikrofono grabazioaren edo audio fitxategi baten transkripzio automatikoa\n Demo hau hurrengo eredu hauek erabiliz"\36 " sortua izan da: "\37 f"[{MODEL_NAME}](https://huggingface.co/{MODEL_NAME})"38 39 40def clear():41 return (None)42 43 44with gr.Blocks(theme=theme) as demo:45 gr.Markdown(description_string)46 with gr.Row():47 with gr.Column(scale=1):48 input = gr.Audio(sources=["upload", "microphone"], type="filepath", label="Audio")49 50 with gr.Column(scale=1):51 output = gr.Textbox(label="Output", lines=8)52 53 with gr.Row(variant="panel"):54 clear_btn = gr.Button("Clear")55 submit_btn = gr.Button("Submit", variant="primary")56 57 58 submit_btn.click(fn=transcribe, inputs=[input], outputs=[output])59 clear_btn.click(fn=clear,inputs=[], outputs=[input], queue=False,)60 61 62if __name__ == "__main__":63 demo.launch()64 65 66 