Commit d30fba1
committed
Refactor speech stack into built-in Kokoro TTS and Whisper STT plugins
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 enabled1 parent 16deb6a commit d30fba1
59 files changed
Lines changed: 3084 additions & 2086 deletions
File tree
- api
- docs
- guides
- setup
- helpers
- plugins
- _browser_agent/extensions/webui/get_message_handler
- _kokoro_tts
- api
- extensions/webui
- page-head
- voice-settings-main
- helpers
- webui
- _whisper_stt
- api
- extensions
- python/system_prompt
- webui
- chat-input-box-end
- page-head
- voice-settings-main
- helpers
- prompts
- webui
- tests
- webui
- components
- chat
- input
- speech
- settings
- agent
- speech
- sidebar/bottom/preferences
- css
- js
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
147 | 150 | | |
148 | 151 | | |
149 | 152 | | |
| |||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
748 | 748 | | |
749 | 749 | | |
750 | 750 | | |
751 | | - | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
752 | 758 | | |
753 | 759 | | |
754 | 760 | | |
755 | 761 | | |
756 | | - | |
| 762 | + | |
| 763 | + | |
757 | 764 | | |
758 | 765 | | |
759 | 766 | | |
760 | 767 | | |
761 | 768 | | |
762 | 769 | | |
763 | 770 | | |
764 | | - | |
| 771 | + | |
765 | 772 | | |
766 | 773 | | |
767 | 774 | | |
| |||
771 | 778 | | |
772 | 779 | | |
773 | 780 | | |
774 | | - | |
| 781 | + | |
775 | 782 | | |
776 | 783 | | |
| 784 | + | |
777 | 785 | | |
778 | 786 | | |
779 | | - | |
780 | | - | |
781 | | - | |
782 | | - | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
783 | 791 | | |
784 | 792 | | |
785 | 793 | | |
786 | | - | |
| 794 | + | |
787 | 795 | | |
788 | 796 | | |
789 | 797 | | |
| |||
795 | 803 | | |
796 | 804 | | |
797 | 805 | | |
798 | | - | |
799 | | - | |
800 | | - | |
| 806 | + | |
| 807 | + | |
801 | 808 | | |
802 | 809 | | |
803 | 810 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
358 | | - | |
| 358 | + | |
359 | 359 | | |
360 | | - | |
361 | | - | |
362 | | - | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
363 | 365 | | |
364 | 366 | | |
365 | 367 | | |
| |||
This file was deleted.
0 commit comments