Design documents for event replay, audio processing test, audio loopback test, and protocol probe tools. iOS audio session test plan with 28 scenarios and 3-phase automation approach.
2.8 KiB
2.8 KiB
Audio Processing Test Tool Design
Date: 2026-06-11 Status: Design proposal TODO: TODO-044 Requirements: SysRS-074, SRS-083 Effort: L
Purpose
Test the audio DSP pipeline (AEC, NS, AGC, HPF) in isolation. Measures processing latency, signal quality, and verifies each filter stage produces expected output for known input signals.
Inputs
- WAV file (reference signal) or live microphone input
- Processing configuration (enable/disable AEC, NS, AGC, HPF)
- Optional: reference signal for AEC (far-end playback)
Outputs
- Processed audio WAV file
- Per-stage metrics: latency (ms), signal level (dBFS), spectral changes
- Pass/fail per processing stage against acceptance thresholds
Architecture
┌──────────┐ ┌───────────────────────────────────────┐ ┌──────────┐
│ WAV / │────>│ DSP Chain: HPF → NS → AEC → AGC │────>│ Processed│
│ Mic Input│ │ (chanora_audio processors) │ │ WAV + │
└──────────┘ └────────────────────────┬──────────────┘ │ Metrics │
│ └──────────┘
┌──────v───────┐
│ Metrics │
│ Collector │
│ (latency, │
│ dBFS, SNR) │
└──────────────┘
- Load: Read WAV file or open mic stream
- Process: Feed PCM frames through each enabled DSP stage sequentially
- Measure: Collect per-stage latency and signal metrics
- Output: Write processed WAV and print metrics table
Implementation Plan
- New Rust binary crate:
tools/audio-processing-test/ - Reuse
chanora_audioprocessors:HpfProcessor, noise suppression, AEC, AGC - WAV I/O via
houndcrate - CLI interface:
audio-processing-test <input.wav> [--output processed.wav] [--stages hpf,ns,aec,agc] - Metrics: frame-level latency, input/output RMS, spectral centroid shift
Dependencies
chanora_audio(HPF, NS, AEC, AGC processors)hound(WAV read/write)chanora_audio::engine(AudioProcessingConfig)
Verification
- Unit test: known-tone input through HPF, verify low-frequency attenuation
- Unit test: known-noise input through NS, verify noise floor reduction
- Integration test: full pipeline on reference WAV, verify output within thresholds
- Demo: run tool on sample file, show metrics output