Spaces:
Running
Running
lock voting until playback of both samples is finished
Browse files
app.py
CHANGED
@@ -777,11 +777,14 @@ def synthandreturn(text):
|
|
777 |
mdl2, # model2
|
778 |
gr.update(visible=True, value=results[mdl1]), # aud1
|
779 |
gr.update(visible=True, value=results[mdl2]), # aud2
|
780 |
-
gr.update(visible=True, interactive=
|
781 |
-
gr.update(visible=True, interactive=
|
782 |
-
gr.update(visible=False),
|
783 |
-
gr.update(visible=False),
|
784 |
gr.update(visible=False), #nxt round btn
|
|
|
|
|
|
|
785 |
)
|
786 |
# return (
|
787 |
# text,
|
@@ -807,11 +810,31 @@ def synthandreturn(text):
|
|
807 |
# gr.update(visible=False),
|
808 |
# gr.update(visible=False), #nxt round btn
|
809 |
# )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
810 |
def randomsent():
|
811 |
return random.choice(sents), '🎲'
|
812 |
def clear_stuff():
|
813 |
return "", "Synthesize", gr.update(visible=False), '', '', gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)
|
|
|
814 |
with gr.Blocks() as vote:
|
|
|
|
|
|
|
|
|
815 |
useridstate = gr.State()
|
816 |
gr.Markdown(INSTR)
|
817 |
with gr.Group():
|
@@ -826,19 +849,22 @@ with gr.Blocks() as vote:
|
|
826 |
with gr.Column():
|
827 |
with gr.Group():
|
828 |
aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
|
829 |
-
abetter = gr.Button("A is better", variant='primary')
|
830 |
prevmodel1 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model A", text_align="center", lines=1, max_lines=1, visible=False)
|
831 |
with gr.Column():
|
832 |
with gr.Group():
|
833 |
aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
|
834 |
-
bbetter = gr.Button("B is better", variant='primary')
|
835 |
prevmodel2 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model B", text_align="center", lines=1, max_lines=1, visible=False)
|
836 |
nxtroundbtn = gr.Button('Next round', visible=False)
|
837 |
-
|
838 |
-
outputs = [text, btn, r2, model1, model2, aud1, aud2, abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn]
|
839 |
btn.click(synthandreturn, inputs=[text], outputs=outputs)
|
840 |
nxtroundbtn.click(clear_stuff, outputs=outputs)
|
841 |
|
|
|
|
|
|
|
|
|
842 |
# nxt_outputs = [prevmodel1, prevmodel2, abetter, bbetter]
|
843 |
nxt_outputs = [abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn]
|
844 |
abetter.click(a_is_better, outputs=nxt_outputs, inputs=[model1, model2, useridstate])
|
|
|
777 |
mdl2, # model2
|
778 |
gr.update(visible=True, value=results[mdl1]), # aud1
|
779 |
gr.update(visible=True, value=results[mdl2]), # aud2
|
780 |
+
gr.update(visible=True, interactive=False), #abetter
|
781 |
+
gr.update(visible=True, interactive=False), #bbetter
|
782 |
+
gr.update(visible=False), #prevmodel1
|
783 |
+
gr.update(visible=False), #prevmodel2
|
784 |
gr.update(visible=False), #nxt round btn
|
785 |
+
# reset aplayed, bplayed audio playback events
|
786 |
+
gr.update(value=False), #aplayed
|
787 |
+
gr.update(value=False), #bplayed
|
788 |
)
|
789 |
# return (
|
790 |
# text,
|
|
|
810 |
# gr.update(visible=False),
|
811 |
# gr.update(visible=False), #nxt round btn
|
812 |
# )
|
813 |
+
|
814 |
+
def unlock_vote(btn_index, aplayed, bplayed):
|
815 |
+
# sample played
|
816 |
+
if btn_index == 0:
|
817 |
+
aplayed = gr.State(value=True)
|
818 |
+
if btn_index == 1:
|
819 |
+
bplayed = gr.State(value=True)
|
820 |
+
|
821 |
+
# both audio samples played
|
822 |
+
if bool(aplayed) and bool(bplayed):
|
823 |
+
print('Both audio samples played, voting unlocked')
|
824 |
+
return [gr.update(interactive=True), gr.update(interactive=True), gr.update(), gr.update()]
|
825 |
+
|
826 |
+
return [gr.update(), gr.update(), aplayed, bplayed]
|
827 |
+
|
828 |
def randomsent():
|
829 |
return random.choice(sents), '🎲'
|
830 |
def clear_stuff():
|
831 |
return "", "Synthesize", gr.update(visible=False), '', '', gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)
|
832 |
+
|
833 |
with gr.Blocks() as vote:
|
834 |
+
# sample played
|
835 |
+
aplayed = gr.State(value=False)
|
836 |
+
bplayed = gr.State(value=False)
|
837 |
+
# voter ID
|
838 |
useridstate = gr.State()
|
839 |
gr.Markdown(INSTR)
|
840 |
with gr.Group():
|
|
|
849 |
with gr.Column():
|
850 |
with gr.Group():
|
851 |
aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
|
852 |
+
abetter = gr.Button("A is better", variant='primary', interactive=False)
|
853 |
prevmodel1 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model A", text_align="center", lines=1, max_lines=1, visible=False)
|
854 |
with gr.Column():
|
855 |
with gr.Group():
|
856 |
aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
|
857 |
+
bbetter = gr.Button("B is better", variant='primary', interactive=False)
|
858 |
prevmodel2 = gr.Textbox(interactive=False, show_label=False, container=False, value="Vote to reveal model B", text_align="center", lines=1, max_lines=1, visible=False)
|
859 |
nxtroundbtn = gr.Button('Next round', visible=False)
|
860 |
+
outputs = [text, btn, r2, model1, model2, aud1, aud2, abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn, aplayed, bplayed]
|
|
|
861 |
btn.click(synthandreturn, inputs=[text], outputs=outputs)
|
862 |
nxtroundbtn.click(clear_stuff, outputs=outputs)
|
863 |
|
864 |
+
# Allow interaction with the vote buttons only when both audio samples have finished playing
|
865 |
+
aud1.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed], inputs=[gr.State(value=0), aplayed, bplayed])
|
866 |
+
aud2.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed], inputs=[gr.State(value=1), aplayed, bplayed])
|
867 |
+
|
868 |
# nxt_outputs = [prevmodel1, prevmodel2, abetter, bbetter]
|
869 |
nxt_outputs = [abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn]
|
870 |
abetter.click(a_is_better, outputs=nxt_outputs, inputs=[model1, model2, useridstate])
|