Update app.py
Browse files
app.py
CHANGED
|
@@ -102,7 +102,6 @@ class TTSPayload(BaseModel):
|
|
| 102 |
# TTS ENDPOINT
|
| 103 |
# ===============================
|
| 104 |
@app.post("/tts")
|
| 105 |
-
|
| 106 |
def generate_tts(payload: TTSPayload):
|
| 107 |
model = get_or_load_model()
|
| 108 |
|
|
@@ -122,15 +121,20 @@ def generate_tts(payload: TTSPayload):
|
|
| 122 |
final_text[:300],
|
| 123 |
language_id=payload.language_id,
|
| 124 |
)
|
| 125 |
-
|
|
|
|
|
|
|
| 126 |
|
| 127 |
# Convert numpy -> WAV bytes
|
|
|
|
|
|
|
| 128 |
buf = io.BytesIO()
|
| 129 |
write_wav(buf, sr, wav.astype(np.float32))
|
| 130 |
buf.seek(0)
|
| 131 |
audio_bytes = buf.read()
|
| 132 |
|
| 133 |
# Return as base64
|
|
|
|
| 134 |
return {
|
| 135 |
"sr": sr,
|
| 136 |
"audio_base64": base64.b64encode(audio_bytes).decode("utf-8")
|
|
|
|
| 102 |
# TTS ENDPOINT
|
| 103 |
# ===============================
|
| 104 |
@app.post("/tts")
|
|
|
|
| 105 |
def generate_tts(payload: TTSPayload):
|
| 106 |
model = get_or_load_model()
|
| 107 |
|
|
|
|
| 121 |
final_text[:300],
|
| 122 |
language_id=payload.language_id,
|
| 123 |
)
|
| 124 |
+
# convert tensor → numpy
|
| 125 |
+
wav = wav.squeeze(0).detach().cpu().numpy()
|
| 126 |
+
sr = model.sr
|
| 127 |
|
| 128 |
# Convert numpy -> WAV bytes
|
| 129 |
+
import io
|
| 130 |
+
from scipy.io.wavfile import write as write_wav
|
| 131 |
buf = io.BytesIO()
|
| 132 |
write_wav(buf, sr, wav.astype(np.float32))
|
| 133 |
buf.seek(0)
|
| 134 |
audio_bytes = buf.read()
|
| 135 |
|
| 136 |
# Return as base64
|
| 137 |
+
import base64
|
| 138 |
return {
|
| 139 |
"sr": sr,
|
| 140 |
"audio_base64": base64.b64encode(audio_bytes).decode("utf-8")
|