feat(ows-01): Multi-language transcription support#116
Open
maxkulish wants to merge 9 commits intoOpenWhispr:mainfrom
Open
feat(ows-01): Multi-language transcription support#116maxkulish wants to merge 9 commits intoOpenWhispr:mainfrom
maxkulish wants to merge 9 commits intoOpenWhispr:mainfrom
Conversation
- Add SELECTABLE_LANGUAGES, getLanguageName, isValidLanguageCode, MAX_RECOMMENDED_LANGUAGES to languages.ts - Create src/types/language.ts with LanguageDecision, LanguageContext, LanguageSettings interfaces - Add selectedLanguages and defaultLanguage to useSettings.ts - Add migration logic from old preferredLanguage to new multi-language format
- Update parseWhisperResult to extract detectedLanguage from multiple JSON locations - Extract detectedConfidence from language_probs when available - Add debug logging for language detection - Return language info in all result paths (success, failure, text-only)
- Add resolveLanguage, getLanguageSettings, normalizeLanguageCode helper functions - Implement Single Pass + Retry on Miss strategy in processWithLocalWhisper - Update processWithOpenAIAPI to use new language settings and verbose_json - Add languageContext parameter to processTranscription and processWithReasoningModel - Support single, multi, and auto language modes - Log language detection and decision info for debugging
- Add buildSystemPrompt method for language-aware system prompts - Update processText signature to accept LanguageContext - Update all provider methods (OpenAI, Anthropic, Local, Gemini, Groq) to use language context - Multi-language prompts include all candidate languages for semantic correction - Single-language prompts are simple and specific - Auto mode uses generic multilingual prompt
- Create MultiLanguageSelector with search, chips, and default language star - Display mode indicator (auto/single/multi) with descriptions - Add soft warning when >4 languages selected - Quick select buttons for common languages when empty - Update SettingsPage to use new selector with selectedLanguages/defaultLanguage - Fix TypeScript null checks in ReasoningService for IPC results
- Replace preferredLanguage with selectedLanguages/defaultLanguage - Update language selector to set both new settings on change - Keep onboarding simple (single language selection, more in settings) - Update completeOnboarding to persist new language settings
Implements comprehensive command system for managing OpenWhispr development workflow with design document creation, review, finalization, and implementation planning capabilities.
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.
Summary
Changes
Phase 1: Core Infrastructure
LanguageDecision,LanguageContext,LanguageSettingstypesSELECTABLE_LANGUAGES,getLanguageName,isValidLanguageCodeuseSettings.tswithselectedLanguagesanddefaultLanguagestatepreferredLanguageformatPhase 2: Whisper Integration
parseWhisperResultto extractdetectedLanguageanddetectedConfidencefrom multiple JSON locationsPhase 3: AudioManager Refactor
resolveLanguage,getLanguageSettings,normalizeLanguageCodehelpersprocessWithLocalWhisperprocessWithOpenAIAPIfor multi-language supportlanguageContextthrough transcription pipelinePhase 4: Reasoning Service
buildSystemPromptmethod for language-aware promptsPhase 5: UI Components
MultiLanguageSelectorcomponent with search, chips, default star indicatorSettingsPageto use new selectorPhase 6: Testing & Polish
OnboardingFlowto use new language systemTest plan
preferredLanguagemigrates correctly