37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from pydantic_settings import BaseSettings
|
|
from pathlib import Path
|
|
from typing import Literal
|
|
|
|
class Settings(BaseSettings):
|
|
# 基础路径配置
|
|
BASE_DIR: Path = Path(__file__).resolve().parent.parent
|
|
UPLOAD_DIR: Path = BASE_DIR.parent / "uploads"
|
|
OUTPUT_DIR: Path = BASE_DIR.parent / "outputs"
|
|
|
|
# 数据库/缓存
|
|
REDIS_URL: str = "redis://localhost:6379/0"
|
|
DEBUG: bool = True
|
|
|
|
# TTS 配置
|
|
DEFAULT_TTS_VOICE: str = "zh-CN-YunxiNeural"
|
|
MAX_UPLOAD_SIZE_MB: int = 500
|
|
|
|
# MuseTalk 配置
|
|
MUSETALK_GPU_ID: int = 1 # GPU ID (默认使用 GPU1)
|
|
MUSETALK_LOCAL: bool = True # 使用本地推理 (False 则使用远程 API)
|
|
MUSETALK_API_URL: str = "http://localhost:8001" # 远程 API 地址
|
|
MUSETALK_VERSION: Literal["v1", "v15"] = "v15" # 模型版本
|
|
MUSETALK_BATCH_SIZE: int = 8 # 推理批次大小
|
|
MUSETALK_USE_FLOAT16: bool = True # 使用半精度加速
|
|
|
|
@property
|
|
def MUSETALK_DIR(self) -> Path:
|
|
"""MuseTalk 目录路径 (动态计算)"""
|
|
return self.BASE_DIR.parent.parent / "models" / "MuseTalk"
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
extra = "ignore" # 忽略未知的环境变量
|
|
|
|
settings = Settings()
|