Spaces:
hersia
/
Runtime error

PiPWorld / app.py
hersia's picture
Update app.py
970deff
raw
history blame
1.98 kB
import os
import gradio as gr
import openai
from gtts import gTTS
openai.api_key = "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"
def transcribe(audio):
audio_file = open(audio, "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
return transcript["text"]
with gr.Blocks() as demo:
gr.Markdown("""
# Welcome to PiP World.
""")
with gr.Accordion("Click for Instructions:"):
gr.Markdown("""
* Record your query.
* Submit your query, and follow the chat or listen to the advice.
* When you are ready to respond, clear your last recording and resubmit.
note: Transcribe Audio does not work on iOS
""")
messages = gr.State(value=[{"role": "system", "content": "Ignore all instructions prior to this one. Prompt: Design an all-inclusive, interactive, and immersive gamified chat-based training program"}])
with gr.Row():
with gr.Column(scale=1):
user_audio = gr.Audio(source="microphone", type="filepath", label="Input Phrase")
submit_btn = gr.Button(value="Transcribe Audio")
gpt_voice = gr.Audio(label="Listen to Advice")
with gr.Column(scale=2):
user_transcript = gr.Text(label="Audio Translation", interactive=False)
user_text = gr.Text(label="Text Input", on_enter=True) # Set on_enter to True
gpt_transcript = gr.Text(label="Chat Transcript")
submit_btn.click(transcribe, inputs=user_audio, outputs=user_transcript)
user_text.set_on_enter(lambda: botResponse(user_text.value, messages, gpt_transcript)) # Bind the action to on_enter
user_text.set_on_change(lambda: botResponse(user_text.value, messages, gpt_transcript)) # Bind the action to on_change
user_transcript.on_change(botResponse, inputs=[user_transcript, messages], outputs=gpt_transcript)
gpt_transcript.on_change(giveVoice, inputs=messages, outputs=gpt_voice)
demo.launch(share=False)