Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -1,489 +1,215 @@
|
|
1 |
import tempfile
|
2 |
-
|
3 |
import edge_tts
|
4 |
import gradio as gr
|
5 |
from transformers import pipeline
|
6 |
import pyarabic.araby as araby
|
7 |
|
8 |
language_dict = {
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
},
|
136 |
-
"French": {
|
137 |
-
"Denise": "fr-FR-DeniseNeural",
|
138 |
-
"Eloise": "fr-FR-EloiseNeural",
|
139 |
-
"Henri": "fr-FR-HenriNeural",
|
140 |
-
"Sylvie": "fr-CA-SylvieNeural",
|
141 |
-
"Antoine": "fr-CA-AntoineNeural",
|
142 |
-
"Jean": "fr-CA-JeanNeural",
|
143 |
-
"Ariane": "fr-CH-ArianeNeural",
|
144 |
-
"Fabrice": "fr-CH-FabriceNeural",
|
145 |
-
"Charline": "fr-BE-CharlineNeural",
|
146 |
-
"Gerard": "fr-BE-GerardNeural"
|
147 |
-
},
|
148 |
-
"Portuguese": {
|
149 |
-
"Francisca": "pt-BR-FranciscaNeural",
|
150 |
-
"Antonio": "pt-BR-AntonioNeural",
|
151 |
-
"Duarte": "pt-PT-DuarteNeural",
|
152 |
-
"Raquel": "pt-PT-RaquelNeural"
|
153 |
-
},
|
154 |
-
"Indonesian": {
|
155 |
-
"Ardi": "id-ID-ArdiNeural",
|
156 |
-
"Gadis": "id-ID-GadisNeural"
|
157 |
-
},
|
158 |
-
"Hebrew": {
|
159 |
-
"Avri": "he-IL-AvriNeural",
|
160 |
-
"Hila": "he-IL-HilaNeural"
|
161 |
-
},
|
162 |
-
"Italian": {
|
163 |
-
"Isabella": "it-IT-IsabellaNeural",
|
164 |
-
"Diego": "it-IT-DiegoNeural",
|
165 |
-
"Elsa": "it-IT-ElsaNeural"
|
166 |
-
},
|
167 |
-
"Dutch": {
|
168 |
-
"Colette": "nl-NL-ColetteNeural",
|
169 |
-
"Fenna": "nl-NL-FennaNeural",
|
170 |
-
"Maarten": "nl-NL-MaartenNeural",
|
171 |
-
"Arnaud": "nl-BE-ArnaudNeural",
|
172 |
-
"Dena": "nl-BE-DenaNeural"
|
173 |
-
},
|
174 |
-
"Malay": {
|
175 |
-
"Osman": "ms-MY-OsmanNeural",
|
176 |
-
"Yasmin": "ms-MY-YasminNeural"
|
177 |
-
},
|
178 |
-
"Norwegian": {
|
179 |
-
"Pernille": "nb-NO-PernilleNeural",
|
180 |
-
"Finn": "nb-NO-FinnNeural"
|
181 |
-
},
|
182 |
-
"Swedish": {
|
183 |
-
"Sofie": "sv-SE-SofieNeural",
|
184 |
-
"Mattias": "sv-SE-MattiasNeural"
|
185 |
-
},
|
186 |
-
"Greek": {
|
187 |
-
"Athina": "el-GR-AthinaNeural",
|
188 |
-
"Nestoras": "el-GR-NestorasNeural"
|
189 |
-
},
|
190 |
-
"German": {
|
191 |
-
"Katja": "de-DE-KatjaNeural",
|
192 |
-
"Amala": "de-DE-AmalaNeural",
|
193 |
-
"Conrad": "de-DE-ConradNeural",
|
194 |
-
"Killian": "de-DE-KillianNeural",
|
195 |
-
"Ingrid": "de-AT-IngridNeural",
|
196 |
-
"Jonas": "de-AT-JonasNeural",
|
197 |
-
"Jan": "de-CH-JanNeural",
|
198 |
-
"Leni": "de-CH-LeniNeural"
|
199 |
-
},
|
200 |
-
"Afrikaans": {
|
201 |
-
"Adri": "af-ZA-AdriNeural",
|
202 |
-
"Willem": "af-ZA-WillemNeural"
|
203 |
-
},
|
204 |
-
"Amharic": {
|
205 |
-
"Ameha": "am-ET-AmehaNeural",
|
206 |
-
"Mekdes": "am-ET-MekdesNeural"
|
207 |
-
},
|
208 |
-
"Azerbaijani": {
|
209 |
-
"Babek": "az-AZ-BabekNeural",
|
210 |
-
"Banu": "az-AZ-BanuNeural"
|
211 |
-
},
|
212 |
-
"Bulgarian": {
|
213 |
-
"Borislav": "bg-BG-BorislavNeural",
|
214 |
-
"Kalina": "bg-BG-KalinaNeural"
|
215 |
-
},
|
216 |
-
"Bengali": {
|
217 |
-
"Nabanita": "bn-BD-NabanitaNeural",
|
218 |
-
"Pradeep": "bn-BD-PradeepNeural",
|
219 |
-
"Bashkar": "bn-IN-BashkarNeural",
|
220 |
-
"Tanishaa": "bn-IN-TanishaaNeural"
|
221 |
-
},
|
222 |
-
"Bosnian": {
|
223 |
-
"Goran": "bs-BA-GoranNeural",
|
224 |
-
"Vesna": "bs-BA-VesnaNeural"
|
225 |
-
},
|
226 |
-
"Catalan": {
|
227 |
-
"Joana": "ca-ES-JoanaNeural",
|
228 |
-
"Enric": "ca-ES-EnricNeural"
|
229 |
-
},
|
230 |
-
"Czech": {
|
231 |
-
"Antonin": "cs-CZ-AntoninNeural",
|
232 |
-
"Vlasta": "cs-CZ-VlastaNeural"
|
233 |
-
},
|
234 |
-
"Welsh": {
|
235 |
-
"Aled": "cy-GB-AledNeural",
|
236 |
-
"Nia": "cy-GB-NiaNeural"
|
237 |
-
},
|
238 |
-
"Danish": {
|
239 |
-
"Christel": "da-DK-ChristelNeural",
|
240 |
-
"Jeppe": "da-DK-JeppeNeural"
|
241 |
-
},
|
242 |
-
"Estonian": {
|
243 |
-
"Anu": "et-EE-AnuNeural",
|
244 |
-
"Kert": "et-EE-KertNeural"
|
245 |
-
},
|
246 |
-
"Persian": {
|
247 |
-
"Dilara": "fa-IR-DilaraNeural",
|
248 |
-
"Farid": "fa-IR-FaridNeural"
|
249 |
-
},
|
250 |
-
"Finnish": {
|
251 |
-
"Harri": "fi-FI-HarriNeural",
|
252 |
-
"Noora": "fi-FI-NooraNeural"
|
253 |
-
},
|
254 |
-
"Irish": {
|
255 |
-
"Colm": "ga-IE-ColmNeural",
|
256 |
-
"Orla": "ga-IE-OrlaNeural"
|
257 |
-
},
|
258 |
-
"Galician": {
|
259 |
-
"Roi": "gl-ES-RoiNeural",
|
260 |
-
"Sabela": "gl-ES-SabelaNeural"
|
261 |
-
},
|
262 |
-
"Gujarati": {
|
263 |
-
"Dhwani": "gu-IN-DhwaniNeural",
|
264 |
-
"Niranjan": "gu-IN-NiranjanNeural"
|
265 |
-
},
|
266 |
-
"Hindi": {
|
267 |
-
"Madhur": "hi-IN-MadhurNeural",
|
268 |
-
"Swara": "hi-IN-SwaraNeural"
|
269 |
-
},
|
270 |
-
"Croatian": {
|
271 |
-
"Gabrijela": "hr-HR-GabrijelaNeural",
|
272 |
-
"Srecko": "hr-HR-SreckoNeural"
|
273 |
-
},
|
274 |
-
"Hungarian": {
|
275 |
-
"Noemi": "hu-HU-NoemiNeural",
|
276 |
-
"Tamas": "hu-HU-TamasNeural"
|
277 |
-
},
|
278 |
-
"Icelandic": {
|
279 |
-
"Gudrun": "is-IS-GudrunNeural",
|
280 |
-
"Gunnar": "is-IS-GunnarNeural"
|
281 |
-
},
|
282 |
-
"Javanese": {
|
283 |
-
"Dimas": "jv-ID-DimasNeural",
|
284 |
-
"Siti": "jv-ID-SitiNeural"
|
285 |
-
},
|
286 |
-
"Georgian": {
|
287 |
-
"Eka": "ka-GE-EkaNeural",
|
288 |
-
"Giorgi": "ka-GE-GiorgiNeural"
|
289 |
-
},
|
290 |
-
"Kazakh": {
|
291 |
-
"Aigul": "kk-KZ-AigulNeural",
|
292 |
-
"Daulet": "kk-KZ-DauletNeural"
|
293 |
-
},
|
294 |
-
"Khmer": {
|
295 |
-
"Piseth": "km-KH-PisethNeural",
|
296 |
-
"Sreymom": "km-KH-SreymomNeural"
|
297 |
-
},
|
298 |
-
"Kannada": {
|
299 |
-
"Gagan": "kn-IN-GaganNeural",
|
300 |
-
"Sapna": "kn-IN-SapnaNeural"
|
301 |
-
},
|
302 |
-
"Lao": {
|
303 |
-
"Chanthavong": "lo-LA-ChanthavongNeural",
|
304 |
-
"Keomany": "lo-LA-KeomanyNeural"
|
305 |
-
},
|
306 |
-
"Lithuanian": {
|
307 |
-
"Leonas": "lt-LT-LeonasNeural",
|
308 |
-
"Ona": "lt-LT-OnaNeural"
|
309 |
-
},
|
310 |
-
"Latvian": {
|
311 |
-
"Everita": "lv-LV-EveritaNeural",
|
312 |
-
"Nils": "lv-LV-NilsNeural"
|
313 |
-
},
|
314 |
-
"Macedonian": {
|
315 |
-
"Aleksandar": "mk-MK-AleksandarNeural",
|
316 |
-
"Marija": "mk-MK-MarijaNeural"
|
317 |
-
},
|
318 |
-
"Malayalam": {
|
319 |
-
"Midhun": "ml-IN-MidhunNeural",
|
320 |
-
"Sobhana": "ml-IN-SobhanaNeural"
|
321 |
-
},
|
322 |
-
"Mongolian": {
|
323 |
-
"Bataa": "mn-MN-BataaNeural",
|
324 |
-
"Yesui": "mn-MN-YesuiNeural"
|
325 |
-
},
|
326 |
-
"Marathi": {
|
327 |
-
"Aarohi": "mr-IN-AarohiNeural",
|
328 |
-
"Manohar": "mr-IN-ManoharNeural"
|
329 |
-
},
|
330 |
-
"Maltese": {
|
331 |
-
"Grace": "mt-MT-GraceNeural",
|
332 |
-
"Joseph": "mt-MT-JosephNeural"
|
333 |
-
},
|
334 |
-
"Burmese": {
|
335 |
-
"Nilar": "my-MM-NilarNeural",
|
336 |
-
"Thiha": "my-MM-ThihaNeural"
|
337 |
-
},
|
338 |
-
"Nepali": {
|
339 |
-
"Hemkala": "ne-NP-HemkalaNeural",
|
340 |
-
"Sagar": "ne-NP-SagarNeural"
|
341 |
-
},
|
342 |
-
"Polish": {
|
343 |
-
"Marek": "pl-PL-MarekNeural",
|
344 |
-
"Zofia": "pl-PL-ZofiaNeural"
|
345 |
-
},
|
346 |
-
"Pashto": {
|
347 |
-
"Gul Nawaz": "ps-AF-GulNawazNeural",
|
348 |
-
"Latifa": "ps-AF-LatifaNeural"
|
349 |
-
},
|
350 |
-
"Romanian": {
|
351 |
-
"Alina": "ro-RO-AlinaNeural",
|
352 |
-
"Emil": "ro-RO-EmilNeural"
|
353 |
-
},
|
354 |
-
"Russian": {
|
355 |
-
"Svetlana": "ru-RU-SvetlanaNeural",
|
356 |
-
"Dmitry": "ru-RU-DmitryNeural"
|
357 |
-
},
|
358 |
-
"Sinhala": {
|
359 |
-
"Sameera": "si-LK-SameeraNeural",
|
360 |
-
"Thilini": "si-LK-ThiliniNeural"
|
361 |
-
},
|
362 |
-
"Slovak": {
|
363 |
-
"Lukas": "sk-SK-LukasNeural",
|
364 |
-
"Viktoria": "sk-SK-ViktoriaNeural"
|
365 |
-
},
|
366 |
-
"Slovenian": {
|
367 |
-
"Petra": "sl-SI-PetraNeural",
|
368 |
-
"Rok": "sl-SI-RokNeural"
|
369 |
-
},
|
370 |
-
"Somali": {
|
371 |
-
"Muuse": "so-SO-MuuseNeural",
|
372 |
-
"Ubax": "so-SO-UbaxNeural"
|
373 |
-
},
|
374 |
-
"Albanian": {
|
375 |
-
"Anila": "sq-AL-AnilaNeural",
|
376 |
-
"Ilir": "sq-AL-IlirNeural"
|
377 |
-
},
|
378 |
-
"Serbian": {
|
379 |
-
"Nicholas": "sr-RS-NicholasNeural",
|
380 |
-
"Sophie": "sr-RS-SophieNeural"
|
381 |
-
},
|
382 |
-
"Sundanese": {
|
383 |
-
"Jajang": "su-ID-JajangNeural",
|
384 |
-
"Tuti": "su-ID-TutiNeural"
|
385 |
-
},
|
386 |
-
"Swahili": {
|
387 |
-
"Rafiki": "sw-KE-RafikiNeural",
|
388 |
-
"Zuri": "sw-KE-ZuriNeural",
|
389 |
-
"Daudi": "sw-TZ-DaudiNeural",
|
390 |
-
"Rehema": "sw-TZ-RehemaNeural"
|
391 |
},
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
"
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
"
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
"
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
"HsiaoYu": "zh-TW-HsiaoYuNeural",
|
437 |
-
"YunJhe": "zh-TW-YunJheNeural"
|
438 |
-
},
|
439 |
-
"Zulu": {
|
440 |
-
"Thando": "zu-ZA-ThandoNeural",
|
441 |
-
"Themba": "zu-ZA-ThembaNeural"
|
442 |
-
}
|
443 |
}
|
444 |
|
445 |
-
|
446 |
-
|
|
|
|
|
|
|
447 |
|
448 |
-
|
449 |
-
|
|
|
450 |
|
451 |
-
|
452 |
-
|
453 |
-
|
|
|
|
|
454 |
|
455 |
-
def
|
456 |
-
|
457 |
-
|
458 |
-
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio_file:
|
459 |
-
temp_audio_path = temp_audio_file.name
|
460 |
-
|
461 |
-
if arabic_detected and language == "Arabic":
|
462 |
-
audio = pipe(text, return_tensors=True)
|
463 |
-
with open(temp_audio_path, "wb") as f:
|
464 |
-
f.write(audio["audio"].numpy())
|
465 |
-
else:
|
466 |
-
voice_id = language_dict[language][voice]
|
467 |
-
await synthesize_edge_tts(text, voice_id, temp_audio_path)
|
468 |
-
|
469 |
-
return temp_audio_path
|
470 |
|
471 |
-
|
472 |
-
return
|
473 |
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
output = gr.outputs.Audio(type="file", label="Generated Speech")
|
478 |
|
479 |
-
|
480 |
-
|
481 |
-
return gr.Dropdown.update(choices=voices)
|
482 |
|
483 |
-
|
484 |
-
fn=
|
485 |
-
|
486 |
-
outputs=output
|
487 |
-
)
|
488 |
|
489 |
-
|
|
|
1 |
import tempfile
|
|
|
2 |
import edge_tts
|
3 |
import gradio as gr
|
4 |
from transformers import pipeline
|
5 |
import pyarabic.araby as araby
|
6 |
|
7 |
language_dict = {
|
8 |
+
"English": {
|
9 |
+
"Jenny": "en-US-JennyNeural",
|
10 |
+
"Guy": "en-US-GuyNeural",
|
11 |
+
"Ana": "en-US-AnaNeural",
|
12 |
+
"Aria": "en-US-AriaNeural",
|
13 |
+
"Christopher": "en-US-ChristopherNeural",
|
14 |
+
"Eric": "en-US-EricNeural",
|
15 |
+
"Michelle": "en-US-MichelleNeural",
|
16 |
+
"Roger": "en-US-RogerNeural",
|
17 |
+
"Natasha": "en-AU-NatashaNeural",
|
18 |
+
"William": "en-AU-WilliamNeural",
|
19 |
+
"Clara": "en-CA-ClaraNeural",
|
20 |
+
"Liam": "en-CA-LiamNeural",
|
21 |
+
"Libby": "en-GB-LibbyNeural",
|
22 |
+
"Maisie": "en-GB-MaisieNeural",
|
23 |
+
"Ryan": "en-GB-RyanNeural",
|
24 |
+
"Sonia": "en-GB-SoniaNeural",
|
25 |
+
"Thomas": "en-GB-ThomasNeural",
|
26 |
+
"Sam": "en-HK-SamNeural",
|
27 |
+
"Yan": "en-HK-YanNeural",
|
28 |
+
"Connor": "en-IE-ConnorNeural",
|
29 |
+
"Emily": "en-IE-EmilyNeural",
|
30 |
+
"Neerja": "en-IN-NeerjaNeural",
|
31 |
+
"Prabhat": "en-IN-PrabhatNeural",
|
32 |
+
"Asilia": "en-KE-AsiliaNeural",
|
33 |
+
"Chilemba": "en-KE-ChilembaNeural",
|
34 |
+
"Abeo": "en-NG-AbeoNeural",
|
35 |
+
"Ezinne": "en-NG-EzinneNeural",
|
36 |
+
"Mitchell": "en-NZ-MitchellNeural",
|
37 |
+
"James": "en-PH-JamesNeural",
|
38 |
+
"Rosa": "en-PH-RosaNeural",
|
39 |
+
"Luna": "en-SG-LunaNeural",
|
40 |
+
"Wayne": "en-SG-WayneNeural",
|
41 |
+
"Elimu": "en-TZ-ElimuNeural",
|
42 |
+
"Imani": "en-TZ-ImaniNeural",
|
43 |
+
"Leah": "en-ZA-LeahNeural",
|
44 |
+
"Luke": "en-ZA-LukeNeural"
|
45 |
+
},
|
46 |
+
"Spanish": {
|
47 |
+
"Elena": "es-AR-ElenaNeural",
|
48 |
+
"Tomas": "es-AR-TomasNeural",
|
49 |
+
"Marcelo": "es-BO-MarceloNeural",
|
50 |
+
"Sofia": "es-BO-SofiaNeural",
|
51 |
+
"Gonzalo": "es-CO-GonzaloNeural",
|
52 |
+
"Salome": "es-CO-SalomeNeural",
|
53 |
+
"Juan": "es-CR-JuanNeural",
|
54 |
+
"Maria": "es-CR-MariaNeural",
|
55 |
+
"Belkys": "es-CU-BelkysNeural",
|
56 |
+
"Emilio": "es-DO-EmilioNeural",
|
57 |
+
"Ramona": "es-DO-RamonaNeural",
|
58 |
+
"Andrea": "es-EC-AndreaNeural",
|
59 |
+
"Luis": "es-EC-LuisNeural",
|
60 |
+
"Alvaro": "es-ES-AlvaroNeural",
|
61 |
+
"Elvira": "es-ES-ElviraNeural",
|
62 |
+
"Teresa": "es-GQ-TeresaNeural",
|
63 |
+
"Andres": "es-GT-AndresNeural",
|
64 |
+
"Marta": "es-GT-MartaNeural",
|
65 |
+
"Carlos": "es-HN-CarlosNeural",
|
66 |
+
"Karla": "es-HN-KarlaNeural",
|
67 |
+
"Federico": "es-NI-FedericoNeural",
|
68 |
+
"Yolanda": "es-NI-YolandaNeural",
|
69 |
+
"Margarita": "es-PA-MargaritaNeural",
|
70 |
+
"Roberto": "es-PA-RobertoNeural",
|
71 |
+
"Alex": "es-PE-AlexNeural",
|
72 |
+
"Camila": "es-PE-CamilaNeural",
|
73 |
+
"Karina": "es-PR-KarinaNeural",
|
74 |
+
"Victor": "es-PR-VictorNeural",
|
75 |
+
"Mario": "es-PY-MarioNeural",
|
76 |
+
"Tania": "es-PY-TaniaNeural",
|
77 |
+
"Lorena": "es-SV-LorenaNeural",
|
78 |
+
"Rodrigo": "es-SV-RodrigoNeural",
|
79 |
+
"Alonso": "es-US-AlonsoNeural",
|
80 |
+
"Paloma": "es-US-PalomaNeural",
|
81 |
+
"Mateo": "es-UY-MateoNeural",
|
82 |
+
"Valentina": "es-UY-ValentinaNeural",
|
83 |
+
"Paola": "es-VE-PaolaNeural",
|
84 |
+
"Sebastian": "es-VE-SebastianNeural"
|
85 |
+
},
|
86 |
+
"Arabic": {
|
87 |
+
"Hamed": "ar-SA-HamedNeural",
|
88 |
+
"Zariyah": "ar-SA-ZariyahNeural",
|
89 |
+
"Fatima": "ar-AE-FatimaNeural",
|
90 |
+
"Hamdan": "ar-AE-HamdanNeural",
|
91 |
+
"Ali": "ar-BH-AliNeural",
|
92 |
+
"Laila": "ar-BH-LailaNeural",
|
93 |
+
"Ismael": "ar-DZ-IsmaelNeural",
|
94 |
+
"Salma": "ar-EG-SalmaNeural",
|
95 |
+
"Shakir": "ar-EG-ShakirNeural",
|
96 |
+
"Bassel": "ar-IQ-BasselNeural",
|
97 |
+
"Rana": "ar-IQ-RanaNeural",
|
98 |
+
"Sana": "ar-JO-SanaNeural",
|
99 |
+
"Taim": "ar-JO-TaimNeural",
|
100 |
+
"Fahed": "ar-KW-FahedNeural",
|
101 |
+
"Noura": "ar-KW-NouraNeural",
|
102 |
+
"Layla": "ar-LB-LaylaNeural",
|
103 |
+
"Rami": "ar-LB-RamiNeural",
|
104 |
+
"Iman": "ar-LY-ImanNeural",
|
105 |
+
"Omar": "ar-LY-OmarNeural",
|
106 |
+
"Jamal": "ar-MA-JamalNeural",
|
107 |
+
"Mouna": "ar-MA-MounaNeural",
|
108 |
+
"Abdullah": "ar-OM-AbdullahNeural",
|
109 |
+
"Aysha": "ar-OM-AyshaNeural",
|
110 |
+
"Amal": "ar-QA-AmalNeural",
|
111 |
+
"Moaz": "ar-QA-MoazNeural",
|
112 |
+
"Amany": "ar-SY-AmanyNeural",
|
113 |
+
"Laith": "ar-SY-LaithNeural",
|
114 |
+
"Hedi": "ar-TN-HediNeural",
|
115 |
+
"Reem": "ar-TN-ReemNeural",
|
116 |
+
"Maryam": "ar-YE-MaryamNeural",
|
117 |
+
"Saleh": "ar-YE-SalehNeural"
|
118 |
+
},
|
119 |
+
"Korean": {
|
120 |
+
"Sun-Hi": "ko-KR-SunHiNeural",
|
121 |
+
"InJoon": "ko-KR-InJoonNeural"
|
122 |
+
},
|
123 |
+
"Thai": {
|
124 |
+
"Premwadee": "th-TH-PremwadeeNeural",
|
125 |
+
"Niwat": "th-TH-NiwatNeural"
|
126 |
+
},
|
127 |
+
"Vietnamese": {
|
128 |
+
"HoaiMy": "vi-VN-HoaiMyNeural",
|
129 |
+
"NamMinh": "vi-VN-NamMinhNeural"
|
130 |
+
},
|
131 |
+
"Japanese": {
|
132 |
+
"Nanami": "ja-JP-NanamiNeural",
|
133 |
+
"Keita": "ja-JP-KeitaNeural"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
},
|
135 |
+
"French": {
|
136 |
+
"Denise": "fr-FR-DeniseNeural",
|
137 |
+
"Eloise": "fr-FR-EloiseNeural",
|
138 |
+
"Henri": "fr-FR-HenriNeural",
|
139 |
+
"Sylvie": "fr-CA-SylvieNeural",
|
140 |
+
"Antoine": "fr-CA-AntoineNeural",
|
141 |
+
"Jean": "fr-CA-JeanNeural",
|
142 |
+
"Ariane": "fr-CH-ArianeNeural",
|
143 |
+
"Fabrice": "fr-CH-FabriceNeural",
|
144 |
+
"Charline": "fr-BE-CharlineNeural",
|
145 |
+
"Gerard": "fr-BE-GerardNeural"
|
146 |
+
},
|
147 |
+
"Portuguese": {
|
148 |
+
"Francisca": "pt-BR-FranciscaNeural",
|
149 |
+
"Antonio": "pt-BR-AntonioNeural",
|
150 |
+
"Duarte": "pt-PT-DuarteNeural",
|
151 |
+
"Raquel": "pt-PT-RaquelNeural"
|
152 |
+
},
|
153 |
+
"Indonesian": {
|
154 |
+
"Ardi": "id-ID-ArdiNeural",
|
155 |
+
"Gadis": "id-ID-GadisNeural"
|
156 |
+
},
|
157 |
+
"Italian": {
|
158 |
+
"Caterina": "it-IT-CaterinaNeural",
|
159 |
+
"Lucia": "it-IT-LuciaNeural"
|
160 |
+
},
|
161 |
+
"Dutch": {
|
162 |
+
"Fenna": "nl-NL-FennaNeural",
|
163 |
+
"Merel": "nl-NL-MerelNeural"
|
164 |
+
},
|
165 |
+
"German": {
|
166 |
+
"Amelie": "de-DE-AmelieNeural",
|
167 |
+
"Yannick": "de-DE-YannickNeural",
|
168 |
+
"Klaus": "de-AT-KlausNeural",
|
169 |
+
"Sarah": "de-AT-SarahNeural",
|
170 |
+
"Felicitas": "de-CH-FelicitasNeural",
|
171 |
+
"Jan": "de-CH-JanNeural",
|
172 |
+
"Paula": "de-LU-PaulaNeural",
|
173 |
+
"Timo": "de-LU-TimoNeural"
|
174 |
+
},
|
175 |
+
"Mandarin": {
|
176 |
+
"Hanhan": "cmn-CN-HanhanNeural",
|
177 |
+
"Huihui": "cmn-CN-HuihuiNeural"
|
178 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
}
|
180 |
|
181 |
+
def tts(text, lang, speaker):
|
182 |
+
try:
|
183 |
+
model_name = language_dict[lang][speaker]
|
184 |
+
except KeyError:
|
185 |
+
raise ValueError(f"No speaker '{speaker}' found for language '{lang}'.")
|
186 |
|
187 |
+
tts_model = edge_tts.TextToSpeech(model_name)
|
188 |
+
audio = tts_model(text)
|
189 |
+
return audio
|
190 |
|
191 |
+
def translate(text, src_lang, dest_lang):
|
192 |
+
translator = pipeline("translation", model="Helsinki-NLP/opus-mt")
|
193 |
+
translation = translator(text, src=src_lang, tgt=dest_lang)
|
194 |
+
translated_text = translation[0]['translation_text']
|
195 |
+
return translated_text
|
196 |
|
197 |
+
def text_to_speech(text, lang, speaker):
|
198 |
+
if lang == 'Arabic':
|
199 |
+
text = araby.strip_tashkeel(text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
+
audio = tts(text, lang, speaker)
|
202 |
+
return audio
|
203 |
|
204 |
+
def main(text_input, language, speaker):
|
205 |
+
if language == "Arabic":
|
206 |
+
text_input = araby.strip_tashkeel(text_input)
|
|
|
207 |
|
208 |
+
audio_output = tts(text_input, language, speaker)
|
209 |
+
return audio_output
|
|
|
210 |
|
211 |
+
def launch():
|
212 |
+
interface = gr.Interface(fn=main, inputs=["text", "dropdown", gr.inputs.Radio(language_dict)], outputs="audio")
|
213 |
+
interface.launch()
|
|
|
|
|
214 |
|
215 |
+
launch()
|