hexgrad commited on
Commit
b79287b
·
verified ·
1 Parent(s): a44fe32

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -8
app.py CHANGED
@@ -242,12 +242,13 @@ def clamp_speed(speed):
242
  return speed
243
 
244
  # Must be backwards compatible with https://huggingface.co/spaces/Pendrokar/TTS-Spaces-Arena
245
- def generate(text, voice='af', ps=None, speed=1, trim=3000, use_gpu='auto'):
246
  voices = resolve_voices(voice, warn=ps)
247
  ps = ps or phonemize(text, voice)
248
  speed = clamp_speed(speed)
249
  trim = trim if isinstance(trim, int) else 3000
250
  use_gpu = use_gpu if use_gpu in ('auto', False, True) else 'auto'
 
251
  tokens = tokenize(ps)
252
  if not tokens:
253
  return (None, '')
@@ -255,14 +256,14 @@ def generate(text, voice='af', ps=None, speed=1, trim=3000, use_gpu='auto'):
255
  tokens = tokens[:510]
256
  ps = ''.join(next(k for k, v in VOCAB.items() if i == v) for i in tokens)
257
  use_gpu = len(ps) > 99 if use_gpu == 'auto' else use_gpu
258
- use_gpu = text not in sents
259
  try:
260
  if use_gpu:
261
  out = forward_gpu(tokens, voices, speed)
262
  else:
263
  out = forward(tokens, voices, speed)
264
  except gr.exceptions.Error as e:
265
- if False and use_gpu:
266
  gr.Warning(str(e))
267
  gr.Info('Switching to CPU')
268
  out = forward(tokens, voices, speed)
@@ -332,8 +333,11 @@ with gr.Blocks() as basic_tts:
332
  btn = gr.Button(list(CHOICES.values())[i*4+j], variant='primary' if i*4+j < 10 else 'secondary')
333
  btn.click(lambda v, b: f'{v}+{b}' if v.startswith(b[:2]) else b, inputs=[voice, btn], outputs=[voice])
334
  voice.change(lambda v, b: gr.Button(b, variant='primary' if v.startswith(b[:2]) else 'secondary'), inputs=[voice, btn], outputs=[btn])
335
- text.submit(generate, inputs=[text, voice, in_ps, speed, trim, use_gpu], outputs=[audio, out_ps])
336
- generate_btn.click(generate, inputs=[text, voice, in_ps, speed, trim, use_gpu], outputs=[audio, out_ps])
 
 
 
337
 
338
  @torch.no_grad()
339
  def lf_forward(token_lists, voices, speed, device='cpu'):
@@ -439,7 +443,7 @@ def lf_generate(segments, voice, speed=1, trim=0, pad_between=0, use_gpu=True):
439
  else:
440
  outs = lf_forward(tokens, voices, speed)
441
  except gr.exceptions.Error as e:
442
- if False and use_gpu:
443
  gr.Warning(str(e))
444
  gr.Info('Switching to CPU')
445
  outs = lf_forward(tokens, voices, speed)
@@ -563,8 +567,7 @@ Random Japanese texts: CC0 public domain from [Common Voice](https://github.com/
563
  with gr.Blocks() as changelog:
564
  gr.Markdown('''
565
  **28 Nov 2024**<br/>
566
- 🌊 Long Form streaming and stop button<br/>
567
- 📡 Telemetry enabled
568
 
569
  **25 Nov 2024**<br/>
570
  🎨 Voice Mixer added
 
242
  return speed
243
 
244
  # Must be backwards compatible with https://huggingface.co/spaces/Pendrokar/TTS-Spaces-Arena
245
+ def generate(text, voice='af', ps=None, speed=1, trim=3000, use_gpu='auto', sk=''):
246
  voices = resolve_voices(voice, warn=ps)
247
  ps = ps or phonemize(text, voice)
248
  speed = clamp_speed(speed)
249
  trim = trim if isinstance(trim, int) else 3000
250
  use_gpu = use_gpu if use_gpu in ('auto', False, True) else 'auto'
251
+ sk = os.environ['SK'] if text in sents else sk
252
  tokens = tokenize(ps)
253
  if not tokens:
254
  return (None, '')
 
256
  tokens = tokens[:510]
257
  ps = ''.join(next(k for k, v in VOCAB.items() if i == v) for i in tokens)
258
  use_gpu = len(ps) > 99 if use_gpu == 'auto' else use_gpu
259
+ assert sk == os.environ['SK']
260
  try:
261
  if use_gpu:
262
  out = forward_gpu(tokens, voices, speed)
263
  else:
264
  out = forward(tokens, voices, speed)
265
  except gr.exceptions.Error as e:
266
+ if use_gpu:
267
  gr.Warning(str(e))
268
  gr.Info('Switching to CPU')
269
  out = forward(tokens, voices, speed)
 
333
  btn = gr.Button(list(CHOICES.values())[i*4+j], variant='primary' if i*4+j < 10 else 'secondary')
334
  btn.click(lambda v, b: f'{v}+{b}' if v.startswith(b[:2]) else b, inputs=[voice, btn], outputs=[voice])
335
  voice.change(lambda v, b: gr.Button(b, variant='primary' if v.startswith(b[:2]) else 'secondary'), inputs=[voice, btn], outputs=[btn])
336
+ with gr.Row():
337
+ sk = gr.Textbox(visible=False)
338
+ text.focus(lambda: os.environ['SK'], outputs=[sk])
339
+ text.submit(generate, inputs=[text, voice, in_ps, speed, trim, use_gpu, sk], outputs=[audio, out_ps])
340
+ generate_btn.click(generate, inputs=[text, voice, in_ps, speed, trim, use_gpu, sk], outputs=[audio, out_ps])
341
 
342
  @torch.no_grad()
343
  def lf_forward(token_lists, voices, speed, device='cpu'):
 
443
  else:
444
  outs = lf_forward(tokens, voices, speed)
445
  except gr.exceptions.Error as e:
446
+ if use_gpu:
447
  gr.Warning(str(e))
448
  gr.Info('Switching to CPU')
449
  outs = lf_forward(tokens, voices, speed)
 
567
  with gr.Blocks() as changelog:
568
  gr.Markdown('''
569
  **28 Nov 2024**<br/>
570
+ 🌊 Long Form streaming and stop button
 
571
 
572
  **25 Nov 2024**<br/>
573
  🎨 Voice Mixer added