mrfakename commited on
Commit
ca8a2ca
1 Parent(s): 84a5bec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -14
app.py CHANGED
@@ -10,6 +10,19 @@ import time
10
  import uuid
11
  from pathlib import Path
12
  from huggingface_hub import CommitScheduler, delete_file, hf_hub_download
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  SPACE_ID = os.getenv('HF_ID')
15
 
@@ -20,7 +33,6 @@ DB_NAME = "database.db"
20
  DB_PATH = f"/data/{DB_NAME}" if os.path.isdir("/data") else DB_NAME
21
 
22
  AUDIO_DATASET_ID = "ttseval/tts-arena-new"
23
- CITATION_TEXT = None
24
  CITATION_TEXT = """@misc{tts-arena,
25
  title = {Text to Speech Arena},
26
  author = {mrfakename and Srivastav, Vaibhav and Pouget, Lucain and Fourrier, Clémentine},
@@ -114,6 +126,10 @@ scheduler = CommitScheduler(
114
  # Load audio dataset
115
  audio_dataset = load_dataset(AUDIO_DATASET_ID)
116
 
 
 
 
 
117
  ####################################
118
  # Gradio app
119
  ####################################
@@ -182,7 +198,7 @@ def del_db(txt):
182
 
183
  # Delete local + remote
184
  os.remove(DB_PATH)
185
- delete_file(path_in_repo=DB_NAME, repo_id=DATASET_ID, repo_type='dataset')
186
 
187
  # Recreate
188
  create_db_if_missing()
@@ -396,18 +412,26 @@ with gr.Blocks() as leaderboard:
396
  # bothgood.click(both_good, outputs=outputs, inputs=[model1, model2, useridstate])
397
 
398
  # vote.load(reload, outputs=[aud1, aud2, model1, model2])
399
- def makevisible(text):
400
- time.sleep(5)
 
401
  return (
402
  text,
 
403
  gr.update(visible=True), # r1
404
  gr.update(visible=True), # r2
405
- None, # model1
406
- None, # model2
407
- 'Hi', # prevmodel1
408
- None, # aud1
409
- 'Hi', # prevmodel2
410
- None, # aud2
 
 
 
 
 
 
411
  )
412
  with gr.Blocks() as vote:
413
  useridstate = gr.State()
@@ -433,11 +457,12 @@ with gr.Blocks() as vote:
433
  with gr.Row():
434
  abetter = gr.Button("A is Better", variant='primary')
435
  bbetter = gr.Button("B is Better", variant='primary')
436
- btn.click(makevisible, inputs=text, outputs=[text, r1, r2, model1, model2, prevmodel1, aud1, prevmodel2, aud2])
 
437
 
438
- # outputs = [aud1, aud2, model1, model2, useridstate, prevmodel1, prevmodel2]
439
- # abetter.click(a_is_better, outputs=outputs, inputs=[model1, model2, useridstate])
440
- # bbetter.click(b_is_better, outputs=outputs, inputs=[model1, model2, useridstate])
441
  # skipbtn.click(b_is_better, outputs=outputs, inputs=[model1, model2, useridstate])
442
 
443
  # bothbad.click(both_bad, outputs=outputs, inputs=[model1, model2, useridstate])
 
10
  import uuid
11
  from pathlib import Path
12
  from huggingface_hub import CommitScheduler, delete_file, hf_hub_download
13
+ from gradio_client import Client
14
+
15
+ ####################################
16
+ # Constants
17
+ ####################################
18
+
19
+ AVAILABLE_MODELS = {
20
+ 'XTTS': 'xttsv2',
21
+ 'WhisperSpeech': 'whisperspeech',
22
+ 'ElevenLabs': 'eleven',
23
+ 'OpenVoice': 'openvoice',
24
+ 'Pheme': 'pheme',
25
+ }
26
 
27
  SPACE_ID = os.getenv('HF_ID')
28
 
 
33
  DB_PATH = f"/data/{DB_NAME}" if os.path.isdir("/data") else DB_NAME
34
 
35
  AUDIO_DATASET_ID = "ttseval/tts-arena-new"
 
36
  CITATION_TEXT = """@misc{tts-arena,
37
  title = {Text to Speech Arena},
38
  author = {mrfakename and Srivastav, Vaibhav and Pouget, Lucain and Fourrier, Clémentine},
 
126
  # Load audio dataset
127
  audio_dataset = load_dataset(AUDIO_DATASET_ID)
128
 
129
+ ####################################
130
+ # Router API
131
+ ####################################
132
+ router = Client("ttseval/tts-router", hf_token=os.getenv('HF_TOKEN'))
133
  ####################################
134
  # Gradio app
135
  ####################################
 
198
 
199
  # Delete local + remote
200
  os.remove(DB_PATH)
201
+ delete_file(path_in_repo=DB_NAME, repo_id=DB_DATASET_ID, repo_type='dataset')
202
 
203
  # Recreate
204
  create_db_if_missing()
 
412
  # bothgood.click(both_good, outputs=outputs, inputs=[model1, model2, useridstate])
413
 
414
  # vote.load(reload, outputs=[aud1, aud2, model1, model2])
415
+ def synthandreturn(text):
416
+ # Get two random models
417
+ mdl1, mdl2 = random.sample(AVAILABLE_MODELS.keys(), 2)
418
  return (
419
  text,
420
+ "Synthesize",
421
  gr.update(visible=True), # r1
422
  gr.update(visible=True), # r2
423
+ mdl1, # model1
424
+ mdl2, # model2
425
+ 'Vote to reveal model A', # prevmodel1
426
+ router.predict(
427
+ text,
428
+ AVAILABLE_MODELS[mdl1]
429
+ ), # aud1
430
+ 'Vote to reveal model B', # prevmodel2
431
+ router.predict(
432
+ text,
433
+ AVAILABLE_MODELS[mdl2]
434
+ ), # aud2
435
  )
436
  with gr.Blocks() as vote:
437
  useridstate = gr.State()
 
457
  with gr.Row():
458
  abetter = gr.Button("A is Better", variant='primary')
459
  bbetter = gr.Button("B is Better", variant='primary')
460
+ outputs = [text, btn, r1, r2, model1, model2, prevmodel1, aud1, prevmodel2, aud2]
461
+ btn.click(synthandreturn, inputs=[text], outputs=outputs)
462
 
463
+ nxt_outputs = [aud1, aud2, model1, model2, useridstate, prevmodel1, prevmodel2]
464
+ abetter.click(a_is_better, outputs=nxt_outputs, inputs=[model1, model2, useridstate])
465
+ bbetter.click(b_is_better, outputs=nxt_outputs, inputs=[model1, model2, useridstate])
466
  # skipbtn.click(b_is_better, outputs=outputs, inputs=[model1, model2, useridstate])
467
 
468
  # bothbad.click(both_bad, outputs=outputs, inputs=[model1, model2, useridstate])