π€ Modern Voice-to-Text Application with AI Integration
Fast Β· Offline Β· Intelligent Β· Cross-platform
EchoType All-in-One is a complete rewrite of the original EchoType project, featuring a modern Electron-based frontend and Python backend architecture. It provides real-time voice-to-text transcription with support for multiple AI models and integration with external AI services.
- π€ Real-time Voice Recognition: Instant speech-to-text with multiple model support
- π€ AI Integration: Direct integration with OpenClaw, ChatGPT, Claude, and more
- β‘ Quick Actions: Hotkey-triggered quick action window for instant AI interactions
- π Multilingual: Support for English and Chinese with i18n framework
- π Privacy-First: Completely offline processing with local AI models
- π¨ Modern UI: Clean, intuitive interface built with React and TypeScript
- Framework: Electron with React and TypeScript
- UI Library: React with Zustand for state management
- Styling: Custom CSS with modern design system
- Build Tool: Vite for fast development and building
- Framework: FastAPI with WebSocket support
- Models: Sherpa-ONNX (Paraformer) and Qwen3-ASR
- Audio Processing: Real-time audio streaming and processing
- API: RESTful API and WebSocket for real-time communication
- Node.js: v18 or higher
- Python: 3.9 or higher
- Operating System: Windows 10/11 or macOS 10.14+
-
Clone the repository
git clone https://github.com/ljyou001/echotype.git cd echotype/all-in-one -
Install backend dependencies
python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # macOS/Linux pip install -r requirements-backend.txt
-
Install frontend dependencies
cd frontend npm install -
Download AI models
- Models are stored in
models/directory - Paraformer (offline): ~200MB
- Qwen3-ASR (offline): ~1.2GB
- Models are stored in
Option 1: Using launcher (Recommended)
python launcher.pyOption 2: Manual start
Terminal 1 (Backend):
.venv\Scripts\activate
python -m backendTerminal 2 (Frontend):
cd frontend
npm run devcd frontend
npm run buildThe built application will be in frontend/dist-electron/.
- Quick Start Guide - Get started in 5 minutes
- Configuration Guide - Detailed settings explanation
- Hotkey Configuration - Customize your hotkeys
- Model Switching - Switch between AI models
- OpenClaw Integration - Connect with OpenClaw AI agent
- Quick Actions - Use quick action system
- Integrations System - Add custom integrations
- Backend Specification - Backend API and architecture
- Frontend Specification - Frontend architecture
- Model Architecture - AI model system
- Logging System - Debug and logging
- i18n Guide - Internationalization
- Packaging Guide - Build distributable packages
- Deployment Guide - Deploy to production
- Testing Procedures - Test the application
- Troubleshooting - Common issues and solutions
- Multiple Models: Sherpa-ONNX (Paraformer) and Qwen3-ASR support
- Real-time Processing: Instant transcription with low latency
- High Accuracy: Advanced AI models for accurate recognition
- Offline Support: Works completely offline with local models
- Hotkey Activation: Trigger with customizable hotkey (default: Ctrl+Shift+Space)
- AI Integrations: Send transcribed text to ChatGPT, Claude, OpenClaw, etc.
- Reply Display: View AI responses directly in quick action window
- Smart Positioning: Window appears near cursor with intelligent placement
- OpenClaw: AI agent with WebSocket and HTTP API support
- ChatGPT: Direct integration with OpenAI's ChatGPT
- Claude: Anthropic's Claude AI assistant
- Perplexity: AI-powered search engine
- Custom Integrations: Easy to add new integrations
- Modern Design: Clean, intuitive interface with smooth animations
- Dark Mode Ready: Prepared for dark mode support
- Responsive: Adapts to different screen sizes
- Accessible: Keyboard navigation and screen reader support
- System Tray: Runs in background with tray icon
- Auto-start: Optional startup on system boot
- Global Hotkeys: System-wide hotkey support
- Notifications: Desktop notifications for important events
all-in-one/
βββ backend/ # Python backend
β βββ common/ # Shared utilities
β βββ qwen3/ # Qwen3 model adapter
β βββ sherpa_adapter/ # Sherpa-ONNX adapter
β βββ app.py # FastAPI application
β βββ manager.py # Model manager
β βββ server.py # WebSocket server
βββ frontend/ # Electron frontend
β βββ electron/ # Electron main process
β βββ src/ # React application
β β βββ components/ # React components
β β βββ services/ # Business logic
β β βββ store/ # State management
β β βββ i18n/ # Internationalization
β βββ assets/ # Static assets
β βββ dist/ # Build output
βββ models/ # AI models
β βββ paraformer-offline/ # Paraformer model
β βββ Qwen3-ASR-0.6B/ # Qwen3 model
βββ design/ # Documentation
βββ test/ # Test files
βββ scripts/ # Utility scripts
Frontend:
- Electron 28+
- React 18
- TypeScript 5
- Vite 5
- Zustand (state management)
- i18next (internationalization)
Backend:
- Python 3.9+
- FastAPI
- WebSocket
- Sherpa-ONNX
- FunASR
- NumPy
- Make changes in
frontend/src/orbackend/ - Test locally using
npm run devorpython -m backend - Build using
npm run build - Test build by running the built application
- Commit with clear commit messages
- Frontend: ESLint + Prettier
- Backend: Black + isort
- Commits: Conventional Commits format
cd frontend
npm run dev # Development mode with hot reload.venv\Scripts\activate
python -m backend --host 127.0.0.1 --port 6016# Test OpenClaw integration
open test/test_openclaw_api.html
# Test WebSocket connection
open test/test_ws_simple.htmlcd frontend
npm run buildcd frontend
npm run build:win # Windows
npm run build:mac # macOSSee Packaging Guide for detailed instructions.
Backend won't start
- Check Python version (3.9+)
- Verify virtual environment is activated
- Install dependencies:
pip install -r requirements-backend.txt
Frontend won't build
- Check Node.js version (18+)
- Clear node_modules:
rm -rf node_modules && npm install - Clear cache:
npm run clean
Models not loading
- Verify models are in
models/directory - Check model paths in
backend/models_catalog.json - Ensure sufficient disk space
Hotkeys not working
- Check hotkey configuration in settings
- Verify no conflicts with other applications
- Try different hotkey combinations
See Troubleshooting Guide for more solutions.
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Sign the Contributor License Agreement (CLA) if you are a first-time contributor (see CONTRIBUTING.md)
- Submit a pull request
This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See the LICENSE file for details. Contributions are governed by the Contributor License Agreement (CLA).
- Original CapsWriter-Offline project
- Sherpa-ONNX for offline speech recognition
- FunASR for Paraformer model
- Qwen for Qwen3-ASR model
- OpenClaw for AI agent integration
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Design Docs
β If this project helps you, please give it a Star!
Made with β€οΈ by ljyou001