Spaces:
Sleeping
Sleeping
shriniket73
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -215,35 +215,33 @@ async def startup_event():
|
|
215 |
|
216 |
@app.post("/generate")
|
217 |
async def generate_speech(request: TTSRequest):
|
218 |
-
"""Generate speech from text with
|
219 |
try:
|
220 |
-
|
221 |
-
|
222 |
|
223 |
-
|
224 |
-
|
225 |
-
start_time = time.time()
|
226 |
wav = service.generate_speech(request.text)
|
227 |
-
|
228 |
-
|
229 |
-
logger.info(f"Processing time: {processing_time:.2f} seconds")
|
230 |
|
231 |
-
#
|
|
|
232 |
buffer = io.BytesIO()
|
233 |
np.save(buffer, wav.astype(np.float32))
|
|
|
|
|
234 |
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
|
|
|
|
239 |
}
|
240 |
|
241 |
-
|
242 |
-
logger.error(f"Validation error: {str(e)}")
|
243 |
-
raise HTTPException(status_code=400, detail=str(e))
|
244 |
-
except Exception as e:
|
245 |
-
logger.error(f"Error in generate_speech endpoint: {str(e)}")
|
246 |
-
raise HTTPException(status_code=500, detail=str(e))
|
247 |
|
248 |
@app.get("/health")
|
249 |
async def health_check():
|
|
|
215 |
|
216 |
@app.post("/generate")
|
217 |
async def generate_speech(request: TTSRequest):
|
218 |
+
"""Generate speech from text with detailed timing"""
|
219 |
try:
|
220 |
+
total_start = time.time()
|
221 |
+
logger.info(f"\nReceived request for text: {request.text[:50]}...")
|
222 |
|
223 |
+
# Model processing time
|
224 |
+
model_start = time.time()
|
|
|
225 |
wav = service.generate_speech(request.text)
|
226 |
+
model_time = time.time() - model_start
|
|
|
|
|
227 |
|
228 |
+
# Audio conversion time
|
229 |
+
conversion_start = time.time()
|
230 |
buffer = io.BytesIO()
|
231 |
np.save(buffer, wav.astype(np.float32))
|
232 |
+
audio_base64 = base64.b64encode(buffer.getvalue()).decode()
|
233 |
+
conversion_time = time.time() - conversion_start
|
234 |
|
235 |
+
# Total processing time
|
236 |
+
total_time = time.time() - total_start
|
237 |
+
|
238 |
+
timing_info = {
|
239 |
+
"total_processing_time": round(total_time, 2),
|
240 |
+
"model_processing_time": round(model_time, 2),
|
241 |
+
"audio_conversion_time": round(conversion_time, 2)
|
242 |
}
|
243 |
|
244 |
+
logger.info(f"Timing breakdown: {timing_info}")
|
|
|
|
|
|
|
|
|
|
|
245 |
|
246 |
@app.get("/health")
|
247 |
async def health_check():
|