aboutsummaryrefslogtreecommitdiff
path: root/converter/tts.py
diff options
context:
space:
mode:
Diffstat (limited to 'converter/tts.py')
-rw-r--r--converter/tts.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/converter/tts.py b/converter/tts.py
index 83284a7..9b54cf4 100644
--- a/converter/tts.py
+++ b/converter/tts.py
@@ -1,6 +1,6 @@
"""Client wrappers for the TTS backends.
-QwenTTSClient talks to the Qwen3-TTS Gradio demos (custom voice / voice clone).
+QwenTTSClient talks to the Qwen3-TTS demo server (custom voice / voice clone).
FasterTTSClient talks to the OpenAI-compatible server from the
faster-qwen3-tts repository (voice cloning only; the reference voice is
configured server-side — see the "Faster backend" section of the README).
@@ -40,10 +40,10 @@ VOICE_MODE_CLONE = "voice_clone"
VOICE_MODES = (VOICE_MODE_CUSTOM, VOICE_MODE_CLONE)
# TTS backends (re-exported for the CLI and the converter orchestrator).
-BACKEND_GRADIO = "gradio"
+BACKEND_QWEN = "qwen"
BACKEND_FASTER = "faster"
BACKEND_AUDIOCPP = "audiocpp"
-BACKENDS = (BACKEND_GRADIO, BACKEND_FASTER, BACKEND_AUDIOCPP)
+BACKENDS = (BACKEND_AUDIOCPP, BACKEND_QWEN, BACKEND_FASTER)
# Languages understood by the Qwen3-TTS API. Display names must match the
# demo dropdown exactly (the demo silently falls back to "Auto" for
@@ -188,7 +188,7 @@ def _resolve_request_seed() -> int:
def speaker_display_name() -> str:
- """Return the Gradio display name for the configured custom speaker."""
+ """Return the display name for the configured custom speaker."""
return SPEAKER_DISPLAY_NAMES.get(
config.SPEAKER.lower(), config.SPEAKER)
@@ -343,7 +343,7 @@ class _BaseTTSClient:
class QwenTTSClient(_BaseTTSClient):
- """Generates audio chunks through a Qwen3-TTS Gradio server."""
+ """Generates audio chunks through a Qwen3-TTS demo server."""
def __init__(self, voice_mode: str = "custom_voice", voice_clone_ref_audio: Optional[str] = None,
voice_clone_ref_text: Optional[str] = None, skip_transcription: bool = False,
@@ -392,7 +392,7 @@ class QwenTTSClient(_BaseTTSClient):
except Exception as exc:
raise RuntimeError(
f"Qwen API initialization failed at {api_url}: {exc}. "
- "Make sure the Qwen Gradio server is running and reachable, and that your "
+ "Make sure the Qwen demo server is running and reachable, and that your "
"installed Qwen3-TTS version matches this converter's API expectations "
"(voice clone requires the Base-model demo: Qwen/Qwen3-TTS-12Hz-1.7B-Base)."
) from exc
@@ -635,7 +635,7 @@ class FasterTTSClient(_BaseTTSClient):
repository (examples/openai_server.py). The reference voice (ref audio,
ref text) and language are configured on the server itself via
--ref-audio/--ref-text or a --voices JSON file; this client only sends
- text. Unlike the Gradio demo, the server performs one generation per
+ text. Unlike the Qwen demo, the server performs one generation per
request, so long chunks are sub-chunked client-side.
"""
@@ -779,7 +779,7 @@ class AudioCppTTSClient(_BaseTTSClient):
printed by the CLI.
Each response is a complete WAV file, so sub-request audio is
- concatenated with the same lossless path used for the Gradio client.
+ concatenated with the same lossless path used for the Qwen client.
"""
def __init__(self, voice: Optional[str] = None, language: Optional[str] = None,
@@ -796,7 +796,7 @@ class AudioCppTTSClient(_BaseTTSClient):
self.language = normalize_language(
language if language is not None else config.LANGUAGE)
# One seed value per run, reused for every request (see
- # _resolve_request_seed). Unlike the Gradio demo, audio.cpp has no
+ # _resolve_request_seed). Unlike the Qwen demo, audio.cpp has no
# negative "randomize" seed, so a negative value means "send no seed
# at all" (see _request_wav) and the server randomizes.
self._seed = _resolve_request_seed()