Skip to content

About

🔒 Private by design: your call never leaves your device and is never recorded. Nazar (नज़र) warns you during a 'digital arrest' scam call, before any money is asked for. Hindi · English · Punjabi.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Nazar — stop the scam before the money moves

Privacy first: your call stays on your device. Never leaves your device, never recorded, forgotten in 30 seconds, family gets the warning not the words. Checked by automated privacy tests.

Live demo Tests MIT license

Privacy: on-device, nothing recorded Privacy tests

Languages Speech Scams caught

Nazar (नज़र, "watchful eye") listens to a phone call on speaker and warns you, in your language, the moment it turns into a "digital arrest" scam — before any money is asked for.

Demo: a digital-arrest scam call builds up line by line; Nazar raises the alarm at line 3, before money is asked for
▶️ Watch the 60-second demo video (with sound)
Sample call S1: the risk rises with each line and the alarm fires at line 3, before the caller asks for money.

हिन्दी · Privacy · Problem · How it works · Results · Privacy · Quick start · Team


JavaScript Python FastAPI OpenAI Whisper NVIDIA CUDA Vercel GitHub Actions PWA

🔒 Your privacy comes first

Nazar listens to phone calls, so privacy is the rule everything is built around:

  • 🎙️ Your call never leaves your device. Speech is turned into text on your own laptop; the speech server cannot even be reached from the network.
  • 💾 Nothing is recorded or saved. No audio files, no transcripts. Each sentence is discarded once it has been checked.
  • ⏱️ Nazar forgets as it goes. After 30 seconds only scam warning words are kept; pressing Stop wipes everything.
  • 👨‍👩‍👧 Your family is told that it is a scam, never what was said.
  • 🚫 No account, no ads, no tracking.
  • ✅ Tested, not just promised: privacy tests run on every change and fail if any of this is broken.

Full details, including the one exception (the website's optional cloud speech, used only if you choose it): PRIVACY.md

🚨 The problem

In a "digital arrest" scam, a caller poses as CBI, police, customs or a court, says you are part of a crime, keeps you "under arrest" on a video call so you can't talk to anyone, and makes you transfer your savings to a "safe account". Victims, often older people, lose crores every year, and by the time family finds out the money is gone.

Every one of these calls follows the same script. Nazar recognises the script while it is happening.

🖼️ Screenshots

Scam detected Dark mode
Nazar flags a digital-arrest scam call Dark mode

⚙️ How it works

How it works: call on speaker, browser mic, Whisper on this laptop, detector; all inside a box marked stays on your device. If risk reaches 70, a full-screen spoken warning and a family alert with risk and steps only.

Every digital-arrest call moves through five steps. Nazar scores each one as the call goes on:

Step What the caller does Example cues (Hindi · English · Punjabi)
1 Authority Claims to be CBI, police, customs, court, bank सीबीआई, inspector, ਪੁਲਿਸ
2 Fear A case, arrest warrant, drugs, money laundering अरेस्ट वारंट, drugs parcel, ਨਸ਼ਾ
3 Isolation Don't tell anyone, stay on video, don't hang up किसी को मत बताना, stay on the call, ਕਿਸੇ ਨੂੰ ਨਾ ਦੱਸਿਓ
4 Control Asks for OTP, Aadhaar, card, account details ओटीपी, card number, ਆਧਾਰ ਨੰਬਰ
5 Transfer Move money to a "safe" or verification account सेफ अकाउंट, RBI escrow, ਸੇਫ ਖਾਤਾ

Steps closer to the money count more, the scam's usual order adds a bonus, and the alarm fires at 70/100. Smart rules keep genuine calls quiet:

  • 🗣️ Aimed at you? Threats count only once the caller addresses the listener (you, आप, tusi, ਤੁਸੀਂ). A news report about a scam stays calm.
  • 🛡️ Scam awareness: a bank warning about scams, or anyone mentioning the 1930 helpline, gets a caution at most. "This is not a scam" does not count: scammers say it too.
  • 🔤 One word list for every script: Gurmukhi and Devanagari are folded together, along with spelling variants and words Whisper mishears (ग्रग → drugs, वोरेंट → warrant).

Details: scoring · architecture

📊 Results

Results: 54/54 scam calls caught before money was asked, 57/58 genuine calls stay quiet, 0.7 seconds per sentence, 3 languages

Details of each test
Test Result
Digital-arrest scam calls (54, incl. Whisper-style transcripts) 54/54 caught, all before money was asked for
Genuine calls (58, incl. hard ones: bank warnings, lawyers, reporters) 57/58 stay quiet · 1 known limit (G49)
Recorded phone-quality calls through Whisper on GPU Hindi and Punjabi scams alarm at sentence 3; genuine call stays safe
Speed (Whisper large-v3-turbo, laptop GPU) ~0.7 s per sentence

All test calls are fictional and written by our team, so these are not real-world accuracy numbers. Run them yourself with npm test.

🔒 Privacy by design

A smoke detector, not a recorder.

Promise How
Audio never leaves the device Whisper runs locally; the server listens on 127.0.0.1 only
Nothing is recorded Audio is transcribed in memory, sentence by sentence, then discarded
Short memory After 30 s a line keeps only its scam phrases, or nothing
Wiped when the call ends Stopping listening forgets all call text
Alerts carry no conversation Family sees risk level, steps and time, never what was said

More: PRIVACY.md · technical notes in docs/privacy.md

✨ Features

🎙️ Easy to use

  • One big button (or Space bar), live loudness bar and call timer
  • Mic button and alarm speak Hindi, Punjabi or English
  • A+ large text for older users

🔴 Warns in time

  • Full-screen alarm, spoken aloud, before money is asked
  • Plain reason: "The caller claims to be an officer and is making threats."
  • What to do next: hang up, 1930, cybercrime.gov.in

👨‍👩‍👧 Brings in family

  • Alert by WhatsApp, Telegram, copy or share
  • One-button Telegram setup
  • Never includes what was said

🔒 Private and reliable

  • On-device speech, works with Wi-Fi off
  • Reconnects if the speech server drops
  • Installable app, dark mode, screen-reader friendly

🚀 Quick start

Private, on-device version (Windows, NVIDIA GPU recommended):

pip install -r server/requirements.txt
start.bat            # or: python server/server.py

Chrome opens http://localhost:8000. Set the call language, press Start listening, and play a call on speaker (try demo-audio/S1_full.wav). Shareable demo moments: ?call=S1&upto=3&alarm=1 shows the alarm on line 3. Works with Wi-Fi off. Full steps: demo guide.

Website version: https://nazar-codevators.vercel.app, with sample calls, typed lines and browser speech (Chrome/Edge).

Run the tests
npm test                          # detector, scoring, folding, listener and awareness tests
python server/test_cutter.py      # speech server sentence cutting
node web/e2e_live.js demo-audio/S1_full.wav   # recorded call through Whisper (server running)
🗂️ Repository layout
web/          the page and the detector (runs in the browser and in Node)
server/       on-device Whisper speech server (FastAPI + WebSocket)
demo-audio/   phone-quality demo calls
stt-bench/    speech-to-text benchmark (Whisper sizes, CPU vs GPU)
docs/         privacy, scoring, architecture, results, FAQ, presentation

🧭 What was built when

Part Origin
web/ detector, UI, sample calls, test bench Started as our Phase 1 online-round prototype, committed here as the starting point
stt-bench/ speech-to-text benchmark Pre-event research, committed as-is
On-device speech server, privacy features, new rules, 64 new test calls, the redesigned UI, tests and CI Built at the venue, 27–28 Oct 2026 (see the commit history)

⚠️ Known limits

  • One genuine call (a lawyer asking a client to keep a court settlement confidential) raises the alarm: known limits.
  • Lottery, job-fee and fake-relative scams are outside the digital-arrest pattern and are not flagged yet.
  • On a real phone, call audio needs a dialer app or telecom partner; the demo listens on speaker.

👥 Team

Team CodeVators · Code Yudh 2026 final, Chandigarh University

Kunal Mittal Team lead · @Kunal039
Ansh Kumar Team member
Shivani Kumari Team member

If you get a call like this: hang up, don't pay, call 1930, or report at cybercrime.gov.in.

MIT licensed · Contributing · Security · Changelog

About

🔒 Private by design: your call never leaves your device and is never recorded. Nazar (नज़र) warns you during a 'digital arrest' scam call, before any money is asked for. Hindi · English · Punjabi.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages