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() |