Speech audio quality checker
Pre-flight a short WAV recording before transcription. Decode pasted base64 or hex WAV bytes and check sample rate, channel count, level, estimated SNR, clipping, and an overall ASR-readiness verdict.
About this tool
Paste a short uncompressed WAV recording and this tool checks whether it is ready for speech-to-text / ASR. It decodes the actual audio bytes in WebAssembly, then reports the sample rate, channel count, duration, peak and RMS dBFS, an estimated signal-to-noise ratio, clipped-sample percentage, longest clipped run, and an overall readiness verdict.
Use it before sending a representative clip to a transcription system. The default thresholds match common ASR guidance: 16 kHz or better, mono preferred, about 20 dB or better SNR, and no more than 1% clipped samples. You can tighten or relax those thresholds when your pipeline has different requirements.
Worked example
The built-in example is a tiny 16 kHz mono PCM WAV with loud speech-like frames and quiet background frames. With default settings, the report includes:
[PASS] Sample rate
[PASS] Channels
Verdict: READY for ASR / transcription
Switch Output format to json when you need machine-readable metrics such as
sample_rate, snr_db, clipping_pct, and verdict.
Limits and edge cases
- This pure browser tool decodes uncompressed RIFF/WAVE only: PCM 8/16/24/32-bit integer and IEEE-float WAV. Convert MP3, AAC/M4A, FLAC, Ogg/Opus, A-law, or mu-law to PCM WAV first.
- Paste short representative clips rather than multi-hour recordings; base64 text grows about 33% larger than the binary file.
- SNR is a percentile estimate from 20 ms frame levels, not a voice-activity or perceptual speech-quality model.
- Everything runs locally in the browser; the audio text you paste is not uploaded.
FAQ
What audio formats does this checker support?
It supports uncompressed RIFF/WAVE files: PCM 8-bit, 16-bit, 24-bit, and 32-bit integer WAV, plus IEEE 32-bit and 64-bit float WAV. Compressed containers such as MP3, AAC/M4A, FLAC, Ogg/Opus, A-law, and mu-law are rejected with a clear message so the result is not guessed.
How is SNR estimated?
The tool downmixes the clip to mono, splits it into 20 ms frames, measures each frame's RMS level, and subtracts the 10th-percentile level from the 90th-percentile level. That gives a useful noise-floor estimate for quick preflight checks, but it is not a true speech/non-speech SNR because no voice-activity model runs here.
Why does stereo audio warn instead of fail?
Most ASR systems downmix to mono internally. Stereo usually increases file size without improving transcription accuracy, so the checker marks it as a warning: still usable, but worth downmixing before batch transcription.
Can I upload a .wav file directly?
This generic page uses pasted base64 or hex text rather than a file picker. Run a
command such as base64 clip.wav, paste the output into the input box, and leave
Input encoding set to base64.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool speech-audio-quality-checker "UklGRmQGAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YUAGAAAAAOkSIiQhMqY71j9TPj43OitZGwgJ6PWu4/zTOchxwUDAwMSMzsLcH+4TAfATBCXLMgc85z8SPrE2bSpfGvYH2PS44jbTtMc5wVrAK8U9z6rdKO8mAvUU5CVwM2U89D/MPSA2nSljGeUGyvPF4XPSM8cGwXnAmcXxz5PeMvA6A/gVwCYSNL08/D+DPYs1yyhmGNMFvPLT4LPRtsbXwJ3ADMao0H/fPvFNBPoWmiexNBI9/z80PfI09SdmF8AEr/Hj3/fQPcatwMXAg8Zj0W7gSvJfBfoXcShLNWI9/j/iPFU0HCdlFq0Do/D23j7QycWIwPLA/sYi0l/hWPNyBvkYRSniNa49+D+KPLUzQSZiFZoCmO8M3ojPWcVnwCPBfcfk0lLiZvSDB/YZFip0NvU97T8vPBEzYyVeFIcBju4j3dbO7cRKwFnBAcip00fjdvWVCPEa5CoDNzg+3j/PO2kygiRYE3MAhu0+3CfOhcQzwJTBiMhx1D7khvalCekbryuON3Y+yj9rO70xniNQEmH/f+xa23zNIcQgwNLBE8k81Tfll/e1CuAcdywVOLA+sT8DOw4xuCJIEU3+eet62tXMwsMRwBbCo8kL1jLmqPjFC9UdOy2XOOU+lD+WOlwwzyE+EDr9deqc2THMZ8MHwF7CNsrc1i/nuvnTDMge/S0WORY/cz8lOqUv5CAzDyf8cunB2JLLEcMCwKrCzcqx1y7ozPrgDbgfui6QOUI/TD+wOewu9x8nDhT7cejp1/bKv8IBwPvCaMuI2C/p3/vtDqYgdS8HOmk/Ij82OS8uBx8aDQL6cucU113KccIFwFDDB8xi2THq8vz4D5IhLDB5Oow/8j65OG4tFR4MDPD4dOZB1snJKMIOwKrDqsw/2jXrBf4CEXsi4DDmOqo/vj43OKssIR39Ct73eeVy1TnJ5MEbwAjEUM0f2zrsGf8LEmIjkDFQO8Q/hj6yN+QrKhztCc32fCL31h+Pd0yTIaMFEwNHEqM7n3EnuPwEZFCgl5TIWPOk/Bz6aNk0qOBrLB630kuIX05/HMcFfwDzFWc/O3VLvUgIeFQcmijNzPPU/wT0INnwpOxm5Bp/znuFU0h/H/sB/wKvFDtC53l3wZQMhFuMmLDTLPPw/dj1zNakoPRinBZHyreCV0aPG0MCjwB/GxtCl32jxeAQjF7wnyTQfPf8/Jz3ZNNMnPheVBITxvt/Z0CvGp8DMwJbGgdHw//r/AgAMABQAGwAfACAAHwAaABMACwABAPn/8P/o/+P/4P/g/+P/6f/x//r/AwAMABUAGwAfACAAHgAaABMACgABAPj/7//o/+L/4P/g/+T/6f/x//v/AwANABUAGwAfACAAHgAaABMACgAAAPf/7//n/+L/4P/g/+T/6v/y//v/BAANABYAHAAfACAAHgAZABIACQAAAPf/7v/n/+L/4P/h/+T/6v/y//z/BQAOABYAHAAfACAAHgAZABIACQAAAPb/7v/n/+L/4P/h/+T/6//z//z/BQAOABYAHAAgACAAHgAZABEACAAAAPb/7f/m/+L/4P/h/+X/6//z//3/BgAPABcAHQAgACAAHQAYABEACAD///X/7f/m/+H/4P/h/+X/7P/0//3/BgAPABcAHQAgACAAHQAYABAABwD+//X/7P/m/+H/4P/h/+X/7P/0//7/BwAQABcAHQAgACAAHQAXABAABwD+//T/7P/l/+H/4P/h/+b/7P/1//7/BwAQABgAHQAgACAAHQAXAA8ABgD9//T/6//l/+H/4P/h/+b/7f/1////CAARABgAHQAgACAAHQAXAA8ABgD9//P/6//l/+H/4P/i/+b/7f/2/wAACAARABkAHgAgACAAHAAWAA4ABQD8//P/6//k/+H/4P/i/+f/7v/2/wAACQASABkAHgAgAB8AHAAWAA4ABAD8//L/6v/k/+H/4P/i/+f/7v/3/wAACQASABkAHgAgAB8AHAAWAA0ABAD7//L/6v/k/+D/4P/i/+f/7//4/wAACgATABoAHgAgAB8AGwAVAA0AAwD7//H/6f/k/+D/4P/i/+j/7//4/wEACgATABoA"New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/speech-audio-quality-checker/?input=UklGRmQGAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YUAGAAAAAOkSIiQhMqY71j9TPj43OitZGwgJ6PWu4%2FzTOchxwUDAwMSMzsLcH%2B4TAfATBCXLMgc85z8SPrE2bSpfGvYH2PS44jbTtMc5wVrAK8U9z6rdKO8mAvUU5CVwM2U89D%2FMPSA2nSljGeUGyvPF4XPSM8cGwXnAmcXxz5PeMvA6A%2FgVwCYSNL08%2FD%2BDPYs1yyhmGNMFvPLT4LPRtsbXwJ3ADMao0H%2FfPvFNBPoWmiexNBI9%2Fz80PfI09SdmF8AEr%2FHj3%2FfQPcatwMXAg8Zj0W7gSvJfBfoXcShLNWI9%2Fj%2FiPFU0HCdlFq0Do%2FD23j7QycWIwPLA%2FsYi0l%2FhWPNyBvkYRSniNa49%2BD%2BKPLUzQSZiFZoCmO8M3ojPWcVnwCPBfcfk0lLiZvSDB%2FYZFip0NvU97T8vPBEzYyVeFIcBju4j3dbO7cRKwFnBAcip00fjdvWVCPEa5CoDNzg%2B3j%2FPO2kygiRYE3MAhu0%2B3CfOhcQzwJTBiMhx1D7khvalCekbryuON3Y%2Byj9rO70xniNQEmH%2Ff%2Bxa23zNIcQgwNLBE8k81Tfll%2Fe1CuAcdywVOLA%2BsT8DOw4xuCJIEU3%2Beet62tXMwsMRwBbCo8kL1jLmqPjFC9UdOy2XOOU%2BlD%2BWOlwwzyE%2BEDr9deqc2THMZ8MHwF7CNsrc1i%2FnuvnTDMge%2FS0WORY%2Fcz8lOqUv5CAzDyf8cunB2JLLEcMCwKrCzcqx1y7ozPrgDbgfui6QOUI%2FTD%2BwOewu9x8nDhT7cejp1%2FbKv8IBwPvCaMuI2C%2Fp3%2FvtDqYgdS8HOmk%2FIj82OS8uBx8aDQL6cucU113KccIFwFDDB8xi2THq8vz4D5IhLDB5Oow%2F8j65OG4tFR4MDPD4dOZB1snJKMIOwKrDqsw%2F2jXrBf4CEXsi4DDmOqo%2Fvj43OKssIR39Ct73eeVy1TnJ5MEbwAjEUM0f2zrsGf8LEmIjkDFQO8Q%2Fhj6yN%2BQrKhztCc32fCL31h%2BPd0yTIaMFEwNHEqM7n3EnuPwEZFCgl5TIWPOk%2FBz6aNk0qOBrLB630kuIX05%2FHMcFfwDzFWc%2FO3VLvUgIeFQcmijNzPPU%2FwT0INnwpOxm5Bp%2FznuFU0h%2FH%2FsB%2FwKvFDtC53l3wZQMhFuMmLDTLPPw%2Fdj1zNakoPRinBZHyreCV0aPG0MCjwB%2FGxtCl32jxeAQjF7wnyTQfPf8%2FJz3ZNNMnPheVBITxvt%2FZ0CvGp8DMwJbGgdHw%2F%2Fr%2FAgAMABQAGwAfACAAHwAaABMACwABAPn%2F8P%2Fo%2F%2BP%2F4P%2Fg%2F%2BP%2F6f%2Fx%2F%2Fr%2FAwAMABUAGwAfACAAHgAaABMACgABAPj%2F7%2F%2Fo%2F%2BL%2F4P%2Fg%2F%2BT%2F6f%2Fx%2F%2Fv%2FAwANABUAGwAfACAAHgAaABMACgAAAPf%2F7%2F%2Fn%2F%2BL%2F4P%2Fg%2F%2BT%2F6v%2Fy%2F%2Fv%2FBAANABYAHAAfACAAHgAZABIACQAAAPf%2F7v%2Fn%2F%2BL%2F4P%2Fh%2F%2BT%2F6v%2Fy%2F%2Fz%2FBQAOABYAHAAfACAAHgAZABIACQAAAPb%2F7v%2Fn%2F%2BL%2F4P%2Fh%2F%2BT%2F6%2F%2Fz%2F%2Fz%2FBQAOABYAHAAgACAAHgAZABEACAAAAPb%2F7f%2Fm%2F%2BL%2F4P%2Fh%2F%2BX%2F6%2F%2Fz%2F%2F3%2FBgAPABcAHQAgACAAHQAYABEACAD%2F%2F%2FX%2F7f%2Fm%2F%2BH%2F4P%2Fh%2F%2BX%2F7P%2F0%2F%2F3%2FBgAPABcAHQAgACAAHQAYABAABwD%2B%2F%2FX%2F7P%2Fm%2F%2BH%2F4P%2Fh%2F%2BX%2F7P%2F0%2F%2F7%2FBwAQABcAHQAgACAAHQAXABAABwD%2B%2F%2FT%2F7P%2Fl%2F%2BH%2F4P%2Fh%2F%2Bb%2F7P%2F1%2F%2F7%2FBwAQABgAHQAgACAAHQAXAA8ABgD9%2F%2FT%2F6%2F%2Fl%2F%2BH%2F4P%2Fh%2F%2Bb%2F7f%2F1%2F%2F%2F%2FCAARABgAHQAgACAAHQAXAA8ABgD9%2F%2FP%2F6%2F%2Fl%2F%2BH%2F4P%2Fi%2F%2Bb%2F7f%2F2%2FwAACAARABkAHgAgACAAHAAWAA4ABQD8%2F%2FP%2F6%2F%2Fk%2F%2BH%2F4P%2Fi%2F%2Bf%2F7v%2F2%2FwAACQASABkAHgAgAB8AHAAWAA4ABAD8%2F%2FL%2F6v%2Fk%2F%2BH%2F4P%2Fi%2F%2Bf%2F7v%2F3%2FwAACQASABkAHgAgAB8AHAAWAA0ABAD7%2F%2FL%2F6v%2Fk%2F%2BD%2F4P%2Fi%2F%2Bf%2F7%2F%2F4%2FwAACgATABoAHgAgAB8AGwAVAA0AAwD7%2F%2FH%2F6f%2Fk%2F%2BD%2F4P%2Fi%2F%2Bj%2F7%2F%2F4%2FwEACgATABoA&input_format=base64&output=report&target_sample_rate=16000&min_snr_db=20&max_clipping_pct=1.0&clipping_threshold=0.99Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
