Make Parakeet the new default STT provider#385
Merged
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Migrates existing users from FasterWhisper to Parakeet as default STT provider and removes the redundant enable flags from both providers. Updates templates for new installations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create ModelDownloader and SttProviderManager in __init__() - Refactor startup() with settings-aware progress: hardware detection, STT init, voice activation, TTS, Local AI download, HUD server - Pass cuda_available to local AI download - Update test_parakeet() to check stt_provider enum instead of enable flag - Fix async on_status callbacks in SttProviderManager (await properly) - Clean up unused imports Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… toggling - Add stt_provider_manager to SettingsService.initialize() - Replace mutual-exclusion enable logic with SttProviderManager.switch_provider() - Detect settings changes within same provider and trigger reload - Add save_settings_to_disk() helper for persisting without provider updates - Remove old FasterWhisper/Parakeet update_settings blocks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The cascade updated defaults and disk files, but running wingmen still had the old stt_provider in their in-memory config, causing transcription to route to the unloaded provider. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Wingman AI Core to make NVIDIA Parakeet the default speech-to-text (STT) provider and introduces a unified STT lifecycle + model management flow, including a 3.1.0 → 3.1.1 migration.
Changes:
- Switch default STT provider to Parakeet in templates and add a 3.1.0 → 3.1.1 migration.
- Introduce
SttProviderManager+ModelDownloaderto manage STT model download/load/unload and reduce reinitialization issues when switching engines. - Refactor Parakeet/FasterWhisper providers and update settings schema by removing
enableflags.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| wingman_core.py | Wires in unified model downloader + STT provider lifecycle initialization during startup. |
| services/stt_provider_manager.py | New manager that handles provider initialization, switching, and health checks. |
| services/model_downloader.py | New unified download helper for HuggingFace snapshots / direct file downloads. |
| services/settings_service.py | Routes STT provider switching through SttProviderManager and cascades provider changes. |
| providers/parakeet.py | Refactors Parakeet to explicit load()/unload() lifecycle and CoreML exclusion handling. |
| providers/faster_whisper.py | Refactors FasterWhisper to explicit load(model_dir)/unload() lifecycle. |
| services/file.py | Adds get_models_dir() unified models directory helper. |
| services/local_model_manager.py | Moves local AI models under unified models/ directory (models/local-ai). |
| services/migrations/migration_310_to_311.py | New migration to update defaults and remove deprecated enable flags. |
| templates/configs/settings.yaml | Changes default voice_activation.stt_provider to parakeet and removes enable flags. |
| templates/configs/defaults.yaml | Changes default features stt_provider to parakeet. |
| templates/migration/3_1_1/configs/* | New migration templates for 3.1.1 settings/defaults. |
| api/interface.py | Removes enable fields from STT settings models. |
| services/system_manager.py | Bumps LOCAL_VERSION to 3.1.1. |
| docs/parakeet-issues.md | Adds troubleshooting/known-issues notes for Parakeet. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Use public is_cuda_available() instead of private _detect_gpu() - Apply settings before switch_provider to prevent stale state reads - Remove dead on_progress param and polling loop from HF downloads - Add ImportError handling for huggingface_hub lazy import - Tighten on_status callback type signature Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked Issue
mention #377
Summary
Made parakeet the new default STT provider, including migrations. Fixes model reinitialization on engine switch