Spaces:
Runtime error
Runtime error
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() | |