from fastapi import APIRouter, Response from pydantic import BaseModel from core.queue_client import push_job, await_result router = APIRouter() class SpeechRequest(BaseModel): model: str input: str voice: str = "auto" format: str = "wav" voice_sample_url: str | None = None voice_sample_base64: str | None = None @router.post("/speech") async def speech(req: SpeechRequest): job_id = push_job(req.dict()) audio_bytes, mime = await_result(job_id) return Response(content=audio_bytes, media_type=mime)