Hidacs Sàrl
Audio DSP
June 20268 min read

dB SPL vs dBFS: Understanding Audio Levels for Engineers and Clinicians

What you'll learn: the precise definition of dB SPL and dBFS, why they are not interchangeable, the calibration formula that bridges them, and why getting this right is essential for clinical voice analysis, acoustic biomarkers, and audio ML pipelines.

Two recordings can both show -18 dBFS on a meter and yet represent completely different physical sound levels — one recorded with a studio condenser at arm's length, the other with a clinical-grade microphone 30 cm from a patient's mouth. Without understanding the distinction between dB SPL and dBFS, you cannot compare them, calibrate them, or trust any absolute measurement derived from them.

This article cuts through the confusion. We define both scales precisely, derive the conversion formula, and explain the practical consequences for audio engineers, ML practitioners, and clinical researchers working with voice data.

1. What Is dB SPL?

Sound Pressure Level (SPL) is the physical measure of the pressure fluctuations a sound wave creates in air. It is defined as:

dB SPL = 20 × log10(p / p_ref)

where:
  p      = measured RMS sound pressure (in Pascals)
  p_ref  = 20 µPa  (20 × 10⁻⁶ Pa — the threshold of human hearing)

The reference 20 µPa is not arbitrary — it corresponds to the quietest sound a young, healthy human ear can detect at 1 kHz. This makes 0 dB SPL the absolute threshold of human hearing, not silence.

dB SPL is an absolute physical scale. A measurement of 94 dB SPL describes a real pressure in the world, independent of any microphone or recording system. Here are common reference points:

Sound sourceApproximate dB SPL
Threshold of hearing0 dB SPL
Quiet library~30 dB SPL
Normal conversation (1 m)~60–65 dB SPL
Sustained vowel /a/ in speech therapy (30 cm)~70–80 dB SPL
Pistonphone calibration reference94 dB SPL (or 114 dB SPL)
Threshold of pain~130 dB SPL

Key property of dB SPL:

dB SPL is a physical, system-independent measurement. Two calibrated sound level meters placed side by side in the same sound field will read identical dB SPL values, regardless of their electronics or sensitivity.

2. What Is dBFS?

dBFS (decibels relative to Full Scale) is the digital equivalent — a relative scale that describes the amplitude of a digital audio signal with respect to the maximum amplitude a digital system can represent without clipping:

dBFS = 20 × log10(A / A_max)

where:
  A      = measured amplitude (peak or RMS)
  A_max  = maximum representable digital amplitude (full scale)

Because A is always less than or equal to A_max, dBFS values are always negative or zero. The moment a signal hits 0 dBFS, it has reached the ceiling of the digital system — any louder and it clips.

This scale is used everywhere digital audio is processed: DAWs (Pro Tools, Logic, Ableton), audio APIs (PyDub, librosa, soundfile), WAV files, and mobile recording apps all report levels in dBFS. When Python's librosa computes RMS energy from a float32 audio array normalised to [-1, 1], the resulting value in dB is a dBFS value — not a physical sound level.

Key property of dBFS:

dBFS is system-relative. The same physical 70 dB SPL voice can produce -20 dBFS on one interface and -10 dBFS on another, depending on the microphone sensitivity and preamp gain. dBFS tells you nothing about physical sound pressure unless you know the calibration of your system.

3. The Key Difference: Absolute vs. Relative

The confusion between dB SPL and dBFS is understandable — both use decibels, both involve logarithms of amplitude ratios, and both can describe audio. But they answer fundamentally different questions:

PropertydB SPLdBFS
DomainPhysical (acoustic)Digital (electronic)
Reference20 µPa (absolute)Full scale of the ADC (relative)
Range0 dB SPL → ~194 dB SPL-∞ dBFS → 0 dBFS
Maximum valueNo hard ceiling0 dBFS (clipping)
InstrumentSound level meter, pistonphoneDAW meter, audio API
System-independent?YesNo

A practical analogy: dB SPL is like measuring temperature in Kelvin — it references a true physical zero. dBFS is like measuring temperature relative to the highest temperature your thermometer can read. Without knowing where "full scale" sits on the Kelvin axis, the reading is meaningless in absolute terms.

4. Converting Between dB SPL and dBFS

The bridge between the two scales is a single constant called the calibration offset. It represents the dB SPL that corresponds to 0 dBFS in your recording system — in other words, how loud a sound would have to be in the physical world to drive your microphone/ADC chain to full scale:

dB_SPL = dBFS + calibration_offset

Equivalently:
  calibration_offset = dB_SPL_known − dBFS_measured

Example:
  A pistonphone outputs 94 dB SPL.
  You record it and measure -28.4 dBFS (RMS).
  calibration_offset = 94 − (−28.4) = 122.4 dB

  A subsequent recording reads -18.0 dBFS (RMS).
  dB_SPL = -18.0 + 122.4 = 104.4 dB SPL

Typical calibration offsets:

For most professional measurement microphones paired with an audio interface, calibration offsets fall in the range 94 dB – 130 dB. Consumer microphones built into smartphones or laptops have much higher offsets (often 120–140 dB) because their analog sensitivity is low. The exact value must always be measured — never assumed.

Python: Calibrated SPL from a WAV File

import numpy as np
import soundfile as sf

def rms_dbfs(signal: np.ndarray) -> float:
    """Compute RMS level in dBFS (full scale = 1.0)."""
    rms = np.sqrt(np.mean(signal ** 2))
    if rms == 0:
        return -np.inf
    return 20 * np.log10(rms)

def dbfs_to_spl(dbfs: float, calibration_offset: float) -> float:
    """Convert dBFS to dB SPL using a known calibration offset.

    calibration_offset = dB_SPL_reference - dBFS_measured_at_reference
    (typically 94 dB SPL pistonphone measured at the recording chain)
    """
    return dbfs + calibration_offset

# --- Usage ---
audio, sr = sf.read("voice_sample.wav")

# Compute level from the full recording
level_dbfs = rms_dbfs(audio)
print(f"Recording level: {level_dbfs:.1f} dBFS")

# Convert to physical SPL (requires prior calibration)
CALIBRATION_OFFSET = 122.4  # dB, determined from pistonphone session
level_spl = dbfs_to_spl(level_dbfs, CALIBRATION_OFFSET)
print(f"Estimated SPL:   {level_spl:.1f} dB SPL")

Note that soundfile reads WAV files as float32 in the range [-1, 1], so the RMS of a full-scale sine wave is 1/√2 ≈ 0.707, giving -3.01 dBFS — consistent with the dBFS definition.

5. Why It Matters for Clinical Audio

Clinical audio applications — voice pathology assessment, speech therapy, acoustic biomarker research — have stricter requirements than most consumer audio use cases. The reason: clinical decisions depend on the accuracy of computed metrics, and those metrics are highly sensitive to recording level.

Acoustic Biomarkers: AVQI, Jitter, Shimmer, HNR

Metrics like the Acoustic Voice Quality Index (AVQI), jitter (cycle-to-cycle frequency variation), shimmer (cycle-to-cycle amplitude variation), and Harmonics-to-Noise Ratio (HNR) are extracted from the raw waveform of a sustained phonation. Their validity depends on:

  • No clipping: A signal exceeding 0 dBFS introduces nonlinear distortion. The resulting waveform is no longer a faithful reproduction of the patient's voice — shimmer and jitter values computed from it are meaningless.
  • Adequate SNR: A recording level below -40 dBFS (peak) typically means the signal is buried in the noise floor. HNR measurements will reflect the microphone noise rather than the patient's voice quality.
  • Calibrated absolute level: Some normative AVQI ranges are established at specific vocal effort levels (e.g., comfortable loudness at 30 cm). Comparing a patient against normative data requires that your recording represents the same physical SPL, not just the same dBFS.

Example from clinical practice:

Two clinics both record the sustained vowel /a/ at "comfortable loudness." Clinic A uses a Shure MV51 USB microphone with a calibration offset of 120.5 dB. Clinic B uses a Sennheiser MKH 8040 with a preamp calibrated to 112.3 dB offset. A recording that reads -20 dBFS in both clinics represents 100.5 dB SPL in Clinic A and 92.3 dB SPL in Clinic B — an 8 dB SPL difference in vocal effort. Without calibration, pooling these datasets for a machine learning model will introduce systematic bias.

Deep Learning Models: Wav2Vec2 and Input Normalisation

Models like Wav2Vec2 and HuBERT were pre-trained on audio normalised to a specific amplitude range — typically float32 in [-1, 1] with RMS-based loudness normalisation. When you pass a poorly levelled recording (very quiet, or at an unusual gain stage), the model's learned representations may not generalise correctly because the activation statistics at the input convolutional layers differ from the training distribution.

Best practice for inference with these models: normalise your audio to a consistent RMS level (e.g., -23 dBFS per the EBU R128 standard) before passing it to the model, then apply your calibration offset separately if you need absolute SPL. Never conflate the normalisation step with calibration — normalisation is a preprocessing choice; calibration maps your system to the physical world.

6. Practical Rules of Thumb

ScenarioTarget levelRationale
Voice recording (clinical)Peak: -12 to -6 dBFSHeadroom against clipping; SNR >40 dB
Broadcast / podcastRMS: -23 dBFS (EBU R128)Platform loudness normalisation target
ML model input (Wav2Vec2)Float32, RMS-normalised to -23 dBFSMatches pre-training distribution
Calibrated SPL measurementRecord reference tone first94 or 114 dB SPL pistonphone → derive offset
Multi-site clinical studyCalibrate each site independentlySame dBFS ≠ same SPL across hardware

The two-step mental model:

  1. dBFS is what your software sees — a number between -∞ and 0.
  2. Calibration offset is the knowledge of your hardware — derived once per setup.
  3. dB SPL is the physical reality — what a sound level meter would show.

Any clinical comparison that requires absolute levels must go through all three steps.

Try the Hidacs dBFS Converter

Need to convert between dBFS and dB SPL for your recordings? Our free online converter lets you enter a dBFS value and your system's calibration offset to get the physical sound pressure level instantly — no formulas to remember.

Open dBFS Converter Tool

Frequently Asked Questions

What is the difference between dB SPL and dBFS?

dB SPL measures physical acoustic pressure relative to the threshold of human hearing (20 µPa) — it is an absolute, system-independent quantity. dBFS measures digital amplitude relative to the maximum level a recording system can handle — it is always zero or negative and is specific to each hardware/software setup. The same physical sound will produce different dBFS readings on different microphones.

How do you convert dBFS to dB SPL?

Use the formula: dB SPL = dBFS + calibration_offset. The calibration offset is determined by recording a known reference level (typically a 94 dB SPL or 114 dB SPL pistonphone tone) and subtracting the measured dBFS from the known SPL. Typical offsets range from 94 dB to 130 dB depending on the microphone and preamp.

Why does dBFS matter for clinical voice analysis?

Clinical voice metrics (AVQI, jitter, shimmer, HNR) require recordings that are neither clipped nor too quiet. Clipping (above 0 dBFS) distorts the waveform and invalidates all waveform-based measurements. An insufficient level buries the voice in the noise floor and degrades SNR-sensitive metrics like HNR. For multi-site studies or normative comparisons, calibration to dB SPL is necessary to ensure recordings represent the same physical vocal effort across different hardware setups.

What recording level in dBFS is recommended for voice analysis?

For voice analysis and acoustic biomarker extraction, target a peak level between -12 dBFS and -6 dBFS during sustained phonation. This provides adequate headroom to avoid clipping while keeping the signal well above the microphone noise floor. For deep learning speech models such as Wav2Vec2 or HuBERT, apply RMS normalisation to approximately -23 dBFS (EBU R128) before inference, separately from any SPL calibration step.

Need Help with Audio Calibration for Clinical Research?

We build calibrated audio acquisition and analysis pipelines for speech therapy and clinical research, including dB SPL/dBFS calibration workflows, acoustic biomarker extraction (AVQI, jitter, shimmer, HNR), and multi-site recording standardisation.

Related Articles

Clinical Audio

Voice Quality Metrics: Jitter, Shimmer, HNR, and AVQI Explained

Clinical voice quality metrics demystified: jitter, shimmer, HNR, and AVQI with normal ranges, Praat extraction, and Python code for speech-language pathology pipelines.

Read more →
Machine Learning

Fine-Tuning Audio ML Models: Plan, Audit, Diagnose

A structured framework for audio ML fine-tuning: how to plan a new pipeline, audit an existing script, and diagnose an underperforming model.

Read more →
MLOps

MLOps Setup – OVHcloud + DVC + MLflow (Audio Dataset)

A practical guide to a reproducible MLOps pipeline for audio data: OVHcloud Object Storage, DVC for dataset versioning, and MLflow for tracking.

Read more →