shriniket73 commited on
Commit
196cb0c
·
verified ·
1 Parent(s): 4698f30

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -20
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 improved error handling"""
219
  try:
220
- if not service:
221
- raise HTTPException(status_code=503, detail="Service not initialized")
222
 
223
- logger.info(f"Received request for text: {request.text[:50]}...")
224
-
225
- start_time = time.time()
226
  wav = service.generate_speech(request.text)
227
- processing_time = time.time() - start_time
228
-
229
- logger.info(f"Processing time: {processing_time:.2f} seconds")
230
 
231
- # Convert to bytes
 
232
  buffer = io.BytesIO()
233
  np.save(buffer, wav.astype(np.float32))
 
 
234
 
235
- return {
236
- "status": "success",
237
- "audio": base64.b64encode(buffer.getvalue()).decode(),
238
- "processing_time": processing_time
 
 
 
239
  }
240
 
241
- except ValueError as e:
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():