Update evaluate.py
Browse files- evaluate.py +11 -13
evaluate.py
CHANGED
|
@@ -20,8 +20,8 @@ from translator import get_asr_model, get_asr_processor, LANGUAGE_CODES
|
|
| 20 |
# Configure logging
|
| 21 |
logger = logging.getLogger("speech_api")
|
| 22 |
|
| 23 |
-
|
| 24 |
-
|
| 25 |
|
| 26 |
def calculate_similarity(text1, text2):
|
| 27 |
"""Calculate text similarity percentage."""
|
|
@@ -66,6 +66,7 @@ def setup_reference_patterns(reference_dir, sample_rate=16000):
|
|
| 66 |
continue
|
| 67 |
|
| 68 |
return created_dirs, 0 # Return 0 created files since we're not creating dummy files anymore
|
|
|
|
| 69 |
def search_reference_directories():
|
| 70 |
"""Search for possible reference directories in various locations"""
|
| 71 |
possible_locations = [
|
|
@@ -222,6 +223,7 @@ def init_reference_audio(reference_dir, output_dir):
|
|
| 222 |
except:
|
| 223 |
logger.critical("💥 CRITICAL: Failed to create even a fallback directory")
|
| 224 |
return reference_dir
|
|
|
|
| 225 |
def handle_upload_reference(request, reference_dir, sample_rate):
|
| 226 |
"""Handle upload of reference audio files"""
|
| 227 |
try:
|
|
@@ -349,10 +351,10 @@ def handle_evaluation_request(request, reference_dir, output_dir, sample_rate):
|
|
| 349 |
audio_hash = hashlib.md5(audio_content).hexdigest()
|
| 350 |
cache_key = f"{audio_hash}_{reference_locator}_{language}"
|
| 351 |
|
| 352 |
-
# Check in-memory cache
|
| 353 |
-
if
|
| 354 |
logger.info(f"[{request_id}] ✅ Using cached evaluation result")
|
| 355 |
-
return
|
| 356 |
|
| 357 |
# Construct full reference directory path
|
| 358 |
reference_dir_path = os.path.join(reference_dir, reference_locator)
|
|
@@ -571,16 +573,12 @@ def handle_evaluation_request(request, reference_dir, output_dir, sample_rate):
|
|
| 571 |
"quick_evaluation": True
|
| 572 |
})
|
| 573 |
|
| 574 |
-
# OPTIMIZATION 6: Cache the result for future requests
|
| 575 |
-
if not hasattr(handle_evaluation_request, 'cache'):
|
| 576 |
-
handle_evaluation_request.cache = {}
|
| 577 |
-
|
| 578 |
-
# Store in cache (limit cache size to avoid memory issues)
|
| 579 |
MAX_CACHE_SIZE = 50
|
| 580 |
-
|
| 581 |
-
if len(
|
| 582 |
# Remove oldest entry (simplified approach)
|
| 583 |
-
|
| 584 |
|
| 585 |
return response
|
| 586 |
|
|
|
|
| 20 |
# Configure logging
|
| 21 |
logger = logging.getLogger("speech_api")
|
| 22 |
|
| 23 |
+
# Initialize cache at module level instead
|
| 24 |
+
EVALUATION_CACHE = {}
|
| 25 |
|
| 26 |
def calculate_similarity(text1, text2):
|
| 27 |
"""Calculate text similarity percentage."""
|
|
|
|
| 66 |
continue
|
| 67 |
|
| 68 |
return created_dirs, 0 # Return 0 created files since we're not creating dummy files anymore
|
| 69 |
+
|
| 70 |
def search_reference_directories():
|
| 71 |
"""Search for possible reference directories in various locations"""
|
| 72 |
possible_locations = [
|
|
|
|
| 223 |
except:
|
| 224 |
logger.critical("💥 CRITICAL: Failed to create even a fallback directory")
|
| 225 |
return reference_dir
|
| 226 |
+
|
| 227 |
def handle_upload_reference(request, reference_dir, sample_rate):
|
| 228 |
"""Handle upload of reference audio files"""
|
| 229 |
try:
|
|
|
|
| 351 |
audio_hash = hashlib.md5(audio_content).hexdigest()
|
| 352 |
cache_key = f"{audio_hash}_{reference_locator}_{language}"
|
| 353 |
|
| 354 |
+
# Check in-memory cache using the module-level cache
|
| 355 |
+
if cache_key in EVALUATION_CACHE:
|
| 356 |
logger.info(f"[{request_id}] ✅ Using cached evaluation result")
|
| 357 |
+
return EVALUATION_CACHE[cache_key]
|
| 358 |
|
| 359 |
# Construct full reference directory path
|
| 360 |
reference_dir_path = os.path.join(reference_dir, reference_locator)
|
|
|
|
| 573 |
"quick_evaluation": True
|
| 574 |
})
|
| 575 |
|
| 576 |
+
# OPTIMIZATION 6: Cache the result for future requests using module-level cache
|
|
|
|
|
|
|
|
|
|
|
|
|
| 577 |
MAX_CACHE_SIZE = 50
|
| 578 |
+
EVALUATION_CACHE[cache_key] = response
|
| 579 |
+
if len(EVALUATION_CACHE) > MAX_CACHE_SIZE:
|
| 580 |
# Remove oldest entry (simplified approach)
|
| 581 |
+
EVALUATION_CACHE.pop(next(iter(EVALUATION_CACHE)))
|
| 582 |
|
| 583 |
return response
|
| 584 |
|