Spaces:
Runtime error
Runtime error
File size: 3,689 Bytes
38a7da0 a990f25 08fbba1 3ae5946 38a7da0 54ecabd 38a7da0 54ecabd 6c8d339 54ecabd 4579397 54ecabd 4579397 54ecabd 4579397 54ecabd 869e886 54ecabd 38a7da0 84d3dde c279ea6 f304c9c c6874ca f304c9c c6874ca f304c9c c279ea6 fd48156 e24d441 9cd7ee3 19ba116 d3c50e4 9cd7ee3 19ba116 2baf7a5 fd48156 aed1a1c 473819b 84d3dde bc72fb2 84d3dde 08fbba1 6b8406b 473819b f304c9c 08fbba1 ed5f4de 08fbba1 c279ea6 5ef14a2 c279ea6 f304c9c c279ea6 84d3dde 8f8b684 84d3dde 935f0c9 84d3dde 2f8eb98 84d3dde |
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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
import whisper
import gradio as gr
import openai
import os
openai.api_key = os.environ["OPENAI_API_KEY"]
model = whisper.load_model("small")
def transcribe(audio):
model = whisper.load_model("base")
result = model.transcribe(audio)
return result["text"]
# 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
def process_text(input_text):
# Apply your function here to process the input text
output_text = input_text.upper()
return output_text
def get_completion(prompt, model='gpt-3.5-turbo'):
messages = [
{"role": "system", "content": """You are a world class nurse practitioner. You are provided with the transcription following a patient's visit. \
Extract the following information from the transcription, replace curly brackets with relevant extracted information, and present as follows, one category per line: \
Date of Visit: {}
Claimant: {}
Client/Employer: {}
Claim #: {}
DOI (Date of Injury): {}
Provider: {}
Diagnosis Treated: {}
Subjective findings: {}
Objective Findings: {}
Treatment plan: {}
Medications: {}
RTW (Return to Work) Status: {}
Restrictions: {}
NOV (Next Office Visit): {}
Only use the information from the provided transcription. Do not make up stuff. If information is not available just put "N/A" next to the relevant line.
"""
},
{"role": "user", "content": prompt}
]
response = openai.ChatCompletion.create(
model = model,
messages = messages,
temperature = 0,
)
return response.choices[0].message['content']
with gr.Blocks() as demo:
gr.Markdown("""
# Chat with NP <br>
This is to make life of NPs easier.
Record post visit summary in natural language, press "transcribe audio", and then "prepare a report".
""")
title = "Chat with NP"
audio = gr.Audio(source="microphone", type="filepath")
b1 = gr.Button("Transcribe audio")
b2 = gr.Button("Prepare a report")
text1 = gr.Textbox(lines=5)
text2 = gr.Textbox(lines=5)
prompt = text1
b1.click(transcribe, inputs=audio, outputs=text1)
b2.click(get_completion, inputs=text1, outputs=text2)
# b1.click(transcribe, inputs=audio, outputs=text1)
# b2.click(get_completion, inputs=prompt, outputs=text2)
demo.launch()
#demo.launch(share=True, auth=("username", "password"))
# In this example, the process_text function just converts the input text to uppercase, but you can replace it with your desired function. The Gradio Blocks interface will have two buttons: "Transcribe audio" and "Process text". The first button transcribes the audio and fills the first textbox, and the second button processes the text from the first textbox and fills the second textbox.
# gr.Interface(
# title = 'OpenAI Whisper ASR Gradio Web UI',
# fn=transcribe,
# inputs=[
# gr.inputs.Audio(source="microphone", type="filepath")
# ],
# outputs=[
# "textbox"
# ],
# live=True).launch()
|