English | 简体中文
EchoShield is a cross-platform desktop application designed to protect your voice privacy in real-time. By introducing controlled perturbations into microphone input, it effectively prevents automatic speech recognition (ASR) systems from understanding your conversations while maintaining natural human communication. 🚀
Modern devices and applications continuously listen for voice commands, raising serious privacy concerns. EchoShield addresses this by adding inaudible noise to your voice, making it incomprehensible to ASR systems while remaining perfectly understandable to humans sitting next to you.
Use Cases:
- Prevent smart assistants from eavesdropping on private conversations
- Protect sensitive information during video calls
- Block voice-activated malware and spyware
- Maintain privacy in open office environments
- 🎤 Real-time Audio Protection: Continuously capture and process microphone input with adversarial perturbations
- 👁️ Visual Waveform Display: See both original and protected audio waveforms in real-time
- 🔊 Normal Communication: Protected audio remains understandable to nearby humans
- 🎚️ Adjustable Perturbation Intensity: Control the strength of protection (0.0 - 1.0)
- 📁 Audio Recording: Save protected audio sessions for later review
- 🔄 A/B Comparison: Compare original vs. protected audio side-by-side
▶️ Playback Controls: Play/pause/stop protected audio output- 📋 Recording History: Browse and manage past recordings
- 🗣️ Speech-to-Text: Automatic transcription of audio (requires iFlytek API)
- 📊 Dual Transcription: Compare transcriptions of original vs. protected audio
- 🌍 Multi-language Support: Chinese, English, Japanese, French, German, Spanish, Arabic
- 📥 Remote Sync: Download latest perturbation vectors from GitHub
- 📤 Manual Upload: Import custom perturbation files (.ar format)
- 🔐 Local Storage: Perturbation files stored securely in user data directory
- 🔑 User Registration/Login: Secure local account system
- 👤 Per-user Storage: Each user has isolated audio files and settings
- Node.js v14 or higher
- Rust (for Tauri development)
- pnpm - Fast package manager
- A working microphone
- A virtual audio cable (e.g., "Virtual Audio Cable") for audio routing
-
Clone the repository:
git clone https://github.com/Bastandern/EchoShield.git cd EchoShield -
Install dependencies:
pnpm install
-
Run in development mode:
pnpm tauri dev
-
Build for production:
pnpm tauri build
- Register/Login: Create a local account on first launch
- Sync Perturbation: Go to "Async" to download the latest perturbation library
- Start Protection: Click "Start" to begin real-time audio protection
- Toggle Audio: Click play button to enable/disable protected audio output
┌─────────────────────────────────────────────────────────────┐
│ EchoShield App │
├─────────────────────────────────────────────────────────────┤
│ Frontend (Vue.js) │
│ ├── HomeView - Main dashboard │
│ ├── ProtectView - Real-time protection & waveforms │
│ ├── ListView - Recording history & ASR comparison │
│ ├── ConfigView - API configuration │
│ └── AsyncView - Perturbation sync │
├─────────────────────────────────────────────────────────────┤
│ Backend (Rust + Tauri) │
│ ├── Audio Capture - Microphone input (CPAL) │
│ ├── Audio Processing - Add perturbations │
│ ├── Audio Output - Virtual audio device output │
│ └── Database - SQLite for user & file management │
└─────────────────────────────────────────────────────────────┘
To enable speech-to-text transcription:
- Register at iFlytek Open Platform
- Create an "Intelligent Speech Recognition" application
- Get your
AppID,API Key, andAPI Secret - Enter credentials in Settings → Config
For best results with protected audio output:
- Install "Virtual Audio Cable" or similar software
- Set Virtual Audio Cable as your output device
- Configure your communication app to use Virtual Audio Cable as input
Audio files are stored in:
- Windows:
%APPDATA%\top.echoshield\ - macOS:
~/Library/Application Support/top.echoshield/ - Linux:
~/.local/share/top.echoshield/
Files include:
echoshield.db- User databaseuap/uap.ar- Perturbation librarywaves/*.wav- Recorded audio fileswaves/*.txt- Transcription results
- Tauri - Cross-platform desktop framework
- Vue.js 3 - Progressive frontend framework
- Rust - High-performance backend
- CPAL - Cross-platform audio I/O
- SQLite - Lightweight database
- WaveSurfer.js - Audio visualization
This project is licensed under the GNU General Public License v3.0.
- Email: 624772990@qq.com
- GitHub Issues: Open an issue


