A modular, probabilistic, and research-grounded AI content detection library.
Project description
Veridex
A modular, probabilistic, and research-grounded AI content detection library.
Veridex is a production-ready library for detecting AI-generated content across multiple modalities: text, image, and audio. Unlike binary classifiers, Veridex provides probabilistic detection with confidence estimates and interpretable signals.
✨ Features
- 🎯 Multi-Modal Detection: Text, Image, and Audio deepfake detection
- 📊 Probabilistic Outputs: Returns probabilities and confidence scores, not just binary labels
- 🔍 Interpretable Signals: Exposes individual detection features for transparency
- 🧩 Modular Architecture: Easy to extend with new detection methods
- 🚀 Production-Ready: Robust error handling, graceful degradation
- 📖 Research-Grounded: Based on state-of-the-art papers and benchmarks
🚀 Quick Start
Installation
# Install core library
pip install veridex
# Install with specific modality support
pip install veridex[text] # Text detection
pip install veridex[audio] # Audio detection
pip install veridex[image] # Image detection
# Install everything
pip install veridex[text,image,audio]
# Development installation
pip install -e ".[dev]"
Usage Examples
Text Detection
from veridex.text import PerplexitySignal, BinocularsSignal
# Quick detection with perplexity
detector = PerplexitySignal()
result = detector.run("This text seems suspiciously perfect...")
print(f"AI Probability: {result.score:.2f}")
print(f"Confidence: {result.confidence:.2f}")
print(f"Perplexity: {result.metadata['mean_perplexity']:.2f}")
Audio Detection
from veridex.audio import SpectralSignal
# Lightweight frequency analysis
detector = SpectralSignal()
result = detector.run("audio_sample.wav")
print(f"AI Probability: {result.score:.2f}")
print(f"Spectral Features: {result.metadata}")
Image Detection
from veridex.image import FrequencyDomainSignal
# Analyze spectral anomalies
detector = FrequencyDomainSignal()
result = detector.run("suspicious_image.png")
print(f"AI Probability: {result.score:.2f}")
📦 Available Detectors
Text Detectors
| Detector | Method | Speed | Accuracy | GPU Required |
|---|---|---|---|---|
ZlibEntropySignal |
Compression-based | Fast | Low | No |
PerplexitySignal |
Statistical (LLM-based) | Medium | Medium | Optional |
BinocularsSignal |
Contrastive Perplexity | Medium | High | Optional |
Audio Detectors
| Detector | Method | Speed | Accuracy | GPU Required |
|---|---|---|---|---|
SpectralSignal |
Frequency Domain | Fast | Medium | No |
AASISTSignal |
Spectro-Temporal | Medium | High | No |
Wav2VecSignal |
Foundation Model | Slow | Very High | Recommended |
Image Detectors
| Detector | Method | Speed | Accuracy | GPU Required |
|---|---|---|---|---|
FrequencyDomainSignal |
Spectral Analysis | Fast | Medium | No |
DIRESignal |
Diffusion Reconstruction | Slow | High | Yes |
🧪 Testing
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install with development dependencies
pip install -e ".[dev,text,audio,image]"
# Run all tests
pytest tests/ -v
# Run specific module tests
pytest tests/audio/ -v
# With coverage
pytest tests/ --cov=veridex --cov-report=html
See TESTING.md for detailed testing guide.
📚 Documentation
- Core Idea & Plan - Design philosophy and architecture
- Research Document - Comprehensive technical analysis
- Testing Guide - How to test all metrics
- Module READMEs:
- Audio Detection
- Examples in
examples/directory
🏗️ Architecture
Veridex follows a signal-based architecture:
Input → Signal Extractors → Normalization → Fusion → Output
↓
(Independent, Inspectable Signals)
Each detector:
- Inherits from
BaseSignal - Returns standardized
DetectionResult - Operates independently
- Declares its limitations explicitly
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Development Setup
# Clone repository
git clone https://github.com/ADITYAMAHAKALI/veridex.git
cd veridex
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in editable mode with all dependencies
pip install -e ".[dev,text,image,audio]"
# Run tests
pytest tests/
# Format code
black veridex/ tests/
flake8 veridex/
📄 License
Apache License 2.0 - See LICENSE for details.
🔬 Research & Citations
Veridex is based on cutting-edge research in AI-generated content detection. Key methods include:
- Binoculars: Spotting LLMs With Binoculars (arXiv:2401.12070)
- AASIST: Audio Anti-Spoofing Integrated Spectro-Temporal Graph Attention
- DIRE: Diffusion Reconstruction Error for deepfake images
- Wav2Vec 2.0: Self-supervised foundation models for audio
See AI-Generated Content Detection Research.md for full references.
⚠️ Limitations
Veridex is a probabilistic detection tool, not a definitive proof system:
- ❌ Not suitable as sole evidence for legal/forensic purposes
- ❌ Cannot detect all AI-generated content with 100% accuracy
- ❌ Vulnerable to adversarial attacks and post-processing
- ⚠️ Requires regular updates as generative models improve
Always use multiple signals and human judgment for critical decisions.
🗺️ Roadmap
- Text detection (Perplexity, Binoculars)
- Image detection (Frequency, DIRE)
- Audio detection (Spectral, AASIST, Wav2Vec)
- Video detection (rPPG, I3D)
- C2PA provenance integration
- Ensemble fusion models
- Real-time streaming detection
- Model calibration on benchmarks
📧 Contact
For questions, issues, or contributions:
- Open an issue on GitHub
- See CONTRIBUTING.md
Built with ❤️ for transparency in the age of generative AI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file veridex-0.1.1.tar.gz.
File metadata
- Download URL: veridex-0.1.1.tar.gz
- Upload date:
- Size: 62.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e698d50e31c19e2fa75e7a90142f0bf106b332b21d950cbdd9207997bfcd2cb3
|
|
| MD5 |
15bf8c971aa9b05965bb24c28208bbae
|
|
| BLAKE2b-256 |
b8d45a2cb2e1875d1a64126afaa544250fe1e87369ae252b1a2abe7c3920ebb5
|
File details
Details for the file veridex-0.1.1-py3-none-any.whl.
File metadata
- Download URL: veridex-0.1.1-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d19d0852fba43ac7ae08582e3da3d12fc6481ab526a01b085f911c970933317f
|
|
| MD5 |
6701c6790d97e43192f323af0accc6ae
|
|
| BLAKE2b-256 |
b11f7fb7625106738cec962c23370a455e4eab512a25e3ba520f354509d33fde
|