• Stefy Lanza (nextime / spora )'s avatar
    name kokoro's voices without loading it · 40aa3eb0
    Stefy Lanza (nextime / spora ) authored
    Languages landed but the voices did not: kokoro reported none until something
    loaded it, so a client could see nine languages and still have nothing to pick
    from. The names are now read out of the voices file the backend itself selects
    from — the same file, so the listing cannot offer a voice that synthesis would
    then reject — and the accent map already in the module decodes each one's
    language and gender. 54 voices across all nine languages.
    
    Pointedly NOT via _resolve_kokoro_files: that downloads a 28 MB release when
    nothing local matches, and /v1/models is a polled endpoint, so it must never be
    a download trigger. A file that is not on disk simply yields no names, and there
    is a test that fails if the listing path reaches for the network at all. The zip
    index read is memoised against the file's own mtime (27ms -> 0.1ms).
    
    A list a load actually enumerated still outranks the file, and a card's
    voices_path is honoured. XTTS keeps filling in after its first load, and parler
    stays empty with selection "described" — it has no speaker names to give.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_014T3rZozi1Ehk96NG1WesgC
    40aa3eb0
manager.py 350 KB