{"id":46114827,"url":"https://github.com/palaashatri/jvosk","last_synced_at":"2026-03-01T23:08:51.366Z","repository":{"id":336024591,"uuid":"1147874941","full_name":"palaashatri/jvosk","owner":"palaashatri","description":"Audio transcription using Vosk. Built with Swing.","archived":false,"fork":false,"pushed_at":"2026-02-02T21:11:06.000Z","size":40318,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-03T00:33:13.611Z","etag":null,"topics":["gui","java","speech-recognition","speech-to-text","swing","transcription","vosk"],"latest_commit_sha":null,"homepage":"https://palaashatri.github.io/jvosk/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palaashatri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-02T10:04:48.000Z","updated_at":"2026-02-02T15:10:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/palaashatri/jvosk","commit_stats":null,"previous_names":["palaashatri/jvosk"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/palaashatri/jvosk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fjvosk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fjvosk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fjvosk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fjvosk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palaashatri","download_url":"https://codeload.github.com/palaashatri/jvosk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fjvosk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29987656,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T22:42:38.399Z","status":"ssl_error","status_checked_at":"2026-03-01T22:41:51.863Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","java","speech-recognition","speech-to-text","swing","transcription","vosk"],"created_at":"2026-03-01T23:08:50.478Z","updated_at":"2026-03-01T23:08:51.345Z","avatar_url":"https://github.com/palaashatri.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jvosk\n\nModern desktop application for speech-to-text transcription using Vosk offline speech recognition.\n\nBuilt with Java Swing and FlatLaf for a polished, cross-platform UI with **multi-model support**.\n\n\n[Download 0.1.0-SNAPSHOT](https://github.com/palaashatri/jvosk/releases/download/0.1.0-SNAPSHOT/jvosk-0.1.0-SNAPSHOT.jar)\n\n\u003e**Made for macOS 🍎** \u003cimg width=\"2048\" height=\"1176\" alt=\"image\" src=\"https://github.com/user-attachments/assets/88412cbd-9350-4f34-9c9f-cf094977413b\" /\u003e\n\n\u003e **Looks decent on Windows too :) 🪟** \u003cimg width=\"1011\" height=\"752\" alt=\"image\" src=\"https://github.com/user-attachments/assets/da864c87-780a-4323-baec-e579c075b259\" /\u003e\n\n\n## Features\n\n### Model Management\n- **Multi-Model Support**: Download and manage multiple Vosk models\n- **Automatic Updates**: Check for model updates at startup\n- **150+ Models Available**: All models from [alphacephei.com/vosk/models](https://alphacephei.com/vosk/models)\n- **Easy Switching**: Switch between models on the fly\n- **Smart Downloads**: \n  - Small models (\u003c 500MB) for quick downloads\n  - Big models (\u003e 500MB) with download confirmation\n  - Progress tracking for all downloads\n- **40+ Languages**: English, Chinese, Russian, French, German, Spanish, and many more\n- **Model Manager UI**: \n  - View all available models with details (size, language, accuracy)\n  - Download new models with progress bar\n  - Delete unused models\n  - Check for updates\n  - Filter by installed/available status\n\n### Audio Support\n- **Multiple Formats**: WAV, MP3, M4A, FLAC, OGG, AAC, WMA, OPUS\n- **Automatic Conversion**: Built-in audio conversion (no ffmpeg required!)\n- **Drag \u0026 Drop**: Simply drag audio files into the app\n- **File Browser**: Standard file picker with format filtering\n\n### Transcription\n- **Offline Processing**: No internet required, privacy-first\n- **Real-time Progress**: Visual feedback during transcription\n- **Accurate Results**: Powered by Vosk speech recognition\n- **Optional Timestamps**: Add `[HH:MM:SS]` timestamps to each segment\n\n### Export Options\n- **Plain Text** (.txt)\n- **Subtitle Formats** (SRT, VTT)\n- **Structured Data** (JSON)\n- **Markdown** (.md)\n\n### User Interface\n- **Modern Design**: Clean, professional interface with FlatLaf\n- **Dark Mode**: System-aware dark/light theme toggle\n- **Keyboard Shortcuts**: Streamlined workflow\n  - `Cmd/Ctrl+O` - Open file\n  - `Cmd/Ctrl+S` - Save transcript\n  - `Cmd/Ctrl+N` - Clear/New\n  - `Cmd/Ctrl+Shift+C` - Copy to clipboard\n  - `Cmd/Ctrl+Shift+M` - Manage models\n  - `Cmd/Ctrl+±` - Adjust font size\n- **Statistics**: Word count, character count, WPM\n- **Recent Files**: Quick access to previously transcribed files\n- **Audio Info**: Display duration, format, sample rate\n- **Progress Tracking**: Real-time transcription progress\n\n### Quality of Life\n- **Copy to Clipboard**: One-click copy of transcription\n- **Cancel Anytime**: Stop long transcriptions mid-process\n- **Unsaved Changes Warning**: Never lose work accidentally\n- **Persistent Preferences**: Remembers your settings and selected model\n- **Adjustable Font**: Customize text size for comfort\n\n## Quick Start\n\n### Requirements\n- Java 17 or higher\n- Maven 3.6+\n- No additional dependencies needed!\n\n### Build \u0026 Run\n\n```bash\n# Clone the repository\ngit clone https://github.com/palaashatri/jvosk.git\ncd jvosk\n\n# Build the project\nmvn clean package\n\n# Run the application\nmvn exec:java -Dexec.mainClass=atri.palaash.jvosk.App\n```\n\n### First Use\n\n1. Launch the app\n2. Open **Models → Manage Models...** (`Cmd/Ctrl+Shift+M`)\n3. Download a model for your language:\n   - For English: `vosk-model-small-en-us-0.15` (40MB) or `vosk-model-en-us-0.22` (1.8GB)\n   - For other languages, browse the available models\n4. Click \"Download Model\" and wait for completion\n5. Select the downloaded model and click \"Use This Model\"\n6. Click \"Browse Files...\" or drag \u0026 drop an audio file\n7. Wait for transcription to complete\n8. Save or copy your transcript!\n\n## Model Management\n\n### Accessing Model Manager\n\n- **Menu**: Models → Manage Models...\n- **Keyboard**: `Cmd/Ctrl+Shift+M`\n\n### Available Models\n\nThe app provides access to 150+ models from the official Vosk repository:\n\n**Popular Languages:**\n- **English**: 10+ models (US, Indian accents)\n- **Chinese**: 3 models\n- **Russian**: 4 models\n- **French**: 3 models\n- **German**: 4 models\n- **Spanish**: 2 models\n- **Japanese**: 2 models\n- **And 40+ more languages!**\n\n**Model Types:**\n- **Small Models** (\u003c 100MB): Fast, good for mobile/desktop, lightweight\n- **Big Models** (\u003e 500MB): Higher accuracy, server-grade\n- **Punctuation Models**: Add punctuation and capitalization\n- **Speaker ID Models**: Identify different speakers\n\n### Downloading Models\n\n1. Open Model Manager\n2. Browse available models in the table\n3. Select a model\n4. Click \"Download Model\"\n5. Wait for download and extraction (progress shown)\n6. Model is automatically installed and ready to use\n\n**Note:** Large models will show a confirmation dialog before downloading.\n\n### Switching Models\n\n**Quick Switch:**\n1. Menu: Models → Switch Model...\n2. Select from installed models\n3. Confirm selection\n\n**Or via Model Manager:**\n1. Open Model Manager\n2. Select an installed model\n3. Click \"Use This Model\"\n\n### Automatic Updates\n\n- On startup, the app checks for model updates\n- If updates are available, you'll see a notification\n- Updates can be downloaded through the Model Manager\n- Models are never auto-updated without your confirmation\n\n### Deleting Models\n\n1. Open Model Manager\n2. Select an installed model\n3. Click \"Delete Model\"\n4. Confirm deletion\n\n## Technical Details\n\n### Architecture\n\n**New Components:**\n- `VoskModel`: Data class for model metadata\n- `ModelRegistry`: Parses Vosk models page and fetches model information\n- `ModelManager`: Handles downloading, installing, version checking, and loading models\n- `ModelManagerDialog`: UI for managing models\n- Enhanced `VoskTranscriber`: Supports switching between models\n- Updated `App`: Checks for model updates on startup\n\n**Model Storage:**\n- All models stored in `models/` directory\n- Each model in its own subdirectory\n- Models are standard Vosk format (can be used with other Vosk tools)\n\n### Dependencies\n\n```xml\n\u003cdependencies\u003e\n    \u003c!-- Core speech recognition --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.alphacephei\u003c/groupId\u003e\n        \u003cartifactId\u003evosk\u003c/artifactId\u003e\n        \u003cversion\u003e0.3.38\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- UI framework --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.formdev\u003c/groupId\u003e\n        \u003cartifactId\u003eflatlaf\u003c/artifactId\u003e\n        \u003cversion\u003e3.4.1\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- Audio conversion --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ews.schild\u003c/groupId\u003e\n        \u003cartifactId\u003ejave-all-deps\u003c/artifactId\u003e\n        \u003cversion\u003e3.5.0\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- Web scraping for model registry --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.jsoup\u003c/groupId\u003e\n        \u003cartifactId\u003ejsoup\u003c/artifactId\u003e\n        \u003cversion\u003e1.17.2\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- JSON processing --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.fasterxml.jackson.core\u003c/groupId\u003e\n        \u003cartifactId\u003ejackson-databind\u003c/artifactId\u003e\n        \u003cversion\u003e2.17.1\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n3. Wait for transcription to complete\n4. Copy, save, or export your transcript\n\n## Technology Stack\n\n- **Speech Recognition**: [Vosk](https://alphacephei.com/vosk/)\n- **Audio Processing**: [JAVE2](https://github.com/a-schild/jave2) (FFmpeg wrapper)\n- **UI Framework**: Java Swing with [FlatLaf](https://www.formdev.com/flatlaf/)\n- **Build Tool**: Maven\n\n## License\n\nMIT\n\n## Contributing\n\nContributions welcome! Please open an issue or submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalaashatri%2Fjvosk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalaashatri%2Fjvosk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalaashatri%2Fjvosk/lists"}