From tenequm-skills
Analyzes audio recording quality including echo detection, loudness (EBU R128), speech intelligibility (PESQ, STOI), and SNR. Useful for diagnosing call recordings from Blackbox or other apps.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tenequm-skills:audio-quality-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive audio quality analysis for call recordings. Handles dual-track M4A files (system audio + mic), single-track recordings, and AEC-processed files.
Comprehensive audio quality analysis for call recordings. Handles dual-track M4A files (system audio + mic), single-track recordings, and AEC-processed files.
Run the bundled analysis script on a recording directory:
python <skill-path>/scripts/analyze_recording.py "/path/to/recording/directory"
Modes for focused analysis:
python <skill-path>/scripts/analyze_recording.py /path --tracks # track info only
python <skill-path>/scripts/analyze_recording.py /path --echo # echo detection only
python <skill-path>/scripts/analyze_recording.py /path --quality # quality metrics (skip echo)
For Blackbox recordings, the directory is typically:
~/Library/Application Support/Blackbox/Recordings/<timestamp-id>/
System: ffmpeg, ffprobe (brew install ffmpeg)
Python: numpy, soundfile, scipy, pyloudnorm, pesq, pystoi, librosa
Install all Python deps: pip3 install numpy soundfile scipy pyloudnorm pesq pystoi librosa
When you need analysis beyond what the script provides, these patterns are useful.
ffmpeg -y -i audio.m4a -map 0:0 -ac 1 -ar 16000 /tmp/system.wav
ffmpeg -y -i audio.m4a -map 0:1 -ac 1 -ar 16000 /tmp/mic.wav
sox audio.wav -n stat 2>&1
import numpy as np
import soundfile as sf
from scipy import signal
data, sr = sf.read('/tmp/system.wav')
# Analyze 5 seconds starting at 2 minutes
start = 120 * sr
seg = data[start:start + 5*sr]
seg_norm = seg / (np.max(np.abs(seg)) + 1e-10)
autocorr = np.correlate(seg_norm, seg_norm, mode='full')
mid = len(seg_norm) - 1
autocorr = autocorr / autocorr[mid]
# Check 20-100ms range for echo peaks
min_lag = int(0.020 * sr)
max_lag = int(0.100 * sr)
region = autocorr[mid + min_lag:mid + max_lag]
peaks, props = signal.find_peaks(region, height=0.1)
for i, p in enumerate(peaks[:5]):
lag_ms = (p + min_lag) / sr * 1000
print(f" Peak at {lag_ms:.1f}ms, r={props['peak_heights'][i]:.3f}")
| Symptom | Likely cause | What to check |
|---|---|---|
| Speakers sound slightly doubled/echoed | Virtual audio processor (Krisp) creating delayed copy in system audio | Autocorrelation: consistent peak at 40-60ms |
| Mic track has remote speakers' voices | Acoustic echo (speakers to mic) | Cross-track correlation > 0.1 |
| AEC-processed file sounds worse | DTLN-aec degrading signal quality | PESQ/STOI comparing original vs processed |
| AEC-processed file is too loud | Missing loudness normalization after processing | Loudness: processed > -10 LUFS |
| Recording has hiss/noise | Low SNR, noisy mic, or AGC artifacts | SNR < 15dB, high zero-crossing rate |
| Quiet segments mid-recording | Mic cut out or device changed | Per-minute energy: sudden RMS drop |
npx claudepluginhub tenequm/skillsRecovers voice from low-quality or degraded audio using forensic techniques: noise profiling, spectral processing, voice isolation, and transcription enhancement.
Pre-mix audio analysis and problem detection for audio engineering. Runs Phantom MCP diagnostic tools on stems, catalogs issues by severity (dealbreaker/significant/moderate/minor), identifies frequency masking between stems, and produces a structured mix brief. Use this skill whenever the user wants to analyze audio stems or files before mixing, diagnose audio problems (phase issues, clipping, noise, hum, mud, harshness), assess recording quality, prepare a mix session overview, check if a mix is ready for mastering, or investigate why something "sounds wrong." Also use when the user provides WAV file paths and asks for analysis, quality checks, or problem identification -- even if they don't explicitly mention "diagnostics."
Provides FFmpeg commands for audio encoding (AAC/MP3/Opus/FLAC), EBU R128 loudness normalization, extraction from video, format conversion, volume/EQ adjustments, channel ops, and podcast/broadcast chains.