Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -13,39 +13,34 @@ vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
|
|
13 |
LANGUAGES = {"English": "en", "French": "fr", "Spanish": "es"}
|
14 |
|
15 |
def generate_speaker_embedding(speaker_type):
|
16 |
-
"""
|
17 |
-
توليد تعبيرات الصوت بناءً على نوع الصوت (ذكر أو أنثى).
|
18 |
-
"""
|
19 |
base_embedding = torch.randn(1, 512)
|
20 |
if speaker_type == "Female":
|
21 |
return base_embedding * 0.8
|
22 |
return base_embedding * 1.2
|
23 |
|
24 |
-
def adjust_speed(audio, speed
|
25 |
-
"""
|
26 |
-
تعديل سرعة الصوت باستخدام مكتبة librosa.
|
27 |
-
"""
|
28 |
return librosa.effects.time_stretch(audio, speed)
|
29 |
|
30 |
def text_to_speech(text, language, speaker_type, speed):
|
31 |
-
"""
|
32 |
-
تحويل النص إلى صوت.
|
33 |
-
"""
|
34 |
try:
|
35 |
# توليد تعبيرات الصوت بناءً على نوع المتحدث
|
36 |
speaker_embeddings = generate_speaker_embedding(speaker_type)
|
37 |
|
38 |
# معالجة النص
|
39 |
inputs = processor(text=text, return_tensors="pt")
|
40 |
-
|
41 |
# توليد الصوت
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
49 |
adjusted_speech = adjust_speed(generated_speech, speed)
|
50 |
|
51 |
# حفظ الصوت كملف WAV
|
@@ -90,4 +85,4 @@ def create_interface():
|
|
90 |
|
91 |
# تشغيل التطبيق
|
92 |
demo = create_interface()
|
93 |
-
demo.launch()
|
|
|
13 |
LANGUAGES = {"English": "en", "French": "fr", "Spanish": "es"}
|
14 |
|
15 |
def generate_speaker_embedding(speaker_type):
|
16 |
+
"""توليد تعبيرات الصوت بناءً على نوع الصوت (ذكر أو أنثى)."""
|
|
|
|
|
17 |
base_embedding = torch.randn(1, 512)
|
18 |
if speaker_type == "Female":
|
19 |
return base_embedding * 0.8
|
20 |
return base_embedding * 1.2
|
21 |
|
22 |
+
def adjust_speed(audio, speed):
|
23 |
+
"""تعديل سرعة الصوت باستخدام مكتبة librosa."""
|
|
|
|
|
24 |
return librosa.effects.time_stretch(audio, speed)
|
25 |
|
26 |
def text_to_speech(text, language, speaker_type, speed):
|
27 |
+
"""تحويل النص إلى صوت."""
|
|
|
|
|
28 |
try:
|
29 |
# توليد تعبيرات الصوت بناءً على نوع المتحدث
|
30 |
speaker_embeddings = generate_speaker_embedding(speaker_type)
|
31 |
|
32 |
# معالجة النص
|
33 |
inputs = processor(text=text, return_tensors="pt")
|
34 |
+
|
35 |
# توليد الصوت
|
36 |
+
with torch.no_grad(): # تحسين إدارة الموارد
|
37 |
+
generated_speech = model.generate_speech(
|
38 |
+
inputs["input_ids"],
|
39 |
+
speaker_embeddings,
|
40 |
+
vocoder=vocoder
|
41 |
+
).cpu().numpy()
|
42 |
+
|
43 |
+
# ضبط سرعة الصوت
|
44 |
adjusted_speech = adjust_speed(generated_speech, speed)
|
45 |
|
46 |
# حفظ الصوت كملف WAV
|
|
|
85 |
|
86 |
# تشغيل التطبيق
|
87 |
demo = create_interface()
|
88 |
+
demo.launch(server_name="0.0.0.0", timeout=180)
|