Files
chanora/docs/designs/audio-processing-test-tool.md
T
Edison Jwa 72ded4e011 docs: add test tool designs and iOS test plan (TODO-020,043,044,046,047)
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.
2026-06-11 21:04:45 +09:00

66 lines
2.8 KiB
Markdown

# 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
```text
┌──────────┐ ┌───────────────────────────────────────┐ ┌──────────┐
│ WAV / │────>│ DSP Chain: HPF → NS → AEC → AGC │────>│ Processed│
│ Mic Input│ │ (chanora_audio processors) │ │ WAV + │
└──────────┘ └────────────────────────┬──────────────┘ │ Metrics │
│ └──────────┘
┌──────v───────┐
│ Metrics │
│ Collector │
│ (latency, │
│ dBFS, SNR) │
└──────────────┘
```
1. **Load:** Read WAV file or open mic stream
2. **Process:** Feed PCM frames through each enabled DSP stage sequentially
3. **Measure:** Collect per-stage latency and signal metrics
4. **Output:** Write processed WAV and print metrics table
## Implementation Plan
- New Rust binary crate: `tools/audio-processing-test/`
- Reuse `chanora_audio` processors: `HpfProcessor`, noise suppression, AEC, AGC
- WAV I/O via `hound` crate
- 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