Spaces:
Runtime error
Runtime error
import gradio as gr | |
import random, json | |
from googletrans import Translator | |
from transformers import pipeline | |
translator = Translator() | |
sentiment_model = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment") | |
with open("questions.json", "r") as f: | |
questions = json.load(f) | |
with open("chatbot_lines.json", "r") as f: | |
chatbot_lines = json.load(f) | |
# Helper functies | |
def get_question(mode): | |
return random.choice(questions[mode]) | |
def process_input(audio, lang_from, lang_to): | |
text = "(Gesproken tekst hier invoegen)" | |
translation = translator.translate(text, src=lang_from, dest=lang_to).text | |
sentiment = sentiment_model(text)[0] | |
emotion = f"{sentiment['label']} ({sentiment['score']:.2f})" | |
# Chatbotreactie afhankelijk van type vraag | |
if sentiment['label'].lower() in ["1 star", "2 stars"]: | |
botline = random.choice(chatbot_lines["pittig"]) | |
else: | |
botline = random.choice(chatbot_lines["grappig"]) | |
return text, translation, emotion, botline | |
with gr.Blocks() as demo: | |
gr.Markdown("## ๐ญ Relatiegame voor 2 spelers op dezelfde computer") | |
with gr.Row(): | |
speler1_taal = gr.Dropdown(["en", "pl"], label="Speler A spreekt", value="en") | |
speler2_taal = gr.Dropdown(["pl", "en"], label="Speler B spreekt", value="pl") | |
mode = gr.Radio(["emotioneel", "speels"], label="Soort vraag") | |
vraagveld = gr.Textbox(label="Vraag", interactive=False) | |
nieuwevraag = gr.Button("Nieuwe vraag") | |
with gr.Row(): | |
audio1 = gr.Audio(source="microphone", type="filepath", label="๐๏ธ Speler A opname") | |
audio2 = gr.Audio(source="microphone", type="filepath", label="๐๏ธ Speler B opname") | |
out1 = gr.Textbox(label="Transcriptie Speler A") | |
trans1 = gr.Textbox(label="Vertaling voor Speler B") | |
emo1 = gr.Textbox(label="Emotie Speler A") | |
bot1 = gr.Textbox(label="๐ค Opmerking Chatbot A") | |
out2 = gr.Textbox(label="Transcriptie Speler B") | |
trans2 = gr.Textbox(label="Vertaling voor Speler A") | |
emo2 = gr.Textbox(label="Emotie Speler B") | |
bot2 = gr.Textbox(label="๐ค Opmerking Chatbot B") | |
nieuwevraag.click(fn=get_question, inputs=mode, outputs=vraagveld) | |
def run_a(a, l1, l2): return process_input(a, l1, l2) | |
def run_b(b, l2, l1): return process_input(b, l2, l1) | |
knop = gr.Button("๐ฎ Beiden ingesproken, verwerk antwoord") | |
knop.click(run_a, inputs=[audio1, speler1_taal, speler2_taal], outputs=[out1, trans1, emo1, bot1]) | |
knop.click(run_b, inputs=[audio2, speler2_taal, speler1_taal], outputs=[out2, trans2, emo2, bot2]) | |
gr.Markdown(""" | |
๐ Blijf spelen. Lach samen. Voel samen. Begrijp elkaar beter. | |
๐ค Onze chatbot maakt het luchtig, maar de diepgang zit in jullie antwoorden. | |
""") | |
if __name__ == "__main__": | |
demo.launch() |