Freeze the intake contract and source identity
This workflow is for editors and archive staff deciding whether an incoming recording is usable for an agreed purpose. Its deliverable is a reviewed intake record, not a cleaned master or a universal quality score. Record a file ID, owner, recording conditions, expected channel layout, destination requirements and reviewer. Confirm permission before server upload. SHA-256 identifies an exact copy, not authorship or authenticity.
Preserve the original and probe codec, rate, channel count, duration and declared precision. The timeline, SNR and bit analyzers accept at most 100 MiB, 180 seconds and mono/stereo at 8–96 kHz. A ninety-minute interview therefore needs separately prepared review excerpts or another full-length analysis method. Keep original timestamps, extraction settings and excluded ranges; a successful short-file report is not whole-interview approval. Do not normalize, gate, resample or transcode just to improve a score.
Locate changes without mistaking quiet content for noise
Inspect waveform and spectrogram images, then audition candidate intervals in a separate player. A low waveform may contain a quiet answer, a breath or wanted ambience. Neither a dark spectrogram nor a pause proves a noise-only reference. Keep each channel separate; a silent second channel may be intentional or a missing microphone, depending on the contract.
A reproducible starting configuration for the timeline is 50 ms short windows, one-second buckets, the tenth percentile and a 6 dB change flag. These are inspection settings, not acceptance limits. It takes a percentile of nonzero window RMS amplitudes before converting to dBFS, with normalized RMS 1 as the zero reference. Speech, music, DC and gain changes can influence the proxy.
Inspect digital-silence counts, eligible coverage and partial windows alongside each bucket. An entirely silent bucket has no proxy, not a finite measured floor. Silent gaps break adjacent-bucket comparisons; a flag does not bridge them or prove the background changed. Retain few-window and nonstationarity warnings, and listen around transitions before naming a cause.
Estimate SNR only with a defensible reference
Choose nonoverlapping intervals wholly inside the accepted file: program means wanted signal plus noise, while the reference must contain only representative unwanted noise. Document start/end times and reported selected frames. Changed gain, automatic gain control, gates or changing room conditions can invalidate noise subtraction even if the reference looks stable.
The report separates total-to-noise, 10 log10(Pprogram/Pnoise), from corrected SNR, 10 log10((Pprogram − Pnoise)/Pnoise). Powers are mean-square values, so unequal interval lengths do not inherently bias the ratio. For an arithmetic example with program power 101 times noise power, the corrected estimate is 20 dB while total-to-noise is about 20.043 dB. This is not an intake threshold.
Correction assumes stationary additive noise uncorrelated with the wanted signal and representative during both intervals. The 100 ms reference-block warning cannot prove that assumption in the program. Record whether raw or per-region DC-removed power was selected; that option changes measurement basis, not the audio file. Zero noise and nonpositive or unresolved corrected power leave ratios unavailable, not zero dB or infinity. Near-full-scale warnings identify risk, not proof of historical clipping. No valid reference means no defensible SNR result, not a reason to manufacture one.
Inspect sample words without claiming recording history
Integer bit analysis is a separate branch, not an SNR conversion. It inspects the whole accepted file for eligible integer PCM or FLAC of known width up to 32 bits. Float and lossy audio receive a not-applicable report; converting them to PCM does not recover original precision. A channel containing only zeros remains indeterminate.
A 24-bit integer file whose low eight bits are always zero can report rightmost occupied depth 16. That observation does not prove fake high-resolution audio: structured signals and prior processing matter. Conversely, occupied low bits may come from dither, noise or gain changes, not useful detail. Container width, amplitude usage and low-bit occupancy answer different questions. None measures ENOB, microphone performance or sound quality.
Hand off a decision with its unresolved scope
Save the original JSON, CSV, HTML/SVG reports and visual checks locally; report bundles do not replace the original recording. Give each report the source ID, excerpt mapping, channel and exact parameters. Before a JSON diff, align those identities: path differences do not automatically match cases, and a changed timestamp or window is not necessarily a defect.
Record accept, investigate or rerecord with reasons tied to the predeclared purpose, plus the reviewer and unchecked ranges. Retain unavailable and inapplicable findings rather than silently treating them as passed. Hash the exact final local files and reports. If cleanup is approved, use the restoration or session-noise-profile workflow on separate copies; if words must be transcribed, use the transcription workflow. This page stops at intake review, not automatic repair, transcription, processor regression or acoustic certification.