Skip to main content

A modular, probabilistic, and research-grounded AI content detection library.

Project description

Veridex

A modular, probabilistic, and research-grounded AI content detection library.

Python 3.9+ License

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

🏗️ 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 docs/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:


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

veridex-0.1.2.tar.gz (72.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veridex-0.1.2-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file veridex-0.1.2.tar.gz.

File metadata

  • Download URL: veridex-0.1.2.tar.gz
  • Upload date:
  • Size: 72.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for veridex-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d9eb953853a31c7d2640365891aec40788e2a08327d0edb9ca3b631a20cd1787
MD5 0a86e3ff26527045a22ba687cfea1fac
BLAKE2b-256 40314bb51e2eb8e5dce3ea70c2bb928e3fca018f2cd1bde7e06214cf779b3377

See more details on using hashes here.

File details

Details for the file veridex-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: veridex-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 50.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for veridex-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1205a8a033b7b29d924e2ccd2a71e461dfd52b7b0cbb1da0c6ba5aba9aabfb5f
MD5 066c72c19a86bb4a4127676591eb4ff4
BLAKE2b-256 dda8e24bd28a69842d77e6a99a2e1ede37b860610541e20e41c162888b7e7cc5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page