Maximofn commited on
Commit
d6c6cf5
1 Parent(s): 9cfb673

Add delete buton

Browse files
app.py CHANGED
@@ -1,6 +1,5 @@
1
  import gradio as gr
2
  import argparse
3
- import sys
4
  import os
5
  import torch
6
  from time import sleep
@@ -9,11 +8,9 @@ from lang_list import union_language_dict
9
  # import pyperclip
10
  from pytube import YouTube
11
  import re
12
- import transformers
13
 
14
  NUMBER = 100
15
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
16
- # DEVICE = "cpu"
17
  DOWNLOAD = True
18
  SLICE_AUDIO = True
19
  SEPARE_VOCALS = False
@@ -228,23 +225,43 @@ def remove_all():
228
 
229
  def clear_video_url():
230
  visible = False
 
231
  image = gr.Image(visible=visible, scale=1)
232
  source_languaje = gr.Dropdown(visible=visible, label="Source languaje", show_label=True, value="English", choices=language_dict, scale=1, interactive=True)
233
  target_languaje = gr.Dropdown(visible=visible, label="Target languaje", show_label=True, value="Español", choices=language_dict, scale=1, interactive=True)
234
- num_speaker = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
235
  number_of_speakers = gr.Dropdown(visible=visible, label="Number of speakers", show_label=True, value=10, choices=num_speaker, scale=1, interactive=True)
236
- translate_button = gr.Button(size="lg", value="translate", min_width="10px", scale=0, visible=visible)
237
- original_audio_transcribed = gr.Textbox(label="Original audio transcribed", elem_id="original_audio_transcribed", interactive=False, visible=visible)
238
- original_audio_translated = gr.Textbox(label="Original audio translated", elem_id="original_audio_translated", interactive=False, visible=visible)
 
 
 
 
 
 
 
 
 
 
239
  return (
240
  "",
241
  image,
242
  source_languaje,
243
  target_languaje,
244
  number_of_speakers,
245
- translate_button,
246
- original_audio_transcribed,
247
- original_audio_translated,
 
 
 
 
 
 
 
 
 
 
248
  )
249
 
250
  def get_youtube_thumbnail(url):
@@ -472,13 +489,14 @@ def add_translated_subtitles_to_video(original_video_path, original_audio_path,
472
 
473
  def subtify():
474
  with gr.Blocks() as demo:
475
- # Layout
476
  num_speaker = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
 
 
477
  gr.Markdown("""# Subtify""")
478
  with gr.Row(variant="panel"):
479
  url_textbox = gr.Textbox(placeholder="Add video URL here", label="Video URL", elem_id="video_url", scale=1, interactive=True)
480
  # copy_button = gr.Button(size="sm", icon="icons/copy.svg", value="", min_width="10px", scale=0)
481
- # delete_button = gr.Button(size="sm", icon="icons/delete.svg", value="", min_width="10px", scale=0)
482
 
483
  visible = False
484
  with gr.Row(equal_height=False):
@@ -508,37 +526,63 @@ def subtify():
508
 
509
  # Events
510
  # copy_button.click(fn=copy_url_from_clipboard, outputs=url_textbox)
511
- # delete_button.click(
512
- # fn=clear_video_url,
513
- # outputs=[
514
- # url_textbox,
515
- # image,
516
- # source_languaje,
517
- # target_languaje,
518
- # number_of_speakers,
519
- # subtify_button,
520
- # original_audio_transcribed,
521
- # original_audio_translated,
522
- # ]
523
- # )
524
- url_textbox.change(
525
- fn=is_valid_url,
526
- inputs=url_textbox,
527
  outputs=[
 
528
  image,
529
  source_languaje,
530
  target_languaje,
531
  number_of_speakers,
532
  subtify_button,
 
 
 
 
 
 
 
 
533
  ]
534
  )
535
- subtify_button.click(fn=change_visibility_texboxes, inputs=[], outputs=[start_block, video_donwloaded, video_sliced, video_transcribed, transcriptions_concatenated, video_translated, video_subtitled])
536
- start_block.change(fn=get_audio_and_video_from_video, inputs=[url_textbox], outputs=[video_donwloaded, original_audio_path, original_video_path])
537
- video_donwloaded.change(fn=slice_audio, inputs=[original_audio_path], outputs=[video_sliced])
538
- video_sliced.change(fn=trascribe_audio, inputs=[source_languaje], outputs=[video_transcribed])
539
- video_transcribed.change(fn=concatenate_transcriptions, inputs=[], outputs=[transcriptions_concatenated, original_audio_transcribed_path])
540
- transcriptions_concatenated.change(fn=translate_transcription, inputs=[original_audio_transcribed_path, source_languaje, target_languaje], outputs=[video_translated, original_audio_translated_path])
541
- video_translated.change(fn=add_translated_subtitles_to_video, inputs=[original_video_path, original_audio_path, original_audio_translated_path], outputs=[video_subtitled, subtitled_video])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
 
543
  demo.launch()
544
 
 
1
  import gradio as gr
2
  import argparse
 
3
  import os
4
  import torch
5
  from time import sleep
 
8
  # import pyperclip
9
  from pytube import YouTube
10
  import re
 
11
 
12
  NUMBER = 100
13
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
 
14
  DOWNLOAD = True
15
  SLICE_AUDIO = True
16
  SEPARE_VOCALS = False
 
225
 
226
  def clear_video_url():
227
  visible = False
228
+ num_speaker = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
229
  image = gr.Image(visible=visible, scale=1)
230
  source_languaje = gr.Dropdown(visible=visible, label="Source languaje", show_label=True, value="English", choices=language_dict, scale=1, interactive=True)
231
  target_languaje = gr.Dropdown(visible=visible, label="Target languaje", show_label=True, value="Español", choices=language_dict, scale=1, interactive=True)
 
232
  number_of_speakers = gr.Dropdown(visible=visible, label="Number of speakers", show_label=True, value=10, choices=num_speaker, scale=1, interactive=True)
233
+ subtify_button = gr.Button(size="lg", value="subtify", min_width="10px", scale=0, visible=visible)
234
+ start_block = gr.Textbox(placeholder="Waiting", label="Start block", elem_id="start_block", interactive=False, visible=visible)
235
+ video_donwloaded = gr.Textbox(placeholder="Waiting", label="Video downloaded", elem_id="video_downloaded", interactive=False, visible=visible)
236
+ video_sliced = gr.Textbox(placeholder="Waiting", label="Video sliced", elem_id="video_sliced", interactive=False, visible=visible)
237
+ video_transcribed = gr.Textbox(placeholder="Waiting", label="Video transcribed", elem_id="video_transcribed", interactive=False, visible=visible)
238
+ transcriptions_concatenated = gr.Textbox(placeholder="Waiting", label="Transcriptions concatenated", elem_id="transcriptions_concatenated", interactive=False, visible=visible)
239
+ video_translated = gr.Textbox(placeholder="Waiting", label="Transcription translated", elem_id="transcription_translated", interactive=False, visible=visible)
240
+ video_subtitled = gr.Textbox(placeholder="Waiting", label="Video subtitled", elem_id="video_subtitled", interactive=False, visible=visible)
241
+ original_audio_path = gr.Textbox(label="Original audio path", elem_id="original_audio_path", visible=visible)
242
+ original_video_path = gr.Textbox(label="Original video path", elem_id="original_video_path", visible=visible)
243
+ original_audio_transcribed_path = gr.Textbox(label="Original audio transcribed", elem_id="original_audio_transcribed", visible=visible)
244
+ original_audio_translated_path = gr.Textbox(label="Original audio translated", elem_id="original_audio_translated", visible=visible)
245
+ subtitled_video = gr.Video(label="Subtitled video", elem_id="subtitled_video", visible=visible, interactive=visible)
246
  return (
247
  "",
248
  image,
249
  source_languaje,
250
  target_languaje,
251
  number_of_speakers,
252
+ subtify_button,
253
+ start_block,
254
+ video_donwloaded,
255
+ video_sliced,
256
+ video_transcribed,
257
+ transcriptions_concatenated,
258
+ video_translated,
259
+ video_subtitled,
260
+ original_audio_path,
261
+ original_video_path,
262
+ original_audio_transcribed_path,
263
+ original_audio_translated_path,
264
+ subtitled_video,
265
  )
266
 
267
  def get_youtube_thumbnail(url):
 
489
 
490
  def subtify():
491
  with gr.Blocks() as demo:
 
492
  num_speaker = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
493
+
494
+ # Layout
495
  gr.Markdown("""# Subtify""")
496
  with gr.Row(variant="panel"):
497
  url_textbox = gr.Textbox(placeholder="Add video URL here", label="Video URL", elem_id="video_url", scale=1, interactive=True)
498
  # copy_button = gr.Button(size="sm", icon="icons/copy.svg", value="", min_width="10px", scale=0)
499
+ delete_button = gr.Button(size="sm", icon="icons/delete.svg", value="", min_width="10px", scale=0)
500
 
501
  visible = False
502
  with gr.Row(equal_height=False):
 
526
 
527
  # Events
528
  # copy_button.click(fn=copy_url_from_clipboard, outputs=url_textbox)
529
+ delete_button.click(
530
+ fn=clear_video_url,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  outputs=[
532
+ url_textbox,
533
  image,
534
  source_languaje,
535
  target_languaje,
536
  number_of_speakers,
537
  subtify_button,
538
+ start_block,
539
+ video_donwloaded,
540
+ video_sliced,
541
+ video_transcribed,
542
+ transcriptions_concatenated,
543
+ video_translated,
544
+ video_subtitled,
545
+ subtitled_video,
546
  ]
547
  )
548
+ url_textbox.change(
549
+ fn=is_valid_url,
550
+ inputs=url_textbox,
551
+ outputs=[image, source_languaje, target_languaje, number_of_speakers, subtify_button]
552
+ )
553
+ subtify_button.click(
554
+ fn=change_visibility_texboxes,
555
+ outputs=[start_block, video_donwloaded, video_sliced, video_transcribed, transcriptions_concatenated, video_translated, video_subtitled]
556
+ )
557
+ start_block.change(
558
+ fn=get_audio_and_video_from_video,
559
+ inputs=[url_textbox],
560
+ outputs=[video_donwloaded, original_audio_path, original_video_path]
561
+ )
562
+ video_donwloaded.change(
563
+ fn=slice_audio,
564
+ inputs=[original_audio_path],
565
+ outputs=[video_sliced]
566
+ )
567
+ video_sliced.change(
568
+ fn=trascribe_audio,
569
+ inputs=[source_languaje],
570
+ outputs=[video_transcribed]
571
+ )
572
+ video_transcribed.change(
573
+ fn=concatenate_transcriptions,
574
+ outputs=[transcriptions_concatenated, original_audio_transcribed_path]
575
+ )
576
+ transcriptions_concatenated.change(
577
+ fn=translate_transcription,
578
+ inputs=[original_audio_transcribed_path, source_languaje, target_languaje],
579
+ outputs=[video_translated, original_audio_translated_path]
580
+ )
581
+ video_translated.change(
582
+ fn=add_translated_subtitles_to_video,
583
+ inputs=[original_video_path, original_audio_path, original_audio_translated_path],
584
+ outputs=[video_subtitled, subtitled_video]
585
+ )
586
 
587
  demo.launch()
588
 
assets/twitch.webp ADDED
assets/youtube-no-thumbnails.webp ADDED
assets/youtube_error.webp ADDED