Add local GPU preset voices with dropdown selection.

Generate ChatTTS sample_random_speaker presets without cloud APIs; choose clone or preset in synthesize UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-12 17:28:17 +08:00
parent 8be34a2fd5
commit eb71e28427
7 changed files with 304 additions and 15 deletions
+10 -4
View File
@@ -632,12 +632,16 @@ def _concat_wavs(
return np.concatenate(segments)
def generate_voice(refined_text: str) -> Tuple[bool, str, Optional[str]]:
def generate_voice(
refined_text: str,
voice_id: str = "custom",
) -> Tuple[bool, str, Optional[str]]:
"""
使用 ChatTTS 将润色后的文稿合成为 wav 配音
使用 ChatTTS(本地 GPU)将润色稿合成为 wav。
Args:
refined_text: LLM 润色后的配音稿
voice_id: ``custom`` 为锁定音色,``preset_*`` 为内置预设(见 voice_presets
Returns:
(success, message, output_wav_path_or_none)
@@ -662,9 +666,11 @@ def generate_voice(refined_text: str) -> Tuple[bool, str, Optional[str]]:
if chat is None:
return False, init_err or "ChatTTS 不可用。", None
payload, spk_err = _load_speaker_payload()
from voice_presets import load_voice_payload
payload, spk_err = load_voice_payload(voice_id)
if payload is None:
return False, spk_err or "请先锁定音色。", None
return False, spk_err or "请先选择或生成可用音色。", None
try:
import ChatTTS