Spaces:
Running
Running
Update app.py
Browse files
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])
|