import gradio as gr import os HF_TOKEN = os.getenv('HF_TOKEN') callback = gr.HuggingFaceDatasetSaver(HF_TOKEN, "paulbauriegel/voice-coe-demo") sentences = \ {'en':[ "In winter, the dry leaves fly around in the air.", "The good old man broke through the ice with his horse and fell into the cold water.", "He always eats the eggs without salt and pepper.", "Good to know. Now I can fix the appointment.", "We find this approach is particularly effective at learning speech to text translation.", "Ever wonder what your Representative has been up to?", "The Wenker sheets are the data basis for Georg Wenker's language atlases", "At least she gets 7000 dollars in damages" ], 'de':[ "Im Winter fliegen die trocknen Blätter durch die Luft herum.", "Der gute alte Mann ist mit dem Pferde durch´s Eis gebrochen und in das kalte Wasser gefallen.", "Er isst die Eier immer ohne Salz und Pfeffer.", "Gut zu wissen. Jetzt kann ich den Termin vereinbaren.", "Wir haben festgestellt, dass dieser Ansatz besonders effektiv beim Erlernen der Sprache-zu-Text Übersetzung ist.", "Haben Sie sich jemals gefragt, was Ihr Abgeordneter so treibt?", "Die Wenkerbogen stellen die Datengrundlage für Georg Wenkers Sprachatlanten dar", "Zumindest bekommt sie 7000 Dollar Schmerzensgeld", ], 'ru': [ "Зимой сухие листья кружатся в воздухе.", "Старик провалился под лед на своем коне и упал в холодную воду.", "Он всегда ест яйца без соли и перца.", "Это важная информация.Теперь я могу назначить встречу.", "Мы считаем этот подход особенно эффективным при обучении переводу речи в текст.", "Вы когда-нибудь задумывались, чем занимается ваш представитель?", "Листы Венкера являются основой данных для языковых атласов Георга Венкера.", "По крайней мере, она получает 7000 долларов в качестве возмещения ущерба." ], 'sk':[ "V zime lietajú suché listy vzduchom.", "Starček prerazil ľad so svojím koňom a spadol do studenej vody.", "Vajcia vždy konzumuje bez soli a korenia.", "Je dobré vedieť, že si teraz môžem dohodnúť stretnutie.", "Zistili sme, že tento prístup je obzvlášť efektívny pri učení sa prekladu reči do textu.", "Premýšľali ste niekedy, čo chystá váš poslanec?", "Wenkerove hárky predstavujú základ dát jazykových atlasov Georga Wenkera", "Aspoň dostane ako bolestné najmenej 7000 dolárov", ], 'ar': [ "في الشتاء ، تتطاير الأوراق الجافة في الهواء.", "انكسر الجليد بالعجوز الطيب و حصانه وسقطا في الماء البارد.", "هو يأكل البيض دائما بدون ملح وفلفل.", "من الجيد أن أعرف. الآن يمكنني تحديد الموعد.", "نحن نرى أن هذا النهج فعال بشكل خاص في تعلم ترجمة الكلام إلى نص.", "هل تساءلت يومًا ما الذي كان مندوبك ينوي القيام به؟", "أوراق وينكر هي البيانات الأساسية لأطالس جورج وينكر اللغوية.", "على الأقل تحصلت على تعويض قدره 7000 دولار.", ], "pl": [ "Zimą, suche liście fruwają w powietrzu.", "Lód załamał się i poczciwy staruszek oraz jego koń wpadli do zimnej wody.", "On zawsze je jajka bez soli i pieprzu.", "Dobrze wiedzieć. Teraz mogę poprawić zaproszenie.", "Uważamy, że to podejście jest szczególnie efektywne przy nauce tłumaczenia mowy na tekst.", "Czy kiedykolwiek zastanawiałeś się o co chodzi twojemu przedstawicielowi?", "Ankiety Wenkera są podstawą atlasu językowego Georga Wenkera.", "Ona przynajmniej dostanie 7000 dolarów odszkodowania.", ], "hi": [ "सर्दियों में सूखे पत्ते हवा में इधर-उधर उड़ती हैं।", "बूढ़े भले आदमी अपने घोड़े के साथ बर्फ तोड़कर ठंडे पानी में गिर गए ।", "वह हमेशा बिना नमक और काली मिर्च के अंडे खाते है।", "जानकर अच्छा लगा। अब मैं बैठक फिक्स कर सकता हूं।", "हम पाते हैं कि यह दृष्टिकोण लिखित भाषा से पठित भाषा सीखने में विशेष रूप से प्रभावी है।", "क्या आपने कभी सोचा है कि आपका प्रतिनिधि क्या कर रहा है?", "वेन्कर शीट जॉर्ज वेन्कर की भाषा एटलस के संसूचना का आधार हैं", "उसे हर्जाने में कम से कम 7000 डॉलर मिलते हैं", ], 'el': [ "Το χειμώνα, τα ξερά φύλλα πετούν στον αέρα.", "Ο καλός γέρος έσπασε το πάγο και έπεσε μέσα στο κρύο νερό με το άλογό του.", "Πάντα τρώει τα αυγά χωρίς αλάτι και πιπέρι.", "Καλώς. Τώρα μπορώ να κλείσω το ραντεβού.", "Βρίσκουμε αυτή τη πρακτική πιο αποτελεσματική για εκμάθηση μετάφρασης ομιλίας σε κείμενο.", "Έχεις ποτέ αναρωτηθεί, τι κάνει ο εκπρόσωπός σου?", "Τα έγγραφα Wenker είναι βασισμένα στα δεδομένα χαρτογράφισης γλωσσών του George Wenker.", "Τουλάχιστον πήρε 7000 δολάρια σε αποζημιώσεις.", ]} with gr.Blocks(title='Voice CoE Data Collection') as demo: _ = gr.HTML('

CoE Voice Data Collection

') lang = gr.Dropdown( sorted(sentences.keys()), value='en', interactive=True, label="Choose your language", ) client_ip = gr.Label("", label="User-IP", visible=False) with gr.Row(): #outputs = gr.components.Textbox(label=) label_0 = gr.Label(sentences['en'][0], label="") audio_0 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_1 = gr.Label(sentences['en'][1], label="") audio_1 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_2 = gr.Label(sentences['en'][2], label="") audio_2 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_3 = gr.Label(sentences['en'][3], label="") audio_3 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_4 = gr.Label(sentences['en'][4], label="") audio_4 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_5 = gr.Label(sentences['en'][5], label="") audio_5 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_6 = gr.Label(sentences['en'][6], label="") audio_6 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): #outputs = gr.components.Textbox(label=) label_7 = gr.Label(sentences['en'][7], label="") audio_7 = gr.Audio(source="microphone", type="filepath", label="Record sample") with gr.Row(): acc = gr.Dropdown( ["yes", "no", "maybe"], label="Do you have an accent in the spoken language", ) with gr.Row(): agree = gr.Checkbox(value=False, label='I agree that my data is stored and analysed by the iHub CoE Voice Team') with gr.Row(): btn = gr.Button("Submit data") thx = gr.HTML('') # lang.change(lambda x: {label_0: sentences[x][0], label_1: sentences[x][1], label_2: sentences[x][2], label_3: sentences[x][3], label_4: sentences[x][4], label_5: sentences[x][5], label_6: sentences[x][6], label_7: sentences[x][7], }, lang, [label_0, label_1, label_2, label_3, label_4, label_5, label_6, label_7]) # This needs to be called at some point prior to the first call to callback.flag() callback.setup([client_ip, lang, audio_0, audio_1, audio_2, audio_3, audio_4, audio_5, audio_6, audio_7, acc], "flagged_data_points") # We can choose which components to flag -- in this case, we'll flag all of them def submit_data(client_ip, lang, audio_0, audio_1, audio_2, audio_3, audio_4, audio_5, audio_6, audio_7, acc, agree, request: gr.Request): if not agree: return '

No data has been submitted

' else: client_ip_d = {'ip': request.client.host} callback.flag([client_ip_d, lang, audio_0, audio_1, audio_2, audio_3, audio_4, audio_5, audio_6, audio_7, acc]) return '

Thank you for submitting you data

' btn.click(submit_data, [client_ip, lang, audio_0, audio_1, audio_2, audio_3, audio_4, audio_5, audio_6, audio_7, acc, agree], thx, preprocess=False) demo.launch()