Your AI-Powered Evidence Copilot
Imagine being an officer juggling body-cam footage, audio clips, witness statements, and scribbled reports.......all while the clock’s ticking on paperwork and investigations. It’s chaotic, exhausting, and inefficient.
TestiFYI steps in as your AI-powered case co-pilot. It’s a multi-source investigation assistant built to:
🎯 To make sense of scattered evidence and help law enforcement focus more on the field, not the filing cabinet.
TestiFYI lets you upload videos, audios, text notes, and even scanned images — and intelligently processes them to:
- 🎧 Transcribe what was said.
- 🗣️ Detect who said it.
- 👀 Extract key details.
- 🤖 Run powerful LLM-based analysis to flag contradictions or gaps like "Accoridng to the informer the suspect is wearing a blue hoodie, but the person arrested is wearing ablack one"
- 💬 Let officers query the case in natural language like “Where did the robbery happen?”
This project draws inspiration from the incredible work by the folks at Code Four....... a groundbreaking platform that’s revolutionizing how cops handle digital evidence. Their tool auto-generates reports, summarizes videos in real-time, and reduces desk-time for officers by up to 60%. If you haven’t seen their launch post, check it out here. It’s 🔥.
TestiFYI is a smaller, simplified take on what CodeFour is building, with a focus on linking insights across multiple evidence sources and enabling case-level reasoning through LLMs.......all built using open source and free-tier resources! ✌️
| Area | Tool / Library |
|---|---|
| Frontend UI | streamlit |
| Audio Transcribe | whisper |
| Diarization | pyannote.audio, torchaudio |
| OCR | pytesseract, Pillow |
| PDF/Text Parsing | PyMuPDF (fitz) |
| Video Processing | moviepy, pydub |
| LLM Integration | Groq API with llama-3.3-70b |
| Backend Utils | Python (json, os, datetime) |
- 👮 Upload body-cam video, audio recordings, scanned images, or text files.
- 🧾 Automatic transcription using Whisper & speaker diarization with pyannote.audio.
- 🖼️ Perform OCR on scanned documents like police reports or handwritten notes.
- 📦 Generate a structured JSON aligning speech, speakers, and source metadata.
- 🧠 LLM-powered analysis to uncover inconsistencies or red flags across evidence.
- 💬 Ask natural-language questions and get answers based only on uploaded sources.
- 🎛️ All features accessible via an interactive Streamlit-based UI.
app.py— Streamlit-based frontend for uploading, analyzing, and querying evidence.requirements.txt— All Python dependencies.prompts/— 📄 Prompt templates for LLM interactionssrc/— 🔧 Core utility logicdiarize.py— Speaker diarization withpyannote.audiojson_formatter.py— Aligns and saves structuredJSONfrom segmentsllm_utils.py— HandlesGroqLLM interactions with templatesocr_utils.py— Extracts text from scanned images usingOCRparse_texts.py— Extracts raw text from.txtand.pdffilestranscribe.py— Audio transcription usingWhispervideo_to_audio.py— Converts video files toWAVaudio for transcription
git clone https://github.com/Keerthanareddy17/TestiFYI.git
cd testifypython3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- Create a
.envfile at the project root and add your Hugging Face Token. You can get one here:HUGGINGFACE_TOKEN=your_huggingface_token_here - Set the Groq API key securely in your
.envfile :GROQ_API_KEY=your_groq_api_key_here
streamlit run app.py
Upload any combination of supported evidence files:
- Body-cam videos (.mp4, .avi, etc.)
- Audio clips (.wav, .mp3)
- Text documents (.txt)
- Scanned images (.png, .jpg, .jpeg)
- Uploading all types is not mandatory. A single file is enough to proceed.
- Click 🔍 Run Evidence Analysis
- Let the LLM highlight inconsistencies, contradictions, or suspicious patterns across your evidence.
- Ask natural language case questions like:
- “What did the witness say about the hoodie?”
- “Where was the robbery reported to happen?”
feel free to reach out! 🤝
I'm always up for talking tech, feedback, collaborations, weird LLM behavior stories 😮💨
- 📬 Email: katasanikeerthanareddy@gmail.com