Spaces:
Runtime error
Runtime error
File size: 2,345 Bytes
38a7da0 a990f25 38a7da0 3f3a4e9 5b0f452 3f3a4e9 a990f25 38a7da0 e8a1049 38a7da0 e8a1049 38a7da0 a990f25 7a7846c 2028320 7a7846c 602521a a990f25 7a7846c 2028320 7a7846c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import whisper
import gradio as gr
import openai
import os
openai.api_key = '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'
# load model and processor
model = whisper.load_model("medium")
def get_completion(prompt, model='gpt-3.5-turbo'):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model = model,
messages = messages,
temperature = 0,
)
return response.choices[0].message['content']
def transcribe(audio):
#time.sleep(3)
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio(audio_file)
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()
prompt = f"""
You are a world class nurse practitioner. You are provided with text delimited by triple quotes. \
Summarize the text and put it in a table format with rows as follows: \
1. Patient identification:
2. Chief complaint:
3. Medical history:
4. Family history:
5. Social history:
6. Review of systems:
7. Current medications:
8. Vaccination status:
9. Emotional well-being:
10. Patient concerns and expectations:
\"\"\"{text1}\"\"\"
"""
b1 = gr.Button("Transcribe audio")
b2 = gr.Button("Summarize")
b1.click(transcribe, inputs=audio_file, outputs=text1)
b2.click(get_completion, inputs=text1, outputs=text2)
demo.launch()
|