Connect anonymously. Speak freely. Listen respectfully.
WaveTone is a cutting-edge, privacy-first anonymous voice room platform designed for focused, real-time peer-to-peer discussions. Built with low-latency WebRTC and a multi-layered hybrid AI moderation engine, WaveTone ensures safe conversations without compromising user privacy.
WaveTone is engineered from the ground up to offer a premium, secure, and private voice discussion experience:
- Zero-Trust Ephemerality (No Accounts & No Recordings)
- No registration, email, or passwords required.
- Audio is streamed peer-to-peer and processed in-memory. Zero audio files and zero session transcripts are ever stored on any database or server.
- Hybrid Client-Server AI Moderation
- On-Device TF.js Classifier: Detects toxic language inside the user's browser before it leaves their machine.
- Multilingual Whisper Speech-to-Text: Converts real-time stream chunks into text in the background.
- Groq LLM Verification: Leverages Llama models to review flagged content with a validation loop, protecting against false positives and restoring speech context.
- Sub-Second Audio Muting (Profanity Gate)
- A custom
AudioWorkletprocessor implements a ring-buffer gate to retroactively mute offending utterances within milliseconds of detection.
- A custom
- Resilient Host Promotion & Sub-Hosts Hierarchy
- Hosts can designate multiple Sub-Hosts with ranked hierarchies. If the Host goes offline, a ranked Sub-Host is automatically promoted to Host after a 5-minute grace period to prevent room collapse.
- State-of-the-Art Premium UX/UI
- Glassmorphism & Backdrop Blurs: Vibrant glassmorphic card layouts over custom ambient video backgrounds.
- Glowing Lamp Beam Effects: Cascading dynamic glow indicators on cards representing room portals.
- Skeleton Loader Shimmers: Smooth shimmer animations for components waiting for server data.
- Active Speaker Indicators: Real-time pulsing soundwave animations for participants who are speaking.
WaveTone is packed with features designed to make voice rooms collaborative, manageable, and highly interactive:
- Customizable Ephemeral Rooms
- Custom Settings: Set room topics, categories, and participant limits (up to 10 users) on creation.
- Language Specific Context: Select room languages (English, Spanish, French, German, Hindi, Portuguese) to customize transcription and dictionary filters.
- Private/Public Visibility: Toggle rooms between public (visible on the Browse page) and private (accessible only via a direct URL link).
- Real-Time Collaborative Moderation
- Democratic Vote-Kick: Participants can start a vote to kick disruptive users, requiring a simple majority to remove them.
- Host Kick & Ban: Hosts can kick users directly and ban their IP addresses from rejoining the room.
- Dynamic Warnings & Auto-Kicks: Sends automated toast notifications to users when profanity is detected. Users are automatically kicked after 3 warnings.
- Post-Session Summary Dashboard
- Ephemerality Safe Summaries: After a room ends, view a dashboard showing session duration, participant count, and participant lists using random aliases.
- Groq AI Summarization: Automatically processes text transcripts via Groq Llama models to generate a clean, 2-4 sentence summary of what was discussed (safely stripped of any personal identifiers). Includes a local NLP-based fallback generator if the AI API is unreachable.
- Interactive Moderation Sandbox & Admin Queue
- Interactive Sandbox (About Page): Test text snippets or upload audio files (e.g. WAV, MP3) to see real-time transcription, latency, dictionary matching, and TF.js classifier breakdown scores.
- Admin Review Queue: Live review panel showing recent flagged utterances where administrators can confirm swears or mark false positives to refine filter parameters.
- React.js, Vite, Framer Motion
- Web Audio API, Web Speech API (SpeechRecognition fallback)
- CSS3 variables with glassmorphism, shimmers, and lamp filters
- Node.js, Express.js, Socket.io
- MongoDB Atlas, Mongoose
- Groq SDK, WebRTC
CodeBase/
βββ client/ # React frontend
β βββ index.html # Entry HTML
β βββ vite.config.js # Vite config
β βββ public/ # Static assets (including profanity-worklet.js)
β βββ src/ # Source code
β βββ App.jsx # Root component
β βββ pages/ # React pages (BrowseRooms, VoiceRoom, About, etc.)
β βββ audio/ # Audio pipeline (AudioPipeline.js, profanity lists)
β βββ services/ # API and Socket helpers
βββ server/ # Node backend
β βββ index.js # Entry point
β βββ src/ # Source code
β βββ controllers/ # API controllers (Room details, AI summaries)
β βββ routes/ # API routes (Moderation, rooms, summaries)
β βββ models/ # Database models (Room, FlaggedContent)
β βββ utils/ # Utility functions (Whisper, profanity lists)
βββ Z+ Improvements/ # Backlog & Offline Mode Documentation
- Node.js v18+
- MongoDB Atlas account
- Groq API Key
# Clone the repository
git clone https://github.com/suneetchugh-dev/WaveTone_Mini-Project_Sem-4.git
cd WaveTone_Mini-Project_Sem-4/CodeBase
# Install frontend dependencies
cd client && npm install
# Install backend dependencies
cd ../server && npm installCreate a .env file in the CodeBase/server/ directory:
MONGO_URI=your_mongodb_connection_string
GROQ_API_KEY=your_groq_api_key
PORT=5000# Start backend (from CodeBase/server)
npm run dev
# Start frontend (from CodeBase/client in a separate terminal)
npm run devThe project includes pre-configured Docker environments. Place the docker-compose files at the root of the repository.
docker compose up --builddocker compose -f docker-compose.dev.yml up --buildNote
Client Nginx configuration (nginx.conf) is excluded from .dockerignore to ensure production builds compile successfully. Heavy assets, binaries, and local developer caches (bin/, models/, temp/) are ignored in CodeBase/server/.dockerignore to minimize production image footprint.
WaveTone includes a terminal-native test validation suite to verify the profanity filter's regex rules, word-masking algorithms, and multilingual checks.
To run the automated validation test suite:
cd CodeBase/server
npm run test:profanity- Classification: Validates standard swearing, leet-speak (e.g.
f*ck,sh1t), spaced characters (e.g.s h i t), and multilingual profanity (French, Spanish, German, Hindi). - Masking: Confirms correct word obscuring (e.g.,
shitβs***). - Extraction: Verifies words are correctly isolated from sentences.
- Performance Latency: Runs 1,000 checks in a loop and prints average processing latency in microseconds to guarantee WebRTC real-time safety suitability.
- Granular Mic Diagnostics: Detects and displays clear user instructions for browser microphone blocks (
NotAllowedError), missing devices (NotFoundError), or microphone conflicts (NotReadableError). - Mongoose Validations: Room creation errors now extract exact field-validation issues (e.g., missing topic) instead of generic crashes.
- Malformed IDs: Checks malformed mongo IDs (
CastError) and returns400 Invalid ID formatto prevent 500 crashes. - Secure Routing Fallbacks: Socket and navigation failures cleanly redirect back to
/browsewith context-toast error payloads, rather than hijacking URLs.
- Profanity Verification CLI: Automated regression test utility detailing classification accuracy, precision, recall, and F1-score.
- Event-Driven Sync: Browse page participant counts update in real-time using Socket.io instead of server-heavy polling.
- Failover Promotions: Support for multiple Sub-Hosts with ranked promotions if the Host drops off.
WaveTone: Connect anonymously. Speak freely. Listen respectfully.