Fix patch format

This commit is contained in:
mARTin-B78 2026-06-26 11:11:30 +02:00
parent 3c389b0292
commit 529599d98c

View File

@ -1,6 +1,8 @@
--- examples/openai_server.py 2026-06-26 11:11:13.425594803 +0200 diff --git a/examples/openai_server.py b/examples/openai_server.py
+++ /tmp/my_openai_server.py 2026-06-26 11:11:13.417691441 +0200 index 7845b2f..d10065f 100644
@@ -72,6 +72,24 @@ --- a/examples/openai_server.py
+++ b/examples/openai_server.py
@@ -72,6 +72,24 @@ last_voices_mtime: float = 0.0
default_voice: Optional[str] = None default_voice: Optional[str] = None
SAMPLE_RATE = 24000 # updated once the model loads SAMPLE_RATE = 24000 # updated once the model loads
_model_lock = threading.Lock() # prevent concurrent GPU inference _model_lock = threading.Lock() # prevent concurrent GPU inference
@ -25,7 +27,7 @@
def _voice_seed(voice_name: str) -> int: def _voice_seed(voice_name: str) -> int:
@@ -99,8 +117,8 @@ @@ -99,8 +117,8 @@ class SpeechRequest(BaseModel):
model: str = "tts-1" model: str = "tts-1"
input: str input: str
voice: str = "alloy" voice: str = "alloy"
@ -36,7 +38,7 @@
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
@@ -243,7 +261,7 @@ @@ -243,7 +261,7 @@ def _load_voice_clone_prompt(voice_cfg: dict, voice_name: str, tts_model):
return None return None
@ -45,7 +47,7 @@
""" """
Run generate_voice_clone_streaming in a background thread and yield Run generate_voice_clone_streaming in a background thread and yield
raw PCM bytes for each chunk as they arrive. raw PCM bytes for each chunk as they arrive.
@@ -252,6 +270,31 @@ @@ -252,6 +270,31 @@ async def _stream_chunks(voice_cfg: dict, text: str, voice_name: str) -> AsyncGe
_DONE = object() _DONE = object()
def producer(): def producer():
@ -77,7 +79,7 @@
try: try:
with _model_lock: with _model_lock:
_seed_rng(voice_cfg.get("seed", _voice_seed(voice_name))) _seed_rng(voice_cfg.get("seed", _voice_seed(voice_name)))
@@ -268,11 +311,22 @@ @@ -268,11 +311,22 @@ async def _stream_chunks(voice_cfg: dict, text: str, voice_name: str) -> AsyncGe
top_k=voice_cfg.get("top_k", 50), top_k=voice_cfg.get("top_k", 50),
top_p=voice_cfg.get("top_p", 0.9), top_p=voice_cfg.get("top_p", 0.9),
): ):
@ -102,7 +104,7 @@
thread = threading.Thread(target=producer, daemon=True) thread = threading.Thread(target=producer, daemon=True)
thread.start() thread.start()
@@ -284,7 +338,7 @@ @@ -284,7 +338,7 @@ async def _stream_chunks(voice_cfg: dict, text: str, voice_name: str) -> AsyncGe
break break
if isinstance(item, Exception): if isinstance(item, Exception):
raise item raise item
@ -111,7 +113,7 @@
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
@@ -301,7 +355,8 @@ @@ -301,7 +355,8 @@ async def health():
async def create_speech(req: SpeechRequest): async def create_speech(req: SpeechRequest):
if tts_model is None: if tts_model is None:
raise HTTPException(status_code=503, detail="Model not loaded") raise HTTPException(status_code=503, detail="Model not loaded")
@ -121,7 +123,7 @@
raise HTTPException(status_code=400, detail="'input' text is empty") raise HTTPException(status_code=400, detail="'input' text is empty")
voice_cfg = resolve_voice(req.voice) voice_cfg = resolve_voice(req.voice)
@@ -311,16 +366,17 @@ @@ -311,16 +366,17 @@ async def create_speech(req: SpeechRequest):
"wav": "audio/wav", "wav": "audio/wav",
"pcm": "audio/pcm", "pcm": "audio/pcm",
"mp3": "audio/mpeg", "mp3": "audio/mpeg",
@ -142,7 +144,7 @@
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
def _generate(): def _generate():
@@ -341,13 +397,46 @@ @@ -341,13 +397,46 @@ async def create_speech(req: SpeechRequest):
audio_arrays, sr = await loop.run_in_executor(None, _generate) audio_arrays, sr = await loop.run_in_executor(None, _generate)
audio = audio_arrays[0] if audio_arrays else np.zeros(1, dtype=np.float32) audio = audio_arrays[0] if audio_arrays else np.zeros(1, dtype=np.float32)