CLI-first deterministic audio/video quality gate with optional AI probing
Project description
Sonic Gate
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 .
Demo
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
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 sonic_gate-0.1.2.tar.gz.
File metadata
- Download URL: sonic_gate-0.1.2.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
095f7c7f3164f2fbcef4e04c837923ff22b8ec88dbc2d00c443f05e68c5c4edf
|
|
| MD5 |
4247e2a9db915754c05bb90cd1b721e7
|
|
| BLAKE2b-256 |
395c37dd7eeea8d6abe51d6494d29553314314ee3b97bfe6b63645862af622c9
|
File details
Details for the file sonic_gate-0.1.2-py3-none-any.whl.
File metadata
- Download URL: sonic_gate-0.1.2-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc4238342bddfdb8ca0fec89c639aa4238f85aa00b7aedffad3da16a941aecb3
|
|
| MD5 |
0ce7f266b9042293be48541feb742a99
|
|
| BLAKE2b-256 |
0fcbb32bb48bde8f57c435b6305064c426225f94d40d35498ee8e93a15a34ce4
|