How adityaraj-r/echo-guard works
EchoGuard is a forensic audio platform for identifying synthetic or deepfake voice clips. Its primary workflow is dashboard upload or microphone capture, API analysis, audio normalization and visual feature generation, model inference, then a verdict with confidence, metadata and forensic visuals; detections can also be retained for history. The README also describes an asynchronous job-based gateway and worker architecture. The graph includes that distinct capability, but its runtime links to the main analysis pipeline are not established by the excerpts. Some frontend and service details are documented rather than sampled.
Main entry points: audio_pipeline.py Audio pipeline · main.py Job gateway · DashboardPage.jsx React dashboard · routes.py API routes
Components 23
Dashboard
- React dashboard
frontend/src/pages/DashboardPage.jsx - API client
frontend/src/services/api.js - Microphone capture
frontend/src/hooks/useRecorder.js
Analysis API
- API routes
backend/api/routes.py - Detection orchestration
backend/services/detection_service.py - Detection history
backend/services/detection_repository.py - MongoDB
backend/database/mongodb.py
Audio processing
- Audio pipeline
backend/preprocessing/audio_pipeline.py - Audio conversion
backend/utils/audio_conversion.py - Audio loading
backend/preprocessing/audio_io.py - Forensic visuals
backend/visualization/spectrogram.py - Waveform rendering
backend/visualization/waveform.py
Detection model
- Model inference
backend/ml/model_inference.py - CNN architecture
backend/ml/model_definition.py - Forensic features
backend/ml/features.py
Async jobs
- Job gateway
services/gateway/main.py - Job repository
services/shared/repository.py - Job database
services/shared/db.py - Redis job stream
- Job worker
services/worker/consumer.py - Worker audio processing
services/worker/audio_processing.py - Model service
services/model_service/main.py
Other components
- Analyst
Connections 22
- Analyst → React dashboard: uses
- React dashboard → Microphone capture: records audio
- React dashboard → API client: requests analysis
- API client → API routes: calls API
- API routes → Detection orchestration: analyzes audio
backend/api/routes.py - API routes → Detection history: stores and lists
backend/api/routes.py - Detection orchestration → Audio pipeline: processes audio
backend/services/detection_service.py - Detection orchestration → Model inference: classifies audio
backend/services/detection_service.py - Audio pipeline → Audio conversion: converts audio
backend/preprocessing/audio_pipeline.py - Audio pipeline → Forensic visuals: generates spectrogram
backend/preprocessing/audio_pipeline.py - Audio pipeline → Waveform rendering: generates waveform
backend/preprocessing/audio_pipeline.py - Forensic visuals → Audio loading: loads audio
backend/visualization/spectrogram.py - Waveform rendering → Audio loading: loads audio
backend/visualization/waveform.py - Model inference → CNN architecture: runs CNN
backend/ml/model_inference.py - Model inference → Forensic features: uses feature report
backend/ml/model_inference.py - Detection history → MongoDB: persists detections
backend/services/detection_repository.py - Job gateway → Job repository: records jobs
services/gateway/main.py - Job gateway → Redis job stream: queues jobs
services/gateway/main.py - Job repository → Job database: stores job state
services/shared/repository.py - Job worker → Worker audio processing: processes audio
services/worker/consumer.py - Job gateway → Job worker: dispatches jobs
- Job worker → Model service: requests inference