fix: normalize CosyVoice3 instructions

This commit is contained in:
Codex
2026-07-15 19:32:21 +02:00
parent eed7ba899e
commit 57bf30eca1
+12 -1
View File
@@ -89,6 +89,17 @@ async def lifespan(_: FastAPI):
app = FastAPI(title="SelfMedia Voice", version="1", lifespan=lifespan) app = FastAPI(title="SelfMedia Voice", version="1", lifespan=lifespan)
INSTRUCTION_END_TOKEN = "<|endofprompt|>"
def normalize_instruction(value: str | None) -> str | None:
if value is None or not value.strip():
return None
normalized = value.strip()
if INSTRUCTION_END_TOKEN in normalized:
return normalized
return f"You are a helpful assistant. {normalized}{INSTRUCTION_END_TOKEN}"
@app.get("/health") @app.get("/health")
def health() -> dict: def health() -> dict:
@@ -125,7 +136,7 @@ def speech(request: SpeechRequest) -> Response:
raise HTTPException(status_code=400, detail="voice must select the configured reference voice") raise HTTPException(status_code=400, detail="voice must select the configured reference voice")
started = time.perf_counter() started = time.perf_counter()
instruction = request.instructions or request.instruct instruction = normalize_instruction(request.instructions or request.instruct)
with runtime.lock: with runtime.lock:
inference = ( inference = (
runtime.model.inference_instruct2( runtime.model.inference_instruct2(