Skip to main content

Sonic Gate

PyPI Python License Downloads CI

Stop paying humans to listen to corrupted audio files. Fix them automatically.

Sonic Gate is a CLI-first audio/video quality gate that uses deterministic audio analysis to catch corrupted, invalid, or low-quality audio files before they reach human reviewers or downstream pipelines.

Optional AI Probe: Includes an experimental Whisper-based speech quality probe (disabled by default) for users who want to detect language mismatches or speech quality issues.

Features

  • Traditional Analysis (Fast & Deterministic):
    • LUFS loudness measurement (FFmpeg ebur128)
    • Silence detection (pydub)
    • Duration validation
    • Format/corruption checking
  • Video Support: Auto-extract audio from MP4, MOV, AVI, MKV, WebM
  • Fix Mode: Auto-trim silence, normalize LUFS, non-destructive repairs
  • Multiple Formats: Table, JSON, CSV, Markdown output
  • Optional AI Probe: Whisper-based speech detection (off by default)

Installation

# Install the deterministic core (fast, no AI dependencies)
pip install sonic-gate

# With optional AI probe (includes Whisper)
pip install "sonic-gate[ai]"

Or install from source:

git clone https://github.com/Codinglone/sonic-gate.git
cd sonic-gate
pip install -e .

Quick Start

# Analyze a single file (deterministic only, fast)
sonic-gate interview.wav

# Analyze a directory
sonic-gate ./recordings/

# With custom config
sonic-gate --config gate.yaml ./podcasts/

# Fix failed files automatically
sonic-gate --fix ./recordings/

# JSON output for CI
sonic-gate --format json ./files/ > report.json

# Demo mode
sonic-gate demo

Configuration

Default (Deterministic Only - Fast)

rules:
  traditional:
    max_silence_seconds: 3.0
    lufs_range: [-24, -16]
  
  ai_probe:
    enabled: false  # Whisper is OFF by default

output:
  format: table
  show_passed: false

With AI Probe Enabled (Experimental)

rules:
  traditional:
    max_silence_seconds: 3.0
    lufs_range: [-24, -16]
  
  ai_probe:
    enabled: true           # Enable Whisper
    whisper_model: base     # tiny/base/small/medium/large
    min_confidence: -1.0    # Logprob threshold (negative values)
    expected_language: en   # Optional language check
    speaking_rate_range: [100, 180]

fix:
  enabled: false
  output_dir: ./fixed
  normalize_lufs: -16.0

output:
  format: table
  show_passed: false

Note: The AI probe uses Whisper logprob-based confidence scores which are always negative. Typical values range from -0.5 (good) to -5.0 (poor). Adjust min_confidence based on your audio quality and language.

Performance

Analyzer Speed Notes
Traditional (LUFS, silence, format) ~4ms/file Deterministic, always accurate
AI Probe (Whisper tiny) ~200ms/file Optional, experimental
Video extraction +100ms/file One-time FFmpeg extract

Recommendation: Use traditional analysis for batch processing. Enable AI probe only when you need speech-specific checks.

Requirements

  • Python 3.9+
  • FFmpeg (for LUFS and video support)

License

MIT

Release files for sonic-gate 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sonic-gate 0.1.4
File Size Uploaded
sonic_gate-0.1.4.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sonic-gate 0.1.4
File Interpreter ABI Platform
sonic_gate-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 36.0 kB

Release files / sonic_gate-0.1.4.tar.gz

Download URL sonic_gate-0.1.4.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1a74731588d9f6d9d3194a0697f22e9b13ce4a947b6f904b22a21f5caeec6a2d
BLAKE2b-256 checksum
How to use checksums
2185a53566e312a2c007b8bfb4923512cfb89707a3eb8412f3a0d103c05d4300
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / sonic_gate-0.1.4-py3-none-any.whl

Download URL sonic_gate-0.1.4-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
421678c3fc6f4459cdfbbcd08b4b985411bc719b525b92b281d5423974bf6118
BLAKE2b-256 checksum
How to use checksums
ff1be727c31b3a27813a653c29983fcc1b5bca70baac98b2658de08921732385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page