NeuralFalcon commited on
Commit
e649f1f
·
verified ·
1 Parent(s): 5f3766e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -3
app.py CHANGED
@@ -9,6 +9,40 @@ import re
9
  import gradio as gr
10
 
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  # Language mapping dictionary
13
  language_map = {
14
  "American English": "a",
@@ -429,7 +463,9 @@ def save_current_data():
429
  os.makedirs("./last",exist_ok=True)
430
 
431
 
432
- def subtile_update(text, Language="American English",voice="af_bella", speed=1,remove_silence=False,keep_silence_up_to=0.05):
 
 
433
  save_path,timestamps=generate_and_save_audio(text=text, Language=Language,voice=voice, speed=speed,remove_silence=remove_silence,keep_silence_up_to=keep_silence_up_to)
434
  if remove_silence==False:
435
  if Language in ["American English", "British English"]:
@@ -490,6 +526,7 @@ def ui():
490
 
491
  with gr.Accordion('🎛️ Audio Settings', open=False):
492
  speed = gr.Slider(minimum=0.25, maximum=2, value=1, step=0.1, label='⚡️Speed', info='Adjust the speaking speed')
 
493
  remove_silence = gr.Checkbox(value=False, label='✂️ Remove Silence From TTS')
494
 
495
  with gr.Column():
@@ -505,8 +542,8 @@ def ui():
505
  srt_file = gr.File(label='📜 Download Sentence-Level SRT')
506
  sentence_duration_file = gr.File(label='⏳ Download Sentence Timestamp JSON')
507
 
508
- text.submit(subtile_update, inputs=[text, language_name, voice_name, speed, remove_silence], outputs=[audio, audio_file,word_level_srt_file,srt_file,sentence_duration_file])
509
- generate_btn.click(subtile_update, inputs=[text, language_name, voice_name, speed, remove_silence], outputs=[audio, audio_file,word_level_srt_file,srt_file,sentence_duration_file])
510
 
511
  # Add examples to the interface
512
  gr.Examples(examples=dummy_examples, inputs=[text, language_name, voice_name])
 
9
  import gradio as gr
10
 
11
 
12
+ #translate langauge
13
+ from deep_translator import GoogleTranslator
14
+ def bulk_translate(text, target_language, chunk_size=500):
15
+ language_map_local = {
16
+ "American English": "en",
17
+ "British English": "en",
18
+ "Hindi": "hi",
19
+ "Spanish": "es",
20
+ "French": "fr",
21
+ "Italian": "it",
22
+ "Brazilian Portuguese": "pt-BR",
23
+ "Japanese": "ja",
24
+ "Mandarin Chinese": "zh-CN"
25
+ }
26
+ # lang_code = GoogleTranslator().get_supported_languages(as_dict=True).get(target_language.lower())
27
+ lang_code=language_map_local[target_language]
28
+ sentences = re.split(r'(?<=[.!?])\s+', text) # Split text into sentences
29
+ chunks = []
30
+ current_chunk = ""
31
+
32
+ for sentence in sentences:
33
+ if len(current_chunk) + len(sentence) <= chunk_size:
34
+ current_chunk += " " + sentence
35
+ else:
36
+ chunks.append(current_chunk.strip())
37
+ current_chunk = sentence
38
+
39
+ if current_chunk:
40
+ chunks.append(current_chunk.strip())
41
+
42
+ translated_chunks = [GoogleTranslator(target=lang_code).translate(chunk) for chunk in chunks]
43
+ result=" ".join(translated_chunks)
44
+ return result.strip()
45
+
46
  # Language mapping dictionary
47
  language_map = {
48
  "American English": "a",
 
463
  os.makedirs("./last",exist_ok=True)
464
 
465
 
466
+ def subtile_update(text, Language="American English",voice="af_bella", speed=1,translate_text=False,remove_silence=False,keep_silence_up_to=0.05):
467
+ if translate_text:
468
+ text=bulk_translate(text, Language, chunk_size=500)
469
  save_path,timestamps=generate_and_save_audio(text=text, Language=Language,voice=voice, speed=speed,remove_silence=remove_silence,keep_silence_up_to=keep_silence_up_to)
470
  if remove_silence==False:
471
  if Language in ["American English", "British English"]:
 
526
 
527
  with gr.Accordion('🎛️ Audio Settings', open=False):
528
  speed = gr.Slider(minimum=0.25, maximum=2, value=1, step=0.1, label='⚡️Speed', info='Adjust the speaking speed')
529
+ translate_text = gr.Checkbox(value=False, label='🌐 Translate Text to Selected Language')
530
  remove_silence = gr.Checkbox(value=False, label='✂️ Remove Silence From TTS')
531
 
532
  with gr.Column():
 
542
  srt_file = gr.File(label='📜 Download Sentence-Level SRT')
543
  sentence_duration_file = gr.File(label='⏳ Download Sentence Timestamp JSON')
544
 
545
+ text.submit(subtile_update, inputs=[text, language_name, voice_name, speed,translate_text, remove_silence], outputs=[audio, audio_file,word_level_srt_file,srt_file,sentence_duration_file])
546
+ generate_btn.click(subtile_update, inputs=[text, language_name, voice_name, speed,translate_text, remove_silence], outputs=[audio, audio_file,word_level_srt_file,srt_file,sentence_duration_file])
547
 
548
  # Add examples to the interface
549
  gr.Examples(examples=dummy_examples, inputs=[text, language_name, voice_name])