Update app.py
Browse files
app.py
CHANGED
@@ -8,7 +8,31 @@ import re # Import the regular expression module
|
|
8 |
from pathlib import Path
|
9 |
from pydub import AudioSegment
|
10 |
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
# Get all available voices
|
14 |
async def get_voices():
|
@@ -45,10 +69,8 @@ async def paragraph_to_speech(text, voice, rate, pitch):
|
|
45 |
print(f"Silence.mp3 file found at {SILENCE_PATH} and is inserted")
|
46 |
else:
|
47 |
print(f"Silence.mp3 file NOT FOUND")
|
48 |
-
|
49 |
-
|
50 |
-
silent_audio.export(tmp_file.name, format="mp3")
|
51 |
-
audio_segments.append(tmp_file.name)
|
52 |
|
53 |
elif part.strip():
|
54 |
processed_text = part
|
|
|
8 |
from pathlib import Path
|
9 |
from pydub import AudioSegment
|
10 |
|
11 |
+
def get_silence(duration_ms=1000):
|
12 |
+
# Create silent audio segment with specified parameters
|
13 |
+
silent_audio = AudioSegment.silent(
|
14 |
+
duration=duration_ms,
|
15 |
+
frame_rate=24000 # 24kHz sampling rate
|
16 |
+
)
|
17 |
+
|
18 |
+
# Set audio parameters
|
19 |
+
silent_audio = silent_audio.set_channels(1) # Mono
|
20 |
+
silent_audio = silent_audio.set_sample_width(4) # 32-bit (4 bytes per sample)
|
21 |
+
|
22 |
+
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_file:
|
23 |
+
# Export with specific bitrate and codec parameters
|
24 |
+
silent_audio.export(
|
25 |
+
tmp_file.name,
|
26 |
+
format="mp3",
|
27 |
+
bitrate="48k",
|
28 |
+
parameters=[
|
29 |
+
"-ac", "1", # Mono
|
30 |
+
"-ar", "24000", # Sample rate
|
31 |
+
"-sample_fmt", "s32", # 32-bit samples
|
32 |
+
"-codec:a", "libmp3lame" # MP3 codec
|
33 |
+
]
|
34 |
+
)
|
35 |
+
return tmp_file.name
|
36 |
|
37 |
# Get all available voices
|
38 |
async def get_voices():
|
|
|
69 |
print(f"Silence.mp3 file found at {SILENCE_PATH} and is inserted")
|
70 |
else:
|
71 |
print(f"Silence.mp3 file NOT FOUND")
|
72 |
+
silence_file_path = get_silence(5000) # Store the returned filename
|
73 |
+
audio_segments.append(silence_file_path) # Use the stored filename
|
|
|
|
|
74 |
|
75 |
elif part.strip():
|
76 |
processed_text = part
|