import whisper import gradio as gr # load model and processor model = whisper.load_model("medium") def transcribe(audio): #time.sleep(3) # 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) print(f"Detected language: {max(probs, key=probs.get)}") # decode the audio options = whisper.DecodingOptions(fp16 = False) result = whisper.decode(model, mel, options) return result.text # gr.Interface( # title = 'Talk to NP', # fn=transcribe, # inputs=[ # gr.inputs.Audio(source="microphone", type="filepath") # ], # outputs=[ # "textbox" # ], # live=True).launch() def speech_to_text(speech): text = asr(speech)["text"] return text def text_to_sentiment(text): return classifier(text)[0]["label"] demo = gr.Blocks() with demo: audio_file = gr.Audio(type="filepath") text1 = gr.Textbox() text2 = gr.Textbox() b1 = gr.Button("Transcribe audio") b2 = gr.Button("Summarize") b1.click(transcribe, inputs=audio_file, outputs=text1) b2.click(text_to_sentiment, inputs=text1, outputs=text2) demo.launch()