add tts 2D2
Browse files- .gitignore +12 -1
- app.py +8 -2
.gitignore
CHANGED
|
@@ -1 +1,12 @@
|
|
| 1 |
-
__pycache__/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__pycache__/
|
| 2 |
+
*.py[cod]
|
| 3 |
+
*$py.class
|
| 4 |
+
*.so
|
| 5 |
+
.env
|
| 6 |
+
.venv
|
| 7 |
+
venv*
|
| 8 |
+
env/
|
| 9 |
+
ENV/
|
| 10 |
+
*.wav
|
| 11 |
+
test_*.py
|
| 12 |
+
.DS_Store
|
app.py
CHANGED
|
@@ -417,24 +417,30 @@ def generate_tts_with_pauses(text, silence_duration_ms=500):
|
|
| 417 |
|
| 418 |
# 逐句生成音频
|
| 419 |
audio_segments = []
|
|
|
|
|
|
|
| 420 |
for sentence in sentences:
|
| 421 |
if sentence:
|
| 422 |
result = tts(sentence)
|
| 423 |
audio_segments.append(result["audio"])
|
|
|
|
|
|
|
| 424 |
|
| 425 |
# 拼接音频,在之间添加静音
|
| 426 |
-
silence_samples = int(
|
| 427 |
silence = np.zeros(silence_samples, dtype=np.float32)
|
| 428 |
|
| 429 |
combined_audio = []
|
| 430 |
for i, segment in enumerate(audio_segments):
|
|
|
|
|
|
|
| 431 |
combined_audio.append(segment)
|
| 432 |
if i < len(audio_segments) - 1: # 最后一段后面不加静音
|
| 433 |
combined_audio.append(silence)
|
| 434 |
|
| 435 |
final_audio = np.concatenate(combined_audio)
|
| 436 |
|
| 437 |
-
return {"audio": final_audio, "sampling_rate":
|
| 438 |
|
| 439 |
|
| 440 |
@app.post("/upload/text")
|
|
|
|
| 417 |
|
| 418 |
# 逐句生成音频
|
| 419 |
audio_segments = []
|
| 420 |
+
sampling_rate = None
|
| 421 |
+
|
| 422 |
for sentence in sentences:
|
| 423 |
if sentence:
|
| 424 |
result = tts(sentence)
|
| 425 |
audio_segments.append(result["audio"])
|
| 426 |
+
if sampling_rate is None:
|
| 427 |
+
sampling_rate = result["sampling_rate"]
|
| 428 |
|
| 429 |
# 拼接音频,在之间添加静音
|
| 430 |
+
silence_samples = int(sampling_rate * silence_duration_ms / 1000)
|
| 431 |
silence = np.zeros(silence_samples, dtype=np.float32)
|
| 432 |
|
| 433 |
combined_audio = []
|
| 434 |
for i, segment in enumerate(audio_segments):
|
| 435 |
+
# 统一转换为 1D numpy 数组,避免不同环境返回的格式不一致(如 torch Tensor / numpy 多维数组)
|
| 436 |
+
segment = np.asarray(segment).flatten()
|
| 437 |
combined_audio.append(segment)
|
| 438 |
if i < len(audio_segments) - 1: # 最后一段后面不加静音
|
| 439 |
combined_audio.append(silence)
|
| 440 |
|
| 441 |
final_audio = np.concatenate(combined_audio)
|
| 442 |
|
| 443 |
+
return {"audio": final_audio, "sampling_rate": sampling_rate}
|
| 444 |
|
| 445 |
|
| 446 |
@app.post("/upload/text")
|