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])
|