Skip to content

An intelligent voice input tool, enabling you to quickly convert speech to text input.

License

Notifications You must be signed in to change notification settings

ljyou001/echotype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EchoType All-in-One

🎀 Modern Voice-to-Text Application with AI Integration

Fast Β· Offline Β· Intelligent Β· Cross-platform

πŸ“₯ Download Β· οΏ½ Documentation Β· πŸ›  Development


πŸ“– Overview

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.

Key Features

  • 🎀 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

πŸ— Architecture

Frontend (Electron + React)

  • 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

Backend (Python)

  • 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

πŸš€ Quick Start

Prerequisites

  • Node.js: v18 or higher
  • Python: 3.9 or higher
  • Operating System: Windows 10/11 or macOS 10.14+

Installation

  1. Clone the repository

    git clone https://github.com/ljyou001/echotype.git
    cd echotype/all-in-one
  2. Install backend dependencies

    python -m venv .venv
    .venv\Scripts\activate  # Windows
    # source .venv/bin/activate  # macOS/Linux
    pip install -r requirements-backend.txt
  3. Install frontend dependencies

    cd frontend
    npm install
  4. Download AI models

    • Models are stored in models/ directory
    • Paraformer (offline): ~200MB
    • Qwen3-ASR (offline): ~1.2GB

Running in Development

Option 1: Using launcher (Recommended)

python launcher.py

Option 2: Manual start

Terminal 1 (Backend):

.venv\Scripts\activate
python -m backend

Terminal 2 (Frontend):

cd frontend
npm run dev

Building for Production

cd frontend
npm run build

The built application will be in frontend/dist-electron/.

πŸ“š Documentation

User Guides

Integration Guides

Technical Documentation

Development Guides

🎯 Features

Voice Recognition

  • 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

Quick Actions

  • 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

Integrations

  • 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

User Interface

  • 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 Integration

  • 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

πŸ›  Development

Project Structure

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

Technology Stack

Frontend:

  • Electron 28+
  • React 18
  • TypeScript 5
  • Vite 5
  • Zustand (state management)
  • i18next (internationalization)

Backend:

  • Python 3.9+
  • FastAPI
  • WebSocket
  • Sherpa-ONNX
  • FunASR
  • NumPy

Development Workflow

  1. Make changes in frontend/src/ or backend/
  2. Test locally using npm run dev or python -m backend
  3. Build using npm run build
  4. Test build by running the built application
  5. Commit with clear commit messages

Code Style

  • Frontend: ESLint + Prettier
  • Backend: Black + isort
  • Commits: Conventional Commits format

πŸ§ͺ Testing

Frontend Testing

cd frontend
npm run dev  # Development mode with hot reload

Backend Testing

.venv\Scripts\activate
python -m backend --host 127.0.0.1 --port 6016

Integration Testing

# Test OpenClaw integration
open test/test_openclaw_api.html

# Test WebSocket connection
open test/test_ws_simple.html

πŸ“¦ Building & Packaging

Build Frontend

cd frontend
npm run build

Package Application

cd frontend
npm run build:win  # Windows
npm run build:mac  # macOS

See Packaging Guide for detailed instructions.

πŸ› Troubleshooting

Common Issues

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.

🀝 Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Sign the Contributor License Agreement (CLA) if you are a first-time contributor (see CONTRIBUTING.md)
  6. Submit a pull request

πŸ“„ License

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).

πŸ™ Acknowledgments

πŸ“ž Support


⭐ If this project helps you, please give it a Star!

Made with ❀️ by ljyou001