TTS_Deploy / utils /config.py
USF00's picture
Initial commit: FastAPI TTS Project ready for Vast.ai
493b3af
Raw
History Blame Contribute Delete
1.26 kB
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]