- Fix race condition: pass return_timestamps as parameter instead of mutating shared state - Remove /local/transcriptions endpoint (path traversal vulnerability) - Add timeout=30 and URL scheme validation to prevent SSRF - Add temp file cleanup via try/finally in all route handlers - AsyncTaskManager: add threading.Lock and TTL cleanup for completed tasks - Change audio_rate to 16000 (matches Whisper's expected sample rate) - Extract filename from URL via Content-Disposition/path - Detect base64 audio format via python-magic - Fix response_size_bytes to use json.dumps instead of str() - Move scipy import to module level - Clamp temperature to [0.0, 1.0] - Deduplicate _load_model() code - Fix docstrings, README structure, typo, log level Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
875 B
JSON
25 lines
875 B
JSON
{
|
|
"service_port": 5042,
|
|
"model_path": "/home/text-generation/models/whisper/podlodka-turbo",
|
|
"language": "ru",
|
|
"enable_history": true,
|
|
"chunk_length_s": 28,
|
|
"batch_size": 6,
|
|
"max_new_tokens": 384,
|
|
"temperature": 0.01,
|
|
"return_timestamps": false,
|
|
"audio_rate": 16000,
|
|
"norm_level": "-0.55",
|
|
"compand_params": "0.3,1 -90,-90,-70,-50,-40,-15,0,0 -7 0 0.15",
|
|
"device_id": 0,
|
|
"file_validation": {
|
|
"max_file_size_mb": 500,
|
|
"allowed_extensions": [".wav", ".mp3", ".ogg", ".flac", ".m4a", ".oga", ".aac", ".webm"],
|
|
"allowed_mime_types": ["audio/wav", "audio/mpeg", "audio/ogg", "audio/flac", "audio/mp4", "audio/x-m4a", "audio/aac", "audio/webm"]
|
|
},
|
|
"log_level": "INFO",
|
|
"log_file": "logs/whisper_api.log",
|
|
"request_logging": {
|
|
"exclude_endpoints": ["/health", "/static"]
|
|
}
|
|
} |