Interview-GPT / app.py
GreenRaptor's picture
Update app.py
aa5cf68
raw
history blame
3.24 kB
import time
import random
import gradio as gr
# from transformers import pipeline
# p = pipeline("automatic-speech-recognition")
def user(user_message, history):
return "", history + [[user_message, None]]
# def transcribe(audio, state=""):
# text = p(audio)["text"]
# state += text + " "
# return state, state
def transcribe(audio):
text = p(audio)["text"]
return text
def bot(history):
bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
history[-1][1] = ""
for character in bot_message:
history[-1][1] += character
time.sleep(0.05)
yield history
css = """
.gradio-container {
font-family: 'IBM Plex Sans', sans-serif;
}
.gr-button {
color: white;
border-color: black;
background: black;
}
.container {
max-width: 730px;
margin: auto;
padding-top: 1.5rem;
}
#chatbot {
min-height: 30rem;
margin-bottom: 15px;
margin-left: auto;
margin-right: auto;
}
"""
with gr.Blocks(css=css) as demo:
gr.HTML(
"""
<div style="text-align: center; margin: 0 auto;">
<div
style="
display: inline-flex;
align-items: center;
gap: 0.8rem;
font-size: 1.75rem;
"
>
<h1 style="font-weight: 900; margin-bottom: 7px;margin-top:5px">
Interview with AI (Really?)
</h1>
</div>
</div>
"""
)
with gr.Box():
# chatbot = gr.Chatbot()
# msg = gr.Textbox()
chatbot = gr.Chatbot([], show_label=False, elem_id="chatbot").style(height="auto")
# with gr.Row():
with gr.Row(elem_id="prompt-container").style(mobile_collapse=False, equal_height=True):
with gr.Column(scale=0.85):
txt = gr.Textbox(
show_label=False,
placeholder="Type your response and press enter, or record your response",
).style(container=False)
with gr.Column(scale=0.15, min_width=0):
# record = gr.Audio(source="microphone", type="filepath", show_label=False)
gr.Interface(
fn=transcribe,
inputs=gr.Audio(source="microphone", type="filepath", show_label=False),
outputs="text")
# gr.Interface(
# fn=transcribe,
# inputs=[
# gr.Audio(source="microphone", type="filepath", streaming=True),
# "state"
# ],
# outputs=[
# msg,
# "state"
# ],
# live=True)
submit = gr.Button("Submit")
txt.submit(user, [txt, chatbot], [txt, chatbot], queue=False).then(
bot, chatbot, chatbot
)
submit.click(user, [txt, chatbot], [txt, chatbot], queue=False).then(
bot, chatbot, chatbot
)
demo.queue()
demo.launch()