A professional desktop application for AI-powered speech recognition and transcription, built with Tauri + React + Python Sidecar architecture.
- Global hotkey transcription with customizable key combinations
- Real-time audio processing and transcription
- Multi-model AI support (Whisper, Parakeet)
- SRT subtitle file generation
- Drag-and-drop file transcription
- Native macOS-style UI components
- Dark theme interface
- System tray integration
- Cross-platform desktop application
- Frontend: React 18 + TypeScript + Vite
- Desktop: Tauri v2 (Rust-based)
- Backend: Python FastAPI sidecar
- AI Models: ONNX Runtime with Whisper/Parakeet models
- UI Components: Custom macOS-native component library
- Node.js: Version 20.19+ or 22.12+ (current: 20.17.0 with warnings)
- Python: Version 3.8+ with pip
- Rust: Latest stable toolchain via rustup
- Git: For cloning and version control
- Windows: Windows 10/11 (x64)
- macOS: macOS 10.15+ (Intel/Apple Silicon)
- Linux: Ubuntu 18.04+ or equivalent
- Memory: 4GB RAM minimum, 8GB recommended
- Storage: 2GB free space for models and dependencies
git clone <repository-url>
cd asrpronpm installcd sidecar
pip install -r requirements.txt
cd ..# Windows/macOS/Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
# Or use the installer directly
# Windows: Download from https://win.rustup.rs/The application will automatically download required ONNX models on first run:
- Whisper-tiny (39MB)
- Whisper-base (74MB)
- Additional models available through UI
# Terminal 1: Start Python sidecar
cd sidecar
python main.py
# Terminal 2: Start Tauri development
npm run tauri dev# Frontend development
npm run dev # Start Vite dev server
npm run build # Build frontend for production
npm run preview # Preview production build
# Tauri desktop
npm run tauri dev # Start Tauri development mode
npm run tauri build # Build desktop applicationasrpro/
├── src/ # React frontend source
│ ├── components/ # React components
│ │ ├── macos/ # macOS-native UI components
│ │ └── ...
│ ├── pages/ # Application pages
│ └── ...
├── src-tauri/ # Tauri configuration and Rust code
├── sidecar/ # Python backend
│ ├── api/ # FastAPI server
│ ├── models/ # AI model management
│ ├── utils/ # Utilities
│ └── tests/ # Backend tests
└── dist/ # Built frontend assets
cd sidecar
python -m pytest
python -m pytest -v # Verbose output
python -m pytest tests/test_api.py # Specific test filenpm run test # Run frontend tests (if configured)
npm run type-check # TypeScript type checking# Remove all __pycache__ directories and .pyc files
python scripts/clean_python_cache.py
# Or manually with PowerShell (Windows)
Get-ChildItem -Path . -Name "__pycache__" -Recurse -Directory | Remove-Item -Recurse -Force- Start development servers
- Test global hotkey functionality
- Upload audio files for transcription
- Verify model switching
- Test system tray integration
# Build complete desktop application
npm run tauri buildOutput files:
- Windows:
src-tauri/target/release/bundle/nsis/asrpro_0.1.0_x64-setup.exe - Windows:
src-tauri/target/release/bundle/msi/asrpro_0.1.0_x64_en-US.msi - macOS:
src-tauri/target/release/bundle/macos/asrpro.app - Linux:
src-tauri/target/release/bundle/appimage/asrpro_0.1.0_amd64.AppImage
npm run build
# Output: dist/ directoryCreate .env files as needed:
# .env.local (frontend)
VITE_API_URL=http://localhost:8000
# sidecar/.env (backend)
MODEL_CACHE_DIR=./models
LOG_LEVEL=INFOModels are automatically managed through the UI. Manual configuration in sidecar/models/registry.py.
Node.js Version Warning
- Current version 20.17.0 works but upgrade to 20.19+ recommended
- Use nvm/volta for Node.js version management
Rust Installation
- Ensure
~/.cargo/binis in PATH - Restart terminal after installation
- Run
rustc --versionto verify
Python Dependencies
- Use virtual environment:
python -m venv venv && source venv/bin/activate - Install Microsoft Visual C++ Build Tools (Windows)
- Install system dependencies for audio processing
Build Failures
- Clear node_modules:
rm -rf node_modules && npm install - Clear Rust cache:
cargo cleanin src-tauri/ - Verify all prerequisites are installed
- Models download automatically but can be pre-cached
- First transcription may be slower due to model loading
- GPU acceleration available with compatible hardware
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Clean Python cache:
python scripts/clean_python_cache.py - Run tests:
npm run test && cd sidecar && python -m pytest - Commit changes:
git commit -m "Description" - Push and create pull request
- Python cache files (
__pycache__/,*.pyc) are automatically ignored - Run cleanup script before committing:
python scripts/clean_python_cache.py - Virtual environments (
.venv/,venv/) are ignored - Node modules and build artifacts are ignored
See LICENSE file for details.
Made by Suraj Mandal