cpu-tts / app /api /models.py
grimshaw's picture
Upload current hf-space contents
8986c3d verified
Raw
History Blame Contribute Delete
944 Bytes
from fastapi import APIRouter, Depends, Query
from app.auth import require_bearer_auth
from app.services.engine_registry import EngineRegistry, get_engine_registry
from app.schemas import ModelCard, ModelListResponse, VoiceBinding, VoiceListResponse
router = APIRouter(prefix="/v1")
@router.get("/models", response_model=ModelListResponse, dependencies=[Depends(require_bearer_auth)])
def list_models(registry: EngineRegistry = Depends(get_engine_registry)) -> ModelListResponse:
return ModelListResponse(data=[ModelCard(id=model_id) for model_id in registry.list_models()])
@router.get("/voices", response_model=VoiceListResponse, dependencies=[Depends(require_bearer_auth)])
def list_voices(
model: str | None = Query(default=None),
registry: EngineRegistry = Depends(get_engine_registry),
) -> VoiceListResponse:
return VoiceListResponse(data=[VoiceBinding(**row) for row in registry.list_voice_bindings(model=model)])