Pendrokar commited on
Commit
d5bd795
·
2 Parent(s): 5eaaec8 6ef3a93

Merge branch 'spaces'

Browse files
Files changed (1) hide show
  1. app.py +29 -11
app.py CHANGED
@@ -44,7 +44,6 @@ AVAILABLE_MODELS = {
44
  'coqui/xtts': '1#1',
45
  'collabora/WhisperSpeech': '/whisper_speech_demo#0',
46
  'myshell-ai/OpenVoice': '1#1',
47
- # 'PolyAI/pheme': '/predict#0', #sleepy HF Space
48
  'mrfakename/MetaVoice-1B-v0.1': '/tts#0',
49
 
50
  # xVASynth (CPU)
@@ -53,10 +52,11 @@ AVAILABLE_MODELS = {
53
  # CoquiTTS (CPU)
54
  # 'coqui/CoquiTTS': '0#0',
55
 
56
- 'amphion/Text-to-Speech': '/predict#0',
57
  'LeeSangHoon/HierSpeech_TTS': '/predict#0',
58
 
59
  # TTS w issues
 
 
60
  # 'suno/bark': '3#0', # Hallucinates
61
  # 'shivammehta25/Matcha-TTS': '5#0', #seems to require multiple requests for setup
62
  # 'styletts2/styletts2': '0#0', #API disabled
@@ -425,6 +425,7 @@ def get_leaderboard(reveal_prelim = False):
425
  df = pd.DataFrame(data, columns=['name', 'upvote', 'downvote'])
426
  # df['license'] = df['name'].map(model_license)
427
  df['name'] = df['name'].replace(model_names)
 
428
  df['votes'] = df['upvote'] + df['downvote']
429
  # df['score'] = round((df['upvote'] / df['votes']) * 100, 2) # Percentage score
430
 
@@ -447,6 +448,13 @@ def get_leaderboard(reveal_prelim = False):
447
  # df = df[['order', 'name', 'score', 'license', 'votes']]
448
  df = df[['order', 'name', 'score', 'votes']]
449
  return df
 
 
 
 
 
 
 
450
  def mkuuid(uid):
451
  if not uid:
452
  uid = uuid.uuid4()
@@ -537,16 +545,19 @@ def reload(chosenmodel1=None, chosenmodel2=None, userid=None, chose_a=False, cho
537
  # return out
538
  # return (f'This model was {chosenmodel1}', f'This model was {chosenmodel2}', gr.update(visible=False), gr.update(visible=False))
539
  # return (gr.update(variant='secondary', value=chosenmodel1, interactive=False), gr.update(variant='secondary', value=chosenmodel2, interactive=False))
 
 
540
  out = [
541
  gr.update(interactive=False, visible=False),
542
  gr.update(interactive=False, visible=False)
543
  ]
 
544
  if chose_a == True:
545
- out.append(gr.update(value=f'Your vote: {chosenmodel1}', interactive=False, visible=True))
546
- out.append(gr.update(value=f'{chosenmodel2}', interactive=False, visible=True))
547
  else:
548
- out.append(gr.update(value=f'{chosenmodel1}', interactive=False, visible=True))
549
- out.append(gr.update(value=f'Your vote: {chosenmodel2}', interactive=False, visible=True))
550
  out.append(gr.update(visible=True))
551
  return out
552
 
@@ -642,12 +653,15 @@ def synthandreturn(text):
642
  except:
643
  pass
644
  # Get two random models
645
- # your TTS model versus The World!!!
646
  mdl1 = 'Pendrokar/xVASynth'
647
  vsModels = dict(AVAILABLE_MODELS)
648
  del vsModels[mdl1]
 
649
  mdl2 = random.sample(list(vsModels.keys()), 1)
 
650
  mdl1, mdl2 = random.sample(list([mdl1, mdl2[0]]), 2)
 
651
  # mdl1, mdl2 = random.sample(list(AVAILABLE_MODELS.keys()), 2)
652
  log_text(text)
653
  print("[debug] Using", mdl1, mdl2)
@@ -834,7 +848,10 @@ def randomsent():
834
  return random.choice(sents), '🎲'
835
  def clear_stuff():
836
  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)
837
-
 
 
 
838
  with gr.Blocks() as vote:
839
  # sample played
840
  aplayed = gr.State(value=False)
@@ -855,15 +872,16 @@ with gr.Blocks() as vote:
855
  with gr.Group():
856
  aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
857
  abetter = gr.Button("A is better", variant='primary', interactive=False)
858
- 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)
859
  with gr.Column():
860
  with gr.Group():
861
  aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
862
  bbetter = gr.Button("B is better", variant='primary', interactive=False)
863
- 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)
864
  nxtroundbtn = gr.Button('Next round', visible=False)
 
865
  outputs = [text, btn, r2, model1, model2, aud1, aud2, abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn, aplayed, bplayed]
866
- btn.click(synthandreturn, inputs=[text], outputs=outputs)
867
  nxtroundbtn.click(clear_stuff, outputs=outputs)
868
 
869
  # Allow interaction with the vote buttons only when both audio samples have finished playing
 
44
  'coqui/xtts': '1#1',
45
  'collabora/WhisperSpeech': '/whisper_speech_demo#0',
46
  'myshell-ai/OpenVoice': '1#1',
 
47
  'mrfakename/MetaVoice-1B-v0.1': '/tts#0',
48
 
49
  # xVASynth (CPU)
 
52
  # CoquiTTS (CPU)
53
  # 'coqui/CoquiTTS': '0#0',
54
 
 
55
  'LeeSangHoon/HierSpeech_TTS': '/predict#0',
56
 
57
  # TTS w issues
58
+ # 'PolyAI/pheme': '/predict#0', #sleepy HF Space
59
+ # 'amphion/Text-to-Speech': '/predict#0', #takes a whole minute to synthesize
60
  # 'suno/bark': '3#0', # Hallucinates
61
  # 'shivammehta25/Matcha-TTS': '5#0', #seems to require multiple requests for setup
62
  # 'styletts2/styletts2': '0#0', #API disabled
 
425
  df = pd.DataFrame(data, columns=['name', 'upvote', 'downvote'])
426
  # df['license'] = df['name'].map(model_license)
427
  df['name'] = df['name'].replace(model_names)
428
+ df['name'] = make_link_to_space(df['name'])
429
  df['votes'] = df['upvote'] + df['downvote']
430
  # df['score'] = round((df['upvote'] / df['votes']) * 100, 2) # Percentage score
431
 
 
448
  # df = df[['order', 'name', 'score', 'license', 'votes']]
449
  df = df[['order', 'name', 'score', 'votes']]
450
  return df
451
+
452
+ def make_link_to_space(model_name):
453
+ # create a anchor link if a HF space
454
+ if '/' in model_name:
455
+ return '🤗 <a href="'+ 'https://huggingface.co/spaces/' + model_name + '">' + model_name + '</a>'
456
+ # otherwise just return the model name
457
+ return model_name
458
  def mkuuid(uid):
459
  if not uid:
460
  uid = uuid.uuid4()
 
545
  # return out
546
  # return (f'This model was {chosenmodel1}', f'This model was {chosenmodel2}', gr.update(visible=False), gr.update(visible=False))
547
  # return (gr.update(variant='secondary', value=chosenmodel1, interactive=False), gr.update(variant='secondary', value=chosenmodel2, interactive=False))
548
+ chosenmodel1 = make_link_to_space(chosenmodel1)
549
+ chosenmodel2 = make_link_to_space(chosenmodel2)
550
  out = [
551
  gr.update(interactive=False, visible=False),
552
  gr.update(interactive=False, visible=False)
553
  ]
554
+ style = 'text-align: center; font-size: 1rem; margin-bottom: 0; padding: var(--input-padding)'
555
  if chose_a == True:
556
+ out.append(gr.update(value=f'<p style="{style}">Your vote: {chosenmodel1}</p>', visible=True))
557
+ out.append(gr.update(value=f'<p style="{style}">{chosenmodel2}</p>', visible=True))
558
  else:
559
+ out.append(gr.update(value=f'<p style="{style}">{chosenmodel1}</p>', visible=True))
560
+ out.append(gr.update(value=f'<p style="{style}">Your vote: {chosenmodel2}</p>', visible=True))
561
  out.append(gr.update(visible=True))
562
  return out
563
 
 
653
  except:
654
  pass
655
  # Get two random models
656
+ # forced model: your TTS model versus The World!!!
657
  mdl1 = 'Pendrokar/xVASynth'
658
  vsModels = dict(AVAILABLE_MODELS)
659
  del vsModels[mdl1]
660
+ # randomize position of the forced model
661
  mdl2 = random.sample(list(vsModels.keys()), 1)
662
+ # forced random
663
  mdl1, mdl2 = random.sample(list([mdl1, mdl2[0]]), 2)
664
+ # actual random
665
  # mdl1, mdl2 = random.sample(list(AVAILABLE_MODELS.keys()), 2)
666
  log_text(text)
667
  print("[debug] Using", mdl1, mdl2)
 
848
  return random.choice(sents), '🎲'
849
  def clear_stuff():
850
  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)
851
+ def disable():
852
+ return [gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False)]
853
+ def enable():
854
+ return [gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True)]
855
  with gr.Blocks() as vote:
856
  # sample played
857
  aplayed = gr.State(value=False)
 
872
  with gr.Group():
873
  aud1 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
874
  abetter = gr.Button("A is better", variant='primary', interactive=False)
875
+ prevmodel1 = gr.HTML(show_label=False, value="Vote to reveal model A", visible=False)
876
  with gr.Column():
877
  with gr.Group():
878
  aud2 = gr.Audio(interactive=False, show_label=False, show_download_button=False, show_share_button=False, waveform_options={'waveform_progress_color': '#3C82F6'})
879
  bbetter = gr.Button("B is better", variant='primary', interactive=False)
880
+ prevmodel2 = gr.HTML(show_label=False, value="Vote to reveal model B", visible=False)
881
  nxtroundbtn = gr.Button('Next round', visible=False)
882
+ # outputs = [text, btn, r2, model1, model2, prevmodel1, aud1, prevmodel2, aud2, abetter, bbetter]
883
  outputs = [text, btn, r2, model1, model2, aud1, aud2, abetter, bbetter, prevmodel1, prevmodel2, nxtroundbtn, aplayed, bplayed]
884
+ btn.click(disable, outputs=[btn, abetter, bbetter]).then(synthandreturn, inputs=[text], outputs=outputs).then(enable, outputs=[btn, abetter, bbetter])
885
  nxtroundbtn.click(clear_stuff, outputs=outputs)
886
 
887
  # Allow interaction with the vote buttons only when both audio samples have finished playing