Forensic Audio Research Audio Voice Recovery Best Practices
Comprehensive audio forensics and voice recovery guide providing CSI-level capabilities for recovering voice from low-quality, low-volume, or damaged audio recordings. Contains 45 rules across 8 categories, prioritized by impact to guide audio enhancement, forensic analysis, and transcription workflows.
When to Apply
Reference these guidelines when:
- Recovering voice from noisy or low-quality recordings
- Enhancing audio for transcription or legal evidence
- Performing forensic audio authentication
- Analyzing recordings for tampering or splices
- Building automated audio processing pipelines
- Transcribing difficult or degraded speech
Rule Categories by Priority
| Priority |
Category |
Impact |
Prefix |
Rules |
| 1 |
Signal Preservation & Analysis |
CRITICAL |
signal- |
5 |
| 2 |
Noise Profiling & Estimation |
CRITICAL |
noise- |
5 |
| 3 |
Spectral Processing |
HIGH |
spectral- |
6 |
| 4 |
Voice Isolation & Enhancement |
HIGH |
voice- |
7 |
| 5 |
Temporal Processing |
MEDIUM-HIGH |
temporal- |
5 |
| 6 |
Transcription & Recognition |
MEDIUM |
transcribe- |
5 |
| 7 |
Forensic Authentication |
MEDIUM |
forensic- |
5 |
| 8 |
Tool Integration & Automation |
LOW-MEDIUM |
tool- |
7 |
Quick Reference
1. Signal Preservation & Analysis (CRITICAL)
signal-preserve-original - Never modify original recording
signal-lossless-format - Use lossless formats for processing
signal-sample-rate - Preserve native sample rate
signal-bit-depth - Use maximum bit depth for processing
signal-analyze-first - Analyze before processing
2. Noise Profiling & Estimation (CRITICAL)
noise-profile-silence - Extract noise profile from silent segments
noise-identify-type - Identify noise type before reduction
noise-adaptive-estimation - Use adaptive estimation for non-stationary noise
noise-snr-assessment - Measure SNR before and after
noise-avoid-overprocessing - Avoid over-processing and musical artifacts
3. Spectral Processing (HIGH)
spectral-subtraction - Apply spectral subtraction for stationary noise
spectral-wiener-filter - Use Wiener filter for optimal noise estimation
spectral-notch-filter - Apply notch filters for tonal interference
spectral-band-limiting - Apply frequency band limiting for speech
spectral-equalization - Use forensic equalization to restore intelligibility
spectral-declip - Repair clipped audio before other processing
4. Voice Isolation & Enhancement (HIGH)
voice-rnnoise - Use RNNoise for real-time ML denoising
voice-dialogue-isolate - Use source separation for complex backgrounds
voice-formant-preserve - Preserve formants during pitch manipulation
voice-dereverb - Apply dereverberation for room echo
voice-enhance-speech - Use AI speech enhancement services for quick results
voice-vad-segment - Use VAD for targeted processing
voice-frequency-boost - Boost frequency regions for specific phonemes
5. Temporal Processing (MEDIUM-HIGH)
temporal-dynamic-range - Use dynamic range compression for level consistency
temporal-noise-gate - Apply noise gate to silence non-speech segments
temporal-time-stretch - Use time stretching for intelligibility
temporal-transient-repair - Repair transient damage (clicks, pops, dropouts)
temporal-silence-trim - Trim silence and normalize before export
6. Transcription & Recognition (MEDIUM)
transcribe-whisper - Use Whisper for noise-robust transcription
transcribe-multipass - Use multi-pass transcription for difficult audio
transcribe-segment - Segment audio for targeted transcription
transcribe-confidence - Track confidence scores for uncertain words
transcribe-hallucination - Detect and filter ASR hallucinations
7. Forensic Authentication (MEDIUM)
forensic-enf-analysis - Use ENF analysis for timestamp verification
forensic-metadata - Extract and verify audio metadata
forensic-tampering - Detect audio tampering and splices
forensic-chain-custody - Document chain of custody for evidence
forensic-speaker-id - Extract speaker characteristics for identification
8. Tool Integration & Automation (LOW-MEDIUM)
tool-ffmpeg-essentials - Master essential FFmpeg audio commands
tool-sox-commands - Use SoX for advanced audio manipulation
tool-python-pipeline - Build Python audio processing pipelines
tool-audacity-workflow - Use Audacity for visual analysis and manual editing
tool-install-guide - Install audio forensic toolchain
tool-batch-automation - Automate batch processing workflows
tool-quality-assessment - Measure audio quality metrics
Essential Tools
| Tool |
Purpose |
Install |
| FFmpeg |
Format conversion, filtering |
brew install ffmpeg |
| SoX |
Noise profiling, effects |
brew install sox |
| Whisper |
Speech transcription |
pip install openai-whisper |
| librosa |
Python audio analysis |
pip install librosa |
| noisereduce |
ML noise reduction |
pip install noisereduce |
| Audacity |
Visual editing |
brew install audacity |
Workflow Scripts (Recommended)
Use the bundled scripts to generate objective baselines, create a workflow plan, and verify results.
scripts/preflight_audio.py - Generate a forensic preflight report (JSON or Markdown).
scripts/plan_from_preflight.py - Create a workflow plan template from the preflight report.
scripts/compare_audio.py - Compare objective metrics between baseline and processed audio.
Example usage:
# 1) Analyze and capture baseline metrics
python3 skills/.experimental/audio-voice-recovery/scripts/preflight_audio.py evidence.wav --out preflight.json
# 2) Generate a workflow plan template
python3 skills/.experimental/audio-voice-recovery/scripts/plan_from_preflight.py --preflight preflight.json --out plan.md
# 3) Compare baseline vs processed metrics
python3 skills/.experimental/audio-voice-recovery/scripts/compare_audio.py \
--before evidence.wav \
--after enhanced.wav \
--format md \
--out comparison.md
Forensic Preflight Workflow (Do This Before Any Changes)
Align preflight with SWGDE Best Practices for the Enhancement of Digital Audio (20-a-001) and SWGDE Best Practices for Forensic Audio (08-a-001).
Establish an objective baseline state and plan the workflow so processing does not introduce clipping, artifacts, or false "done" confidence.
Use scripts/preflight_audio.py to capture baseline metrics and preserve the report with the case file.
Capture and record before processing:
- Record evidence identity and integrity: path, filename, file size, SHA-256 checksum, source, format/container, codec
- Record signal integrity: sample rate, bit depth, channels, duration
- Measure baseline loudness and levels: LUFS/LKFS, true peak, peak, RMS, dynamic range, DC offset
- Detect clipping and document clipped-sample percentage, peak headroom, exact time ranges
- Identify noise profile: stationary vs non-stationary, dominant noise bands, SNR estimate
- Locate the region of interest (ROI) and document time ranges and changes over time
- Inspect spectral content and estimate speech-band energy and intelligibility risk
- Scan for temporal defects: dropouts, discontinuities, splices, drift
- Evaluate channel correlation and phase anomalies (if stereo)
- Extract and preserve metadata: timestamps, device/model tags, embedded notes
Procedure:
- Prepare a forensic working copy, verify hashes, and preserve the original untouched.
- Locate ROI and target signal; document exact time ranges and changes across the recording.
- Assess challenges to intelligibility and signal quality; map challenges to mitigation strategies.
- Identify required processing and plan a workflow order that avoids unwanted artifacts.
Generate a plan draft with
scripts/plan_from_preflight.py and complete it with case-specific decisions.
- Measure baseline loudness and true peak per ITU-R BS.1770 / EBU R 128 and record peak/RMS/DC offset.
- Detect clipping and dropouts; if clipping is present, declip first or pause and document limitations.
- Inspect spectral content and noise type; collect representative noise profile segments and estimate SNR.
- If stereo, evaluate channel correlation and phase; document anomalies.
- Create a baseline listening log (multiple devices) and define success criteria for intelligibility and listenability.
Failure-pattern guardrails:
- Do not process until every preflight field is captured.
- Document every process, setting, software version, and time segment to enable repeatability.
- Compare each processed output to the unprocessed input and assess progress toward intelligibility and listenability.
- Avoid over-processing; review removed signal (filter residue) to avoid removing target signal components.
- Keep intermediate files uncompressed and preserve sample rate/bit depth when moving between tools.
- Perform a final review against the original; if unsatisfactory, revise or stop and report limitations.
- If the request is not achievable, communicate limitations and do not declare completion.
- Require objective metrics and A/B listening before declaring completion.
- Do not rely solely on objective metrics; corroborate with critical listening.
- Take listening breaks to avoid ear fatigue during extended reviews.
Quick Enhancement Pipeline
# 1. Analyze original (run preflight and capture baseline metrics)
python3 skills/.experimental/audio-voice-recovery/scripts/preflight_audio.py evidence.wav --out preflight.json
# 2. Create working copy with checksum
cp evidence.wav working.wav
sha256sum evidence.wav > evidence.sha256
# 3. Apply enhancement
ffmpeg -i working.wav -af "\
highpass=f=80,\
adeclick=w=55:o=75,\
afftdn=nr=12:nf=-30:nt=w,\
equalizer=f=2500:t=q:w=1:g=3,\
loudnorm=I=-16:TP=-1.5:LRA=11\
" enhanced.wav
# 4. Transcribe
whisper enhanced.wav --model large-v3 --language en
# 5. Verify original unchanged
sha256sum -c evidence.sha256
# 6. Verify improvement (objective comparison + A/B listening)
python3 skills/.experimental/audio-voice-recovery/scripts/compare_audio.py \
--before evidence.wav \
--after enhanced.wav \
--format md \
--out comparison.md
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
Reference Files
| File |
Description |
| AGENTS.md |
Complete compiled guide with all rules |
| references/_sections.md |
Category definitions and ordering |
| assets/templates/_template.md |
Template for new rules |
| metadata.json |
Version and reference information |
1---2name: audio-voice-recovery3description: Audio forensics and voice recovery guidelines for CSI-level audio analysis. This skill should be used when recovering voice from low-quality or low-volume audio, enhancing degraded recordings, performing forensic audio analysis, or transcribing difficult audio. Triggers on tasks involving audio enhancement, noise reduction, voice isolation, forensic authentication, or audio transcription.4---5
6# Forensic Audio Research Audio Voice Recovery Best Practices
7
8Comprehensive audio forensics and voice recovery guide providing CSI-level capabilities for recovering voice from low-quality, low-volume, or damaged audio recordings. Contains 45 rules across 8 categories, prioritized by impact to guide audio enhancement, forensic analysis, and transcription workflows.
9
10## When to Apply
11
12Reference these guidelines when:
13- Recovering voice from noisy or low-quality recordings
14- Enhancing audio for transcription or legal evidence
15- Performing forensic audio authentication
16- Analyzing recordings for tampering or splices
17- Building automated audio processing pipelines
18- Transcribing difficult or degraded speech
19
20## Rule Categories by Priority
21
22| Priority | Category | Impact | Prefix | Rules |
23|----------|----------|--------|--------|-------|
24| 1 | Signal Preservation & Analysis | CRITICAL | `signal-` | 5 |
25| 2 | Noise Profiling & Estimation | CRITICAL | `noise-` | 5 |
26| 3 | Spectral Processing | HIGH | `spectral-` | 6 |
27| 4 | Voice Isolation & Enhancement | HIGH | `voice-` | 7 |
28| 5 | Temporal Processing | MEDIUM-HIGH | `temporal-` | 5 |
29| 6 | Transcription & Recognition | MEDIUM | `transcribe-` | 5 |
30| 7 | Forensic Authentication | MEDIUM | `forensic-` | 5 |
31| 8 | Tool Integration & Automation | LOW-MEDIUM | `tool-` | 7 |
32
33## Quick Reference
34
35### 1. Signal Preservation & Analysis (CRITICAL)
36
37- [`signal-preserve-original`](references/signal-preserve-original.md) - Never modify original recording
38- [`signal-lossless-format`](references/signal-lossless-format.md) - Use lossless formats for processing
39- [`signal-sample-rate`](references/signal-sample-rate.md) - Preserve native sample rate
40- [`signal-bit-depth`](references/signal-bit-depth.md) - Use maximum bit depth for processing
41- [`signal-analyze-first`](references/signal-analyze-first.md) - Analyze before processing
42
43### 2. Noise Profiling & Estimation (CRITICAL)
44
45- [`noise-profile-silence`](references/noise-profile-silence.md) - Extract noise profile from silent segments
46- [`noise-identify-type`](references/noise-identify-type.md) - Identify noise type before reduction
47- [`noise-adaptive-estimation`](references/noise-adaptive-estimation.md) - Use adaptive estimation for non-stationary noise
48- [`noise-snr-assessment`](references/noise-snr-assessment.md) - Measure SNR before and after
49- [`noise-avoid-overprocessing`](references/noise-avoid-overprocessing.md) - Avoid over-processing and musical artifacts
50
51### 3. Spectral Processing (HIGH)
52
53- [`spectral-subtraction`](references/spectral-subtraction.md) - Apply spectral subtraction for stationary noise
54- [`spectral-wiener-filter`](references/spectral-wiener-filter.md) - Use Wiener filter for optimal noise estimation
55- [`spectral-notch-filter`](references/spectral-notch-filter.md) - Apply notch filters for tonal interference
56- [`spectral-band-limiting`](references/spectral-band-limiting.md) - Apply frequency band limiting for speech
57- [`spectral-equalization`](references/spectral-equalization.md) - Use forensic equalization to restore intelligibility
58- [`spectral-declip`](references/spectral-declip.md) - Repair clipped audio before other processing
59
60### 4. Voice Isolation & Enhancement (HIGH)
61
62- [`voice-rnnoise`](references/voice-rnnoise.md) - Use RNNoise for real-time ML denoising
63- [`voice-dialogue-isolate`](references/voice-dialogue-isolate.md) - Use source separation for complex backgrounds
64- [`voice-formant-preserve`](references/voice-formant-preserve.md) - Preserve formants during pitch manipulation
65- [`voice-dereverb`](references/voice-dereverb.md) - Apply dereverberation for room echo
66- [`voice-enhance-speech`](references/voice-enhance-speech.md) - Use AI speech enhancement services for quick results
67- [`voice-vad-segment`](references/voice-vad-segment.md) - Use VAD for targeted processing
68- [`voice-frequency-boost`](references/voice-frequency-boost.md) - Boost frequency regions for specific phonemes
69
70### 5. Temporal Processing (MEDIUM-HIGH)
71
72- [`temporal-dynamic-range`](references/temporal-dynamic-range.md) - Use dynamic range compression for level consistency
73- [`temporal-noise-gate`](references/temporal-noise-gate.md) - Apply noise gate to silence non-speech segments
74- [`temporal-time-stretch`](references/temporal-time-stretch.md) - Use time stretching for intelligibility
75- [`temporal-transient-repair`](references/temporal-transient-repair.md) - Repair transient damage (clicks, pops, dropouts)
76- [`temporal-silence-trim`](references/temporal-silence-trim.md) - Trim silence and normalize before export
77
78### 6. Transcription & Recognition (MEDIUM)
79
80- [`transcribe-whisper`](references/transcribe-whisper.md) - Use Whisper for noise-robust transcription
81- [`transcribe-multipass`](references/transcribe-multipass.md) - Use multi-pass transcription for difficult audio
82- [`transcribe-segment`](references/transcribe-segment.md) - Segment audio for targeted transcription
83- [`transcribe-confidence`](references/transcribe-confidence.md) - Track confidence scores for uncertain words
84- [`transcribe-hallucination`](references/transcribe-hallucination.md) - Detect and filter ASR hallucinations
85
86### 7. Forensic Authentication (MEDIUM)
87
88- [`forensic-enf-analysis`](references/forensic-enf-analysis.md) - Use ENF analysis for timestamp verification
89- [`forensic-metadata`](references/forensic-metadata.md) - Extract and verify audio metadata
90- [`forensic-tampering`](references/forensic-tampering.md) - Detect audio tampering and splices
91- [`forensic-chain-custody`](references/forensic-chain-custody.md) - Document chain of custody for evidence
92- [`forensic-speaker-id`](references/forensic-speaker-id.md) - Extract speaker characteristics for identification
93
94### 8. Tool Integration & Automation (LOW-MEDIUM)
95
96- [`tool-ffmpeg-essentials`](references/tool-ffmpeg-essentials.md) - Master essential FFmpeg audio commands
97- [`tool-sox-commands`](references/tool-sox-commands.md) - Use SoX for advanced audio manipulation
98- [`tool-python-pipeline`](references/tool-python-pipeline.md) - Build Python audio processing pipelines
99- [`tool-audacity-workflow`](references/tool-audacity-workflow.md) - Use Audacity for visual analysis and manual editing
100- [`tool-install-guide`](references/tool-install-guide.md) - Install audio forensic toolchain
101- [`tool-batch-automation`](references/tool-batch-automation.md) - Automate batch processing workflows
102- [`tool-quality-assessment`](references/tool-quality-assessment.md) - Measure audio quality metrics
103
104## Essential Tools
105
106| Tool | Purpose | Install |
107|------|---------|---------|
108| FFmpeg | Format conversion, filtering | `brew install ffmpeg` |
109| SoX | Noise profiling, effects | `brew install sox` |
110| Whisper | Speech transcription | `pip install openai-whisper` |
111| librosa | Python audio analysis | `pip install librosa` |
112| noisereduce | ML noise reduction | `pip install noisereduce` |
113| Audacity | Visual editing | `brew install audacity` |
114
115## Workflow Scripts (Recommended)
116
117Use the bundled scripts to generate objective baselines, create a workflow plan, and verify results.
118
119- `scripts/preflight_audio.py` - Generate a forensic preflight report (JSON or Markdown).
120- `scripts/plan_from_preflight.py` - Create a workflow plan template from the preflight report.
121- `scripts/compare_audio.py` - Compare objective metrics between baseline and processed audio.
122
123Example usage:
124
125```bash
126# 1) Analyze and capture baseline metrics
127python3 skills/.experimental/audio-voice-recovery/scripts/preflight_audio.py evidence.wav --out preflight.json
128
129# 2) Generate a workflow plan template
130python3 skills/.experimental/audio-voice-recovery/scripts/plan_from_preflight.py --preflight preflight.json --out plan.md
131
132# 3) Compare baseline vs processed metrics
133python3 skills/.experimental/audio-voice-recovery/scripts/compare_audio.py \
134 --before evidence.wav \
135 --after enhanced.wav \
136 --format md \
137 --out comparison.md
138```
139
140## Forensic Preflight Workflow (Do This Before Any Changes)
141
142Align preflight with SWGDE Best Practices for the Enhancement of Digital Audio (20-a-001) and SWGDE Best Practices for Forensic Audio (08-a-001).
143Establish an objective baseline state and plan the workflow so processing does not introduce clipping, artifacts, or false "done" confidence.
144Use `scripts/preflight_audio.py` to capture baseline metrics and preserve the report with the case file.
145
146Capture and record before processing:
147- Record evidence identity and integrity: path, filename, file size, SHA-256 checksum, source, format/container, codec
148- Record signal integrity: sample rate, bit depth, channels, duration
149- Measure baseline loudness and levels: LUFS/LKFS, true peak, peak, RMS, dynamic range, DC offset
150- Detect clipping and document clipped-sample percentage, peak headroom, exact time ranges
151- Identify noise profile: stationary vs non-stationary, dominant noise bands, SNR estimate
152- Locate the region of interest (ROI) and document time ranges and changes over time
153- Inspect spectral content and estimate speech-band energy and intelligibility risk
154- Scan for temporal defects: dropouts, discontinuities, splices, drift
155- Evaluate channel correlation and phase anomalies (if stereo)
156- Extract and preserve metadata: timestamps, device/model tags, embedded notes
157
158Procedure:
1591. Prepare a forensic working copy, verify hashes, and preserve the original untouched.
1602. Locate ROI and target signal; document exact time ranges and changes across the recording.
1613. Assess challenges to intelligibility and signal quality; map challenges to mitigation strategies.
1624. Identify required processing and plan a workflow order that avoids unwanted artifacts.
163 Generate a plan draft with `scripts/plan_from_preflight.py` and complete it with case-specific decisions.
1645. Measure baseline loudness and true peak per ITU-R BS.1770 / EBU R 128 and record peak/RMS/DC offset.
1656. Detect clipping and dropouts; if clipping is present, declip first or pause and document limitations.
1667. Inspect spectral content and noise type; collect representative noise profile segments and estimate SNR.
1678. If stereo, evaluate channel correlation and phase; document anomalies.
1689. Create a baseline listening log (multiple devices) and define success criteria for intelligibility and listenability.
169
170Failure-pattern guardrails:
171- Do not process until every preflight field is captured.
172- Document every process, setting, software version, and time segment to enable repeatability.
173- Compare each processed output to the unprocessed input and assess progress toward intelligibility and listenability.
174- Avoid over-processing; review removed signal (filter residue) to avoid removing target signal components.
175- Keep intermediate files uncompressed and preserve sample rate/bit depth when moving between tools.
176- Perform a final review against the original; if unsatisfactory, revise or stop and report limitations.
177- If the request is not achievable, communicate limitations and do not declare completion.
178- Require objective metrics and A/B listening before declaring completion.
179- Do not rely solely on objective metrics; corroborate with critical listening.
180- Take listening breaks to avoid ear fatigue during extended reviews.
181
182## Quick Enhancement Pipeline
183
184```bash
185# 1. Analyze original (run preflight and capture baseline metrics)
186python3 skills/.experimental/audio-voice-recovery/scripts/preflight_audio.py evidence.wav --out preflight.json
187
188# 2. Create working copy with checksum
189cp evidence.wav working.wav
190sha256sum evidence.wav > evidence.sha256
191
192# 3. Apply enhancement
193ffmpeg -i working.wav -af "\
194 highpass=f=80,\
195 adeclick=w=55:o=75,\
196 afftdn=nr=12:nf=-30:nt=w,\
197 equalizer=f=2500:t=q:w=1:g=3,\
198 loudnorm=I=-16:TP=-1.5:LRA=11\
199" enhanced.wav
200
201# 4. Transcribe
202whisper enhanced.wav --model large-v3 --language en
203
204# 5. Verify original unchanged
205sha256sum -c evidence.sha256
206
207# 6. Verify improvement (objective comparison + A/B listening)
208python3 skills/.experimental/audio-voice-recovery/scripts/compare_audio.py \
209 --before evidence.wav \
210 --after enhanced.wav \
211 --format md \
212 --out comparison.md
213```
214
215## How to Use
216
217Read individual reference files for detailed explanations and code examples:
218
219- [Section definitions](references/_sections.md) - Category structure and impact levels
220- [Rule template](assets/templates/_template.md) - Template for adding new rules
221
222## Reference Files
223
224| File | Description |
225|------|-------------|
226| [AGENTS.md](AGENTS.md) | Complete compiled guide with all rules |
227| [references/_sections.md](references/_sections.md) | Category definitions and ordering |
228| [assets/templates/_template.md](assets/templates/_template.md) | Template for new rules |
229| [metadata.json](metadata.json) | Version and reference information |