hexgrad commited on
Commit
c58ae3a
·
verified ·
1 Parent(s): ebcaf6e

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -7
app.py CHANGED
@@ -460,7 +460,9 @@ def extract_text(file):
460
  with gr.Blocks() as lf_tts:
461
  with gr.Row():
462
  with gr.Column():
 
463
  text = gr.Textbox(label='Input Text', info='Generate speech in batches of 100 text segments and automatically join them together')
 
464
  with gr.Row():
465
  voice = gr.Dropdown(list(CHOICES.items()), value='af', allow_custom_value=True, label='Voice', info='Starred voices are more stable')
466
  use_gpu = gr.Dropdown(
@@ -473,10 +475,6 @@ with gr.Blocks() as lf_tts:
473
  with gr.Accordion('Text Settings', open=False):
474
  skip_square_brackets = gr.Checkbox(True, label='Skip [Square Brackets]', info='Recommended for academic papers, Wikipedia articles, or texts with citations')
475
  newline_split = gr.Number(2, label='Newline Split', info='Split the input text on this many newlines. Affects how the text is segmented.', precision=0, minimum=0)
476
- with gr.Row():
477
- upload_btn = gr.UploadButton('Upload txt or pdf', file_types=['text'])
478
- segment_btn = gr.Button('Tokenize', variant='primary')
479
- upload_btn.upload(fn=extract_text, inputs=[upload_btn], outputs=[text])
480
  with gr.Column():
481
  audio_stream = gr.Audio(label='Output Audio Stream', interactive=False, streaming=True, autoplay=True)
482
  with gr.Accordion('Audio Settings', open=True):
@@ -484,14 +482,13 @@ with gr.Blocks() as lf_tts:
484
  trim = gr.Slider(minimum=0, maximum=24000, value=0, step=1000, label='✂️ Trim', info='Cut from both ends')
485
  pad_between = gr.Slider(minimum=0, maximum=24000, value=0, step=1000, label='🔇 Pad Between', info='How much silence to insert between segments')
486
  with gr.Row():
 
487
  generate_btn = gr.Button('Generate x0', variant='secondary', interactive=False)
488
- stop_btn = gr.Button('Stop', variant='stop')
489
  with gr.Row():
490
  segments = gr.Dataframe(headers=['#', 'Text', 'Tokens', 'Length'], row_count=(1, 'dynamic'), col_count=(4, 'fixed'), label='Segments', interactive=False, wrap=True)
491
  segments.change(fn=did_change_segments, inputs=[segments], outputs=[segment_btn, generate_btn])
492
  segment_btn.click(segment_and_tokenize, inputs=[text, voice, skip_square_brackets, newline_split], outputs=[segments])
493
- generate_event = generate_btn.click(lf_generate, inputs=[segments, voice, speed, trim, pad_between, use_gpu], outputs=[audio_stream])
494
- stop_btn.click(cancels=[generate_event])
495
 
496
  with gr.Blocks() as about:
497
  gr.Markdown('''
 
460
  with gr.Blocks() as lf_tts:
461
  with gr.Row():
462
  with gr.Column():
463
+ file_input = gr.File(file_types=['.pdf', '.txt'], label='Input File: pdf or txt')
464
  text = gr.Textbox(label='Input Text', info='Generate speech in batches of 100 text segments and automatically join them together')
465
+ file_input.upload(fn=extract_text, inputs=[file_input], outputs=[text])
466
  with gr.Row():
467
  voice = gr.Dropdown(list(CHOICES.items()), value='af', allow_custom_value=True, label='Voice', info='Starred voices are more stable')
468
  use_gpu = gr.Dropdown(
 
475
  with gr.Accordion('Text Settings', open=False):
476
  skip_square_brackets = gr.Checkbox(True, label='Skip [Square Brackets]', info='Recommended for academic papers, Wikipedia articles, or texts with citations')
477
  newline_split = gr.Number(2, label='Newline Split', info='Split the input text on this many newlines. Affects how the text is segmented.', precision=0, minimum=0)
 
 
 
 
478
  with gr.Column():
479
  audio_stream = gr.Audio(label='Output Audio Stream', interactive=False, streaming=True, autoplay=True)
480
  with gr.Accordion('Audio Settings', open=True):
 
482
  trim = gr.Slider(minimum=0, maximum=24000, value=0, step=1000, label='✂️ Trim', info='Cut from both ends')
483
  pad_between = gr.Slider(minimum=0, maximum=24000, value=0, step=1000, label='🔇 Pad Between', info='How much silence to insert between segments')
484
  with gr.Row():
485
+ segment_btn = gr.Button('Tokenize', variant='primary')
486
  generate_btn = gr.Button('Generate x0', variant='secondary', interactive=False)
 
487
  with gr.Row():
488
  segments = gr.Dataframe(headers=['#', 'Text', 'Tokens', 'Length'], row_count=(1, 'dynamic'), col_count=(4, 'fixed'), label='Segments', interactive=False, wrap=True)
489
  segments.change(fn=did_change_segments, inputs=[segments], outputs=[segment_btn, generate_btn])
490
  segment_btn.click(segment_and_tokenize, inputs=[text, voice, skip_square_brackets, newline_split], outputs=[segments])
491
+ generate_btn.click(lf_generate, inputs=[segments, voice, speed, trim, pad_between, use_gpu], outputs=[audio_stream])
 
492
 
493
  with gr.Blocks() as about:
494
  gr.Markdown('''