Pendrokar commited on
Commit
64e5e5a
1 Parent(s): bbfb485

autoplay; aud1 red color

Browse files
Files changed (1) hide show
  1. app.py +40 -12
app.py CHANGED
@@ -194,6 +194,7 @@ HF_SPACES = {
194
  # 'styletts2/styletts2': '0#0', #API disabled
195
  # 'Manmay/tortoise-tts': '/predict#0', #Cannot skip text-from-file parameter
196
  # 'pytorch/Tacotron2': '0#0', #old gradio
 
197
  }
198
 
199
  # for zero-shot TTS - voice sample of Scarlett Johanson
@@ -1053,8 +1054,8 @@ def synthandreturn(text):
1053
  gr.update(visible=True), # r2
1054
  mdl1, # model1
1055
  mdl2, # model2
1056
- gr.update(visible=True, value=results[mdl1k]), # aud1
1057
- gr.update(visible=True, value=results[mdl2k]), # aud2
1058
  gr.update(visible=True, interactive=False), #abetter
1059
  gr.update(visible=True, interactive=False), #bbetter
1060
  gr.update(visible=False), #prevmodel1
@@ -1090,18 +1091,30 @@ def synthandreturn(text):
1090
  # )
1091
 
1092
  def unlock_vote(btn_index, aplayed, bplayed):
 
1093
  # sample played
1094
  if btn_index == 0:
1095
  aplayed = True
 
 
 
 
 
 
 
 
 
 
 
1096
  if btn_index == 1:
1097
  bplayed = True
1098
 
1099
  # both audio samples played
1100
  if bool(aplayed) and bool(bplayed):
1101
  print('Both audio samples played, voting unlocked')
1102
- return [gr.update(interactive=True), gr.update(interactive=True), True, True]
1103
 
1104
- return [gr.update(), gr.update(), aplayed, bplayed]
1105
 
1106
 
1107
  def cachedsent(request: gr.Request):
@@ -1143,8 +1156,8 @@ def cachedsent(request: gr.Request):
1143
  gr.update(visible=True), # r2
1144
  pair[0].modelName, # model1
1145
  pair[1].modelName, # model2
1146
- gr.update(visible=True, value=pair[0].filename), # aud1
1147
- gr.update(visible=True, value=pair[1].filename), # aud2
1148
  gr.update(visible=True, interactive=False), #abetter
1149
  gr.update(visible=True, interactive=False), #bbetter
1150
  gr.update(visible=False), #prevmodel1
@@ -1165,8 +1178,8 @@ def clear_stuff():
1165
  gr.update(visible=False), # r2
1166
  '', # model1
1167
  '', # model2
1168
- gr.update(visible=False), # aud1
1169
- gr.update(visible=False), # aud2
1170
  gr.update(visible=False, interactive=False), #abetter
1171
  gr.update(visible=False, interactive=False), #bbetter
1172
  gr.update(visible=False), #prevmodel1
@@ -1201,12 +1214,26 @@ with gr.Blocks() as vote:
1201
  with gr.Row(visible=False) as r2:
1202
  with gr.Column():
1203
  with gr.Group():
1204
- aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
 
 
 
 
 
 
 
1205
  abetter = gr.Button("A is better", variant='primary', interactive=False)
1206
  prevmodel1 = gr.HTML(show_label=False, value="Vote to reveal model A", visible=False)
1207
  with gr.Column():
1208
  with gr.Group():
1209
- aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
 
 
 
 
 
 
 
1210
  bbetter = gr.Button("B is better", variant='primary', interactive=False)
1211
  prevmodel2 = gr.HTML(show_label=False, value="Vote to reveal model B", visible=False)
1212
  nxtroundbtn = gr.Button('Next round', visible=False)
@@ -1247,8 +1274,9 @@ with gr.Blocks() as vote:
1247
  cachedt.click(disable, outputs=[cachedt, abetter, bbetter]).then(cachedsent, outputs=[*outputs, cachedt]).then(enable, outputs=[btn, gr.State(), gr.State()])
1248
 
1249
  # Allow interaction with the vote buttons only when both audio samples have finished playing
1250
- aud1.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed], inputs=[gr.State(value=0), aplayed, bplayed])
1251
- aud2.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed], inputs=[gr.State(value=1), aplayed, bplayed])
 
1252
 
1253
  # nxt_outputs = [prevmodel1, prevmodel2, abetter, bbetter]
1254
  nxt_outputs = [abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn]
 
194
  # 'styletts2/styletts2': '0#0', #API disabled
195
  # 'Manmay/tortoise-tts': '/predict#0', #Cannot skip text-from-file parameter
196
  # 'pytorch/Tacotron2': '0#0', #old gradio
197
+ # 'fishaudio/fish-speech-1': '/inference_wrapper#0', heavy hallucinations
198
  }
199
 
200
  # for zero-shot TTS - voice sample of Scarlett Johanson
 
1054
  gr.update(visible=True), # r2
1055
  mdl1, # model1
1056
  mdl2, # model2
1057
+ gr.update(visible=True, value=results[mdl1k], interactive=False, autoplay=True), # aud1
1058
+ gr.update(visible=True, value=results[mdl2k], interactive=False, autoplay=False), # aud2
1059
  gr.update(visible=True, interactive=False), #abetter
1060
  gr.update(visible=True, interactive=False), #bbetter
1061
  gr.update(visible=False), #prevmodel1
 
1091
  # )
1092
 
1093
  def unlock_vote(btn_index, aplayed, bplayed):
1094
+ aud2 = gr.update()
1095
  # sample played
1096
  if btn_index == 0:
1097
  aplayed = True
1098
+ # autoplay the other once
1099
+ if not bplayed:
1100
+ # other options added just to get autoplay to work
1101
+ aud2 = gr.update(
1102
+ autoplay=True,
1103
+ interactive=True,
1104
+ sources=[],
1105
+ show_download_button=False,
1106
+ show_share_button=False,
1107
+ editable=False
1108
+ )
1109
  if btn_index == 1:
1110
  bplayed = True
1111
 
1112
  # both audio samples played
1113
  if bool(aplayed) and bool(bplayed):
1114
  print('Both audio samples played, voting unlocked')
1115
+ return [gr.update(interactive=True), gr.update(interactive=True), True, True, aud2]
1116
 
1117
+ return [gr.update(), gr.update(), aplayed, bplayed, aud2]
1118
 
1119
 
1120
  def cachedsent(request: gr.Request):
 
1156
  gr.update(visible=True), # r2
1157
  pair[0].modelName, # model1
1158
  pair[1].modelName, # model2
1159
+ gr.update(visible=True, value=pair[0].filename, interactive=False, autoplay=True), # aud1
1160
+ gr.update(visible=True, value=pair[1].filename, interactive=False, autoplay=False), # aud2
1161
  gr.update(visible=True, interactive=False), #abetter
1162
  gr.update(visible=True, interactive=False), #bbetter
1163
  gr.update(visible=False), #prevmodel1
 
1178
  gr.update(visible=False), # r2
1179
  '', # model1
1180
  '', # model2
1181
+ gr.update(visible=False, autoplay=False), # aud1
1182
+ gr.update(visible=False, autoplay=False), # aud2
1183
  gr.update(visible=False, interactive=False), #abetter
1184
  gr.update(visible=False, interactive=False), #bbetter
1185
  gr.update(visible=False), #prevmodel1
 
1214
  with gr.Row(visible=False) as r2:
1215
  with gr.Column():
1216
  with gr.Group():
1217
+ aud1 = gr.Audio(
1218
+ interactive=False,
1219
+ show_label=False,
1220
+ show_download_button=False,
1221
+ show_share_button=False,
1222
+ waveform_options={'waveform_progress_color': '#EF4444'}
1223
+ # var(--color-red-500)'}); gradio only accepts HEX and CSS color
1224
+ )
1225
  abetter = gr.Button("A is better", variant='primary', interactive=False)
1226
  prevmodel1 = gr.HTML(show_label=False, value="Vote to reveal model A", visible=False)
1227
  with gr.Column():
1228
  with gr.Group():
1229
+ aud2 = gr.Audio(
1230
+ interactive=False,
1231
+ show_label=False,
1232
+ show_download_button=False,
1233
+ show_share_button=False,
1234
+ waveform_options={'waveform_progress_color': '#3C82F6'}
1235
+ # var(--secondary-500)'}); gradio only accepts HEX and CSS color
1236
+ )
1237
  bbetter = gr.Button("B is better", variant='primary', interactive=False)
1238
  prevmodel2 = gr.HTML(show_label=False, value="Vote to reveal model B", visible=False)
1239
  nxtroundbtn = gr.Button('Next round', visible=False)
 
1274
  cachedt.click(disable, outputs=[cachedt, abetter, bbetter]).then(cachedsent, outputs=[*outputs, cachedt]).then(enable, outputs=[btn, gr.State(), gr.State()])
1275
 
1276
  # Allow interaction with the vote buttons only when both audio samples have finished playing
1277
+ aud1.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed, aud2], inputs=[gr.State(value=0), aplayed, bplayed])
1278
+ # autoplay if unplayed
1279
+ aud2.stop(unlock_vote, outputs=[abetter, bbetter, aplayed, bplayed, gr.State()], inputs=[gr.State(value=1), aplayed, bplayed])
1280
 
1281
  # nxt_outputs = [prevmodel1, prevmodel2, abetter, bbetter]
1282
  nxt_outputs = [abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn]