* Fix voice cache crash when server runs with custom --model-path (#13)
When started with --model-path "<full file path>", the file path was used
verbatim as a filename tag, producing targets like
voice_cache/Aadi.C:\...\english.yaml.safetensors — invalid on Windows.
safetensors raises SafetensorError (not OSError) on the resulting I/O
failure, so the existing handler let it propagate and broke voice loading.
Reduce path-like model identifiers to their filesystem-safe stem in
active_model_tag, and broaden the cache-write handler so any future
serialization failure stays best-effort.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Bump version to 2.5.4
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Apply ruff format
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Address Copilot review on PR #14
- Strip dots from path-derived model tags. Otherwise a config like
english.v2.yaml would yield tag "english.v2", …
Runtime model switching, per-model voice caching, thread-safety fix (#12)
* test: add pytest harness for TTS server tests
* feat(config): add supported languages, aliases, cache dir
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(voice-cache): add per-model voice path resolution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(voice-cache): add stem listing and mtime staleness
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): track active model state with boot snapshot
Add _lock, _loading, _active, _boot_active to TTSService.__init__,
rewrite load_model to record active model state and snapshot boot config.
Change voice_cache type from dict to OrderedDict.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): wire per-model cache dir and voice resolution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): add reload_model with rollback-on-failure
Add TTSService.reload_model(language, quantize) with mutual-exclusion
guard (_loading flag), boot-source check, …
linting
teddybear082
6b0bf34
add proper opus support
teddybear082
3ab3c26
Openai compatible requires opus output as one of the formats which was not working before, create fixes through server and webui to support opus output
upgrade pocket-tts to 2.0.0
teddybear082
37f4354
-update to pocket-tts multilingual
-add parameters for server for language and quantize
-add .sh file for linux users
more linting
teddybear082
ec11370
linting fixes
teddybear082
d00ff23
Add text preprocessing
teddybear082
a05aaa6
-Add English text preprocessing to make audio more likely to be read correctly as TTS by model
-Enable command line and environment variables for text preprocessing
-Fix streaming and text preprocessing not disabling correctly via bat file options
Minor changes for pocket-tts==1.1.0 release
teddybear082
ac065ea
-switch from variant argument to config
-update requirements.txt
-update language in server and .exe bat files
-update help on server.py
rename voices, implement better UI to search voices (#4)
* rename voices, implement better UI to search voices
* add output format param to UI, clarify when streaming is (not) available
* fixes #2 docker: ensure non-root user owns /app dir to preventing permission errors
Fix response_format by disabling streaming for non-PCM/WAV (#3)
* Fix response_format by disabling streaming for non-PCM/WAV
Ensures response_format is honored by disabling streaming when a non-PCM/WAV format (e.g., MP3) is requested. Prevents STREAM_DEFAULT or stream: true from returning raw PCM with an MP3 Content-Type. Adds a warning log when streaming is requested for unsupported formats and falls back to a full file response.
* bump version
* remove duplicate line
Revert "initial attempt at supporting speed parameter"
teddybear082
d53a922
This reverts commit b76e9c89ada70a4c1233039dbc75286e992ef50a.
Revert "fix ruff linting stuff"
teddybear082
f7b1404
This reverts commit 3aba5784c9d768b1ae84f5fa133b93ed020b3835.