Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -6,7 +6,7 @@ from gtts.lang import tts_langs
|
|
6 |
# Get available languages for Google TTS
|
7 |
google_langs = tts_langs()
|
8 |
|
9 |
-
#
|
10 |
google_lang_descriptions = {
|
11 |
"af": "Afrikaans",
|
12 |
"ar": "Arabic",
|
@@ -77,15 +77,19 @@ google_voice_options = {
|
|
77 |
# Add voice options for other languages if applicable
|
78 |
}
|
79 |
|
80 |
-
def google_tts(text, lang, tld):
|
81 |
try:
|
82 |
-
|
|
|
|
|
|
|
|
|
83 |
|
84 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio:
|
85 |
tts.save(temp_audio.name)
|
86 |
temp_audio_path = temp_audio.name
|
87 |
|
88 |
-
return temp_audio_path, f"Speech generated with Google TTS using {google_lang_descriptions.get(lang, lang)} language
|
89 |
except Exception as e:
|
90 |
return None, f"Error in Google TTS speech generation: {str(e)}"
|
91 |
|
@@ -107,14 +111,14 @@ with gr.Blocks() as iface:
|
|
107 |
# Convert descriptive language back to its code
|
108 |
google_lang_code = [key for key, value in google_lang_descriptions.items() if value == google_lang_desc][0]
|
109 |
# Find the tld (country code) based on the description (if applicable)
|
110 |
-
google_voice_tld = dict(google_voice_options.get(google_lang_code, [("Default",
|
111 |
return google_tts(text, google_lang_code, google_voice_tld)
|
112 |
|
113 |
def update_google_voice_options(lang_desc):
|
114 |
# Convert descriptive language back to its code
|
115 |
google_lang_code = [key for key, value in google_lang_descriptions.items() if value == lang_desc][0]
|
116 |
# Update the voice dropdown with corresponding voice options (if available)
|
117 |
-
return gr.Dropdown(choices=[x[0] for x in google_voice_options.get(google_lang_code, [("Default",
|
118 |
|
119 |
speech_button.click(generate_speech,
|
120 |
inputs=[text_input, google_lang_input, google_voice_input],
|
|
|
6 |
# Get available languages for Google TTS
|
7 |
google_langs = tts_langs()
|
8 |
|
9 |
+
# Create descriptive names for all supported languages
|
10 |
google_lang_descriptions = {
|
11 |
"af": "Afrikaans",
|
12 |
"ar": "Arabic",
|
|
|
77 |
# Add voice options for other languages if applicable
|
78 |
}
|
79 |
|
80 |
+
def google_tts(text, lang, tld=None):
|
81 |
try:
|
82 |
+
# Only include tld if it's provided (for languages like English)
|
83 |
+
if tld:
|
84 |
+
tts = gTTS(text=text, lang=lang, tld=tld, slow=False)
|
85 |
+
else:
|
86 |
+
tts = gTTS(text=text, lang=lang, slow=False) # No TLD for languages without specific variants
|
87 |
|
88 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio:
|
89 |
tts.save(temp_audio.name)
|
90 |
temp_audio_path = temp_audio.name
|
91 |
|
92 |
+
return temp_audio_path, f"Speech generated with Google TTS using {google_lang_descriptions.get(lang, lang)} language"
|
93 |
except Exception as e:
|
94 |
return None, f"Error in Google TTS speech generation: {str(e)}"
|
95 |
|
|
|
111 |
# Convert descriptive language back to its code
|
112 |
google_lang_code = [key for key, value in google_lang_descriptions.items() if value == google_lang_desc][0]
|
113 |
# Find the tld (country code) based on the description (if applicable)
|
114 |
+
google_voice_tld = dict(google_voice_options.get(google_lang_code, [("Default", None)])).get(google_voice_desc, None)
|
115 |
return google_tts(text, google_lang_code, google_voice_tld)
|
116 |
|
117 |
def update_google_voice_options(lang_desc):
|
118 |
# Convert descriptive language back to its code
|
119 |
google_lang_code = [key for key, value in google_lang_descriptions.items() if value == lang_desc][0]
|
120 |
# Update the voice dropdown with corresponding voice options (if available)
|
121 |
+
return gr.Dropdown(choices=[x[0] for x in google_voice_options.get(google_lang_code, [("Default", None)])], value="Default")
|
122 |
|
123 |
speech_button.click(generate_speech,
|
124 |
inputs=[text_input, google_lang_input, google_voice_input],
|