Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -442,16 +442,6 @@ language_dict = {
|
|
| 442 |
}
|
| 443 |
|
| 444 |
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
def get_speakers(language):
|
| 448 |
-
print(language)
|
| 449 |
-
speakers = list(language_dict[language].keys())
|
| 450 |
-
return gr.Dropdown(choices=speakers, value=speakers[0], interactive=True), gr.Checkbox(visible=language == "Arabic", interactive=True)
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
default_language = None
|
| 454 |
-
default_speaker = None
|
| 455 |
max_words = 1600 # Maximum word limit for input text
|
| 456 |
|
| 457 |
async def generate_audio(text, language, voice):
|
|
@@ -464,29 +454,49 @@ async def generate_audio(text, language, voice):
|
|
| 464 |
await communicator.save(file_path)
|
| 465 |
return None, file_path
|
| 466 |
|
|
|
|
| 467 |
def tts_wrapper(text, language, voice):
|
| 468 |
error_message, audio_path = gr.Blocks.run_coroutine(generate_audio(text, language, voice))
|
| 469 |
if error_message:
|
| 470 |
return error_message, None
|
| 471 |
return None, audio_path
|
| 472 |
|
| 473 |
-
def update_voices(language):
|
| 474 |
-
return list(language_dict[language].keys())
|
| 475 |
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
| 479 |
-
|
| 480 |
-
|
| 481 |
-
|
| 482 |
-
|
| 483 |
-
|
| 484 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 485 |
with gr.Row():
|
| 486 |
-
|
| 487 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 488 |
|
| 489 |
-
language_dropdown.change(update_voices, inputs=[language_dropdown], outputs=[voice_dropdown])
|
| 490 |
-
submit_button.click(tts_wrapper, inputs=[text_input, language_dropdown, voice_dropdown], outputs=[error_output, audio_output])
|
| 491 |
|
| 492 |
-
app.launch()
|
|
|
|
| 442 |
}
|
| 443 |
|
| 444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 445 |
max_words = 1600 # Maximum word limit for input text
|
| 446 |
|
| 447 |
async def generate_audio(text, language, voice):
|
|
|
|
| 454 |
await communicator.save(file_path)
|
| 455 |
return None, file_path
|
| 456 |
|
| 457 |
+
|
| 458 |
def tts_wrapper(text, language, voice):
|
| 459 |
error_message, audio_path = gr.Blocks.run_coroutine(generate_audio(text, language, voice))
|
| 460 |
if error_message:
|
| 461 |
return error_message, None
|
| 462 |
return None, audio_path
|
| 463 |
|
|
|
|
|
|
|
| 464 |
|
| 465 |
+
def get_speakers(language):
|
| 466 |
+
print(language)
|
| 467 |
+
speakers = list(language_dict[language].keys())
|
| 468 |
+
return gr.Dropdown(choices=speakers, value=speakers[0], interactive=True), gr.Checkbox(visible=language == "Arabic", interactive=True)
|
| 469 |
+
|
| 470 |
+
|
| 471 |
+
|
| 472 |
+
|
| 473 |
+
default_language = None
|
| 474 |
+
default_speaker = None
|
| 475 |
+
with gr.Blocks(title="Writoo AI V2") as demo:
|
| 476 |
+
gr.HTML(" ")
|
| 477 |
+
gr.HTML(f"<h2 style='color:Tomato;'> 🎥 **Exciting News: 60+ Minutes File Creation is also Free !!** 🎥 </h3>")
|
| 478 |
+
|
| 479 |
+
gr.Markdown("✨ Features: • Convert text to speech with 60+ audio files.• Choose from 72+ languages • Its Free 😍")
|
| 480 |
with gr.Row():
|
| 481 |
+
with gr.Column():
|
| 482 |
+
input_text = gr.Textbox(lines=5, label="Input Text", placeholder="Enter text to convert to speech")
|
| 483 |
+
language = gr.Dropdown(
|
| 484 |
+
choices=list(language_dict.keys()), value=default_language, label="Languages", interactive=True
|
| 485 |
+
)
|
| 486 |
+
speaker = gr.Dropdown(choices=[], value=default_speaker, label="Speakers", interactive=False)
|
| 487 |
+
tashkeel_checkbox = gr.Checkbox(label="Tashkeel", value=False, visible=False, interactive=False)
|
| 488 |
+
run_btn = gr.Button(value="Generate Audio", variant="primary")
|
| 489 |
+
|
| 490 |
+
with gr.Column():
|
| 491 |
+
output_text = gr.Textbox(label="Output Text")
|
| 492 |
+
output_audio = gr.Audio(type="filepath", label="Audio Output")
|
| 493 |
+
|
| 494 |
+
language.change(get_speakers, inputs=[language], outputs=[speaker, tashkeel_checkbox])
|
| 495 |
+
run_btn.click(text_to_speech_edge, inputs=[input_text, language, speaker, tashkeel_checkbox], outputs=[output_text, output_audio])
|
| 496 |
+
|
| 497 |
+
if __name__ == "__main__":
|
| 498 |
+
demo.queue().launch(share=False)
|
| 499 |
+
|
| 500 |
+
|
| 501 |
|
|
|
|
|
|
|
| 502 |
|
|
|