Spaces:
Running
Running
Update app.py
Browse filesparamterize output path
app.py
CHANGED
@@ -11,7 +11,7 @@ async def get_voices():
|
|
11 |
return {f"{v['ShortName']} ({v['Locale']}, {v['Gender']})": v['ShortName'] for v in voices}
|
12 |
|
13 |
# Text to speech functionality
|
14 |
-
async def text_to_speech(text, voice, rate, pitch):
|
15 |
if not text.strip():
|
16 |
return None, gr.Warning("Please enter the text to convert.")
|
17 |
if not voice:
|
@@ -21,10 +21,25 @@ async def text_to_speech(text, voice, rate, pitch):
|
|
21 |
rate_str = f"{rate:+d}%"
|
22 |
pitch_str = f"{pitch:+d}Hz"
|
23 |
communicate = edge_tts.Communicate(text, voice_short_name, rate=rate_str, pitch=pitch_str)
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
# Generate SRT file with specified lines of subtitles
|
30 |
def generate_srt(words, audio_duration, srt_path, num_lines):
|
|
|
11 |
return {f"{v['ShortName']} ({v['Locale']}, {v['Gender']})": v['ShortName'] for v in voices}
|
12 |
|
13 |
# Text to speech functionality
|
14 |
+
async def text_to_speech(text, voice, rate, pitch, output_path):
|
15 |
if not text.strip():
|
16 |
return None, gr.Warning("Please enter the text to convert.")
|
17 |
if not voice:
|
|
|
21 |
rate_str = f"{rate:+d}%"
|
22 |
pitch_str = f"{pitch:+d}Hz"
|
23 |
communicate = edge_tts.Communicate(text, voice_short_name, rate=rate_str, pitch=pitch_str)
|
24 |
+
|
25 |
+
# Save to the specified output path
|
26 |
+
await communicate.save(output_path)
|
27 |
+
return output_path, None
|
28 |
+
|
29 |
+
# async def text_to_speech(text, voice, rate, pitch):
|
30 |
+
# if not text.strip():
|
31 |
+
# return None, gr.Warning("Please enter the text to convert.")
|
32 |
+
# if not voice:
|
33 |
+
# return None, gr.Warning("Please select a voice.")
|
34 |
+
|
35 |
+
# voice_short_name = voice.split(" (")[0]
|
36 |
+
# rate_str = f"{rate:+d}%"
|
37 |
+
# pitch_str = f"{pitch:+d}Hz"
|
38 |
+
# communicate = edge_tts.Communicate(text, voice_short_name, rate=rate_str, pitch=pitch_str)
|
39 |
+
# with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_file:
|
40 |
+
# tmp_path = tmp_file.name
|
41 |
+
# await communicate.save(tmp_path)
|
42 |
+
# return tmp_path, None
|
43 |
|
44 |
# Generate SRT file with specified lines of subtitles
|
45 |
def generate_srt(words, audio_duration, srt_path, num_lines):
|