Transforming Unconditioned Ambient Audio into Auditable Business Intelligence — 100% On-Premise.
Standard cloud speech APIs choke on room reverberation, air-conditioner hum, and cross-talk, while sending sensitive corporate conversations over third-party servers. This production pipeline couples FFmpeg DSP spectral conditioning, INT8 Quantized Faster-Whisper, and Ollama Local LLM Polish to achieve zero-cloud, zero-cost, enterprise-grade transcription.
Unified 4-Stage Architectural Pipeline
Click any stage to reveal operational mechanics & code triggersIngestion & Diagnostics
Batch scans watched folders. `ffprobe` and `TinyTag` extract sample rates, codecs, and durations while classifying source tags (`[Voicemail]`, `[OBS]`, `[EarSpy]`).
DSP Conditioning
FFmpeg multi-stage filter: `afftdn` FFT noise suppression (-30dB floor), two-way silence stripping (-30dB), and `loudnorm` normalization to 16kHz mono.
Quantized Faster-Whisper
CTranslate2 INT8 quantized small model executes parallel beam search (3 CPU threads / 2 workers). Voice Activity Detection (VAD) rejects hallucination loops.
Ollama LLM Polish
Locally served `llama3` acts as an automated acoustic archivist. Eliminates stutters, adds speaker flow structure, and prepends ISO metadata audit headers.
Source Ingestion & Dynamic Routing
The pipeline monitors target directories for arbitrary multi-format media (`.wav`, `.mp3`, `.m4a`, `.aac`, `.amr`, `.3ga`). It immediately executes `ffprobe` to determine audio channel geometry and bitrates, while parsing regex timestamp patterns to establish canonical chronological file naming.
- Zero-data loss handling of legacy phone codecs (`amrnb`/`amrwb`) and mobile voice memos.
- Automated tagging: `[Voicemail]`, `[OBS_ScreenCap]`, `[EarSpy_Ambient]`.
- Prevents duplicate processing by checking existing transcript signatures.
def determine_source(filename, metadata, rules=None):
if rules is None:
rules = load_source_rules() # Configurable via sources_config.json
for rule in rules:
if matches_source_rule(filename, metadata, rule):
return rule.get("tag"), bool(rule.get("high_sensitivity", False))
return None, False # Clean fallback without Unknown_Source