Commit graph

2 commits

Author SHA1 Message Date
Alessandro
ce48667e98 Add Paradee as the default voice in Local TTS
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Offer Paradee Heart alongside Kokoro voices in the existing bundled TTS
plugin. Default unconfigured settings to Paradee while preserving saved
Kokoro voices, blends, speed and activation choices. Switching engines
replaces the voice selection without a separate plugin or startup dialog.

Add lazy CPU ONNX synthesis with cached, pinned model assets and split
long input without dropping phonemes. Make status and preload follow the
selected engine, and present both engines through the Local TTS UI.

Prepare Paradee dependencies in hooks.py on plugin install/update,
enabled-plugin startup and re-enable. Reuse installed packages, preserve
browser fallback on setup failure and keep requirements.txt unchanged.
Update plugin documentation and regression coverage.

Validation: 44 focused tests passed in both host and Docker framework
runtimes. Live synthesis and voice-picker switching passed on localhost:32081.
git diff --check passed. Fresh-image builds and actual missing-package
installation were not tested.
2026-10-08 21:36:02 +02:00
Alessandro
675afa8dee Refactor speech stack into built-in Kokoro TTS and Whisper STT plugins
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Split the legacy core speech stack into two built-in, independently toggleable plugins: `_kokoro_tts` for TTS and `_whisper_stt` for STT.

This refactor keeps dependency installation and bootstrap concerns in Docker/bootstrap/preload, while moving speech-specific tooling, APIs, prompts, UI, and runtime behavior into the plugins. Core now exposes engine-agnostic `tts-service` and `stt-service` brokers, with browser-native TTS preserved as the fallback when Kokoro is disabled.

Included in this change:
- add built-in `_kokoro_tts` plugin with plugin-owned synth API, config, status UI, and provider registration
- add built-in `_whisper_stt` plugin with plugin-owned transcribe API, mic runtime, device UI, prompt injection, and provider registration
- remove legacy core speech APIs/helpers/settings/UI and delete unused `webui/js/speech_browser.js`
- replace the old hardcoded speech settings section with a generic voice surface backed by plugin extensions
- update preload/docs/tests to match the new plugin-owned speech architecture

Behavioral intent:
- both plugins are built-in but not `always_enabled`
- users can now hot-switch TTS and STT independently
- browser TTS remains available when `_kokoro_tts` is off
- Whisper mic UI only appears when `_whisper_stt` is enabled
2026-05-21 05:41:59 +02:00