INNER CODE UNIT · Python

_get_kokoro_voice_options

harry0703/MoneyPrinterTurbo · webui/Main.py:542

def _get_kokoro_voice_options(saved_voice_name: str) -> list[str]:
    """会话内短缓存远端目录,断线时保留上次选择,不把故障当成用户改音色。"""
    if config.kokoro.get("voices"):
        return voice.get_kokoro_voices()

    # 仅保留当前服务的一条缓存。更换端点/凭据立即重查,缓存不保存明文 Key;
    # 30 秒内的其他 UI 操作不重复阻塞 5 秒等待一个已知离线的服务。
    signature = (
        (config.kokoro.get("base_url") or "").strip().rstrip("/"),
        _credential_signature(config.kokoro.get("api_key", "")),
    )
    catalog = st.session_state.get("kokoro_voice_catalog", {})
    if catalog.get("signature") != signature:
        catalog = {"signature": signature, "voices": [], "checked_at": None}
    now = time.monotonic()
    if catalog["checked_at"] is None or now - catalog["checked_at"] >= 30:
        fetched = voice.get_kokoro_voices(fallback=False)
        catalog.update(checked_at=now, available=bool(fetched))

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…