From 4d71a162e6a9efb1a342b38c934d5e52b3323046 Mon Sep 17 00:00:00 2001 From: Optance Date: Sun, 7 Jun 2026 23:01:25 +0800 Subject: [PATCH] [Bugfix] Fish Speech Gradio hardcoded default voice causes 400 error (#3941) Signed-off-by: nagelanping --- .../text_to_speech/fish_speech/gradio_demo.py | 12 +++++++++--- .../text_to_speech/fish_speech/speech_client.py | 1 - 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/online_serving/text_to_speech/fish_speech/gradio_demo.py b/examples/online_serving/text_to_speech/fish_speech/gradio_demo.py index 7db4e0441..cd2279476 100644 --- a/examples/online_serving/text_to_speech/fish_speech/gradio_demo.py +++ b/examples/online_serving/text_to_speech/fish_speech/gradio_demo.py @@ -51,13 +51,18 @@ def build_payload( response_format: str = "wav", stream: bool = False, ) -> dict: - """Build the /v1/audio/speech request payload.""" + """Build the /v1/audio/speech request payload. + + Fish Speech has no built-in speakers; omit ``voice`` so the model + generates with a random timbre (controllable via text tags like + ``[cool]``, ``[warm]``, etc.). When ``ref_audio`` is supplied we + enter voice-cloning mode instead. + """ if not text or not text.strip(): raise gr.Error("Please enter text to synthesize.") payload: dict = { "input": text.strip(), - "voice": "default", "response_format": "pcm" if stream else response_format, "stream": stream, } @@ -193,7 +198,8 @@ def build_interface(api_base: str, stream_chunk_seconds: float = 0.5): with gr.Accordion("Voice Cloning (optional)", open=False): gr.Markdown( - "Upload or link a short reference audio (10-30s) and provide its transcript to clone the voice." + "Upload or link a short reference audio (10-30s) and provide its transcript to clone the voice. " + "Leave empty for random timbre; use text tags like `[cool]`, `[warm]`, `[happy]` to steer the output." ) ref_audio = gr.Audio( label="Reference Audio", diff --git a/examples/online_serving/text_to_speech/fish_speech/speech_client.py b/examples/online_serving/text_to_speech/fish_speech/speech_client.py index e3ace37e5..43acffdc7 100644 --- a/examples/online_serving/text_to_speech/fish_speech/speech_client.py +++ b/examples/online_serving/text_to_speech/fish_speech/speech_client.py @@ -39,7 +39,6 @@ def run_tts(args) -> None: payload = { "model": args.model, "input": args.text, - "voice": "default", "response_format": args.response_format, }