Spaces:
Sleeping
Sleeping
| import os | |
| from pathlib import Path | |
| # ---------- Base Directories ---------- | |
| BASE_DIR = Path(__file__).parent.parent | |
| DIR_TEMP = BASE_DIR / "temp" | |
| DIR_OUTPUT = BASE_DIR / "outputs" | |
| DIR_MODELS = BASE_DIR / "models" | |
| # Ensure directories exist | |
| for d in [DIR_TEMP, DIR_OUTPUT, DIR_MODELS]: | |
| d.mkdir(parents=True, exist_ok=True) | |
| # ---------- TTS (Edge-TTS) Configuration ---------- | |
| DEFAULT_VOICE_ID = "preset_1" | |
| CUSTOM_VOICE_NAME = None # e.g. "en-US-GuyNeural" | |
| EDGE_RATE = "+0%" | |
| EDGE_PITCH = "+0Hz" | |
| VOICE_REGISTRY = { | |
| "preset_1": "en-US-GuyNeural", | |
| "preset_2": "en-US-JennyNeural", | |
| "preset_3": "en-GB-RyanNeural", | |
| "preset_4": "en-GB-SoniaNeural", | |
| "preset_5": "ar-EG-SalmaNeural", | |
| } | |
| # ---------- Text + Chunking ---------- | |
| DEFAULT_LANG = "en" | |
| MAX_CHARS = 220 | |
| MIN_CHARS = 20 | |
| # ---------- Audio Formats ---------- | |
| SAMPLE_RATE = 22050 # Output sample rate for consistent mono PCM wav | |
| def resolve_voice_name(voice_id: str, custom_name: str = None) -> str: | |
| if custom_name and str(custom_name).strip(): | |
| return str(custom_name).strip() | |
| if voice_id not in VOICE_REGISTRY: | |
| raise ValueError(f"Unknown VOICE_ID={voice_id}. Use {list(VOICE_REGISTRY.keys())} or set CUSTOM_VOICE_NAME.") | |
| return VOICE_REGISTRY[voice_id] | |