Spaces:
Sleeping
Sleeping
import gradio as gr | |
from dotenv import load_dotenv | |
from gradio import ChatMessage | |
from setup import Speech_Text | |
from temp import Script | |
load_dotenv() | |
transcriptor = Speech_Text() | |
output_id = None | |
database_con = Script() | |
# Function to generate chatbot response | |
def generate_response(chat_history: list[ChatMessage]): | |
return database_con.request(chat_history) | |
def process(audio, input_text, chat_history: list[ChatMessage]): | |
if audio is not None: | |
transcript = transcriptor.get_transcript(audio) | |
chat_history.append({"role": "user", "content": transcript}) | |
elif input_text: | |
chat_history.append({"role": "user", "content": input_text}) | |
else: | |
response = 'Provide a query text or an audio to query.' | |
chat_history.append({"role": "assistant", "content": response}) | |
# audio_data = transcriptor.speech_synthesis(response) | |
return chat_history | |
response = generate_response(chat_history) | |
chat_history.append({"role": "assistant", "content": response}) | |
# audio_data = transcriptor.speech_synthesis(response) | |
return chat_history | |
# Create Gradio Blocks interface | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
chatbot = gr.Chatbot(label="Chatbot Conversation", type="messages", bubble_full_width=True, show_copy_button=True, autoscroll=True) | |
with gr.Row(): | |
input_textbox = gr.Textbox(label="Input Text", placeholder="Type your message here...") | |
input_audio = gr.Audio(label="Input Audio", sources="microphone", type="numpy") | |
process_button = gr.Button("Submit Query") | |
process_button.click( | |
fn=process, | |
inputs=[input_audio, input_textbox, chatbot], | |
outputs=[chatbot]) | |
if __name__ == "__main__": | |
demo.launch() |