Skip to content
Sign in

Voice AI

From the microphone to the transcript

A recogniser only hears what survives the path to its input. This page maps that path in twelve steps: what goes wrong, what we measure, how far to trust it, and what it costs a recogniser.

  1. 1 Drop a file
  2. 2 Read the verdict
  3. 3 Automate it
  4. 4 Pay when convinced
speech-female-pangram.mp3 · 15.1 s Example report

Level and clipping

-23.2 dBFS

Speech level

Validated

Noise

36.5 dB

Signal to noise

Validated

Margin: ±6 dB

Gaps in the audio

0

Dropouts

Validated

Pitch and voice quality

218 Hz

Pitch

Validated

Margin: ±3 percent

See the full report →

Real output of the engine on one sample recording, with the status of every number. Your own recording gets the same report, in your browser.

Now your own recording

The check measures in your browser and does not upload your audio. It does not predict how many words a recogniser will get wrong; the scope of that test is in its status.

Shipping audio out of an agent or a text-to-speech model? The outgoing check adds loudness, true peak and your own limits; the QC view shows the same file lane by lane. Think a number is wrong? Tell us; what we confirm goes on Where we were wrong.

The same measures in a pipeline

One recording, or up to 20 in one batch call, from the hosted API or over MCP inside your agent. With measureStatus every measure arrives with its status and margin; with round the numbers are rounded to what the measurement is worth.

curl https://audiolab.tools/v1/voicelab/qa \
  -H "Authorization: Bearer $AUDIOLAB_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/call.wav","measureStatus":true,"round":true}'
Defaults until 15 January 2027, and the guides

The API still answers with its first speech detector and content model until 15 January 2027; the site already uses the newer ones. Send speechDetector "k2" (voice routes) and contentModel "v2" (signallab and profiles) to get the same numbers as the browser. With k2 the speech ratio reads about 5 to 14 points higher, depending on the noise, and the SNR in noisy recordings reads lower, closer to the true value.

Comparing voice-agent audio The API and its published checks Connect over MCP

Your audio. The check in your browser measures on your device and your audio is not uploaded. The API and the MCP server receive the audio at the EU-hosted API and only numbers come back; a file you upload for a larger analysis is removed within the hour. Recordings of people you may not send to a hosted service belong in the browser check, or in a local setup we can talk about.

Audio that must not leave your network? Talk to us about a local or self-hosted setup. It is not a standard product yet, and we promise no date and no price.

The full example report

The real output of the engine on one of our sample recordings. Every number carries its status, its margin and what it does and does not say.

speech-female-pangram.mp3 · 15.1 s

Level and clipping

Too quiet or overdriven is the cheapest fault to find.

Speech level Validated

-23.2 dBFS

Can be used as a pass or fail check.

What it does and does not say

Matches the RMS of a known tone (-9.07 against -9.03 dB) and follows a 12 dB drop. It is the average over the frames the speech detector calls speech, so a detector that counts more of the soft word starts and endings lowers it: with the K2 detector (see Speech ratio) it reads 0.5 dB lower on clean audio and up to 1.4 dB lower in noise (136 test mixtures).

Voice peak Validated

-5.3 dBFS

Can be used as a pass or fail check.

What it does and does not say

Matches the true peak of a clean recording.

Clipped samples Validated

0

Can be used as a pass or fail check.

What it does and does not say

Sees 3 percent stuck samples, and none on a normalised clean recording.

Noise

How far the speech stands above the noise around it. Read the margin: with the speech detector used here it holds from about 5 dB, and below that the estimate reads too high.

Signal to noise Validated

36.5 dB

Margin: ±6 dB

Can be used as a pass or fail check, within its margin.

What it does and does not say

Not a predictor of speech-recognition accuracy.

Noise floor Validated

-59.7 dBFS

Can be used as a pass or fail check.

What it does and does not say

Rises with added noise; noise floors land on the true level of stationary synthetic noise. On 40 read recordings with real background noise (SNR-1, 12 October 2026) it sits 1 to 8 dB below the average level of that noise, because it reads the quietest tenth of the frames.

Gaps in the audio

Gaps of digital silence in the middle of sound, such as lost packets. A lower bound: a loss the codec concealed leaves no gap to find.

Dropouts Validated

0

Can be used as a pass or fail check.

What it does and does not say

Not the number of lost packets: a loss in a pause or a quiet passage cannot be told from a pause, and a loss the codec concealed leaves no gap. It is a lower bound: in the packet loss test 1,539 of the 2,554 made gaps cut sound.

Dropout time Validated

0.00 s

Can be used as a pass or fail check.

What it does and does not say

Not the share of the recording that was lost: only gaps that cut sound are added up, and a loss in a pause or a quiet passage does not count.

Pitch and voice quality

The pitch of the voice and how much of the sound is harmonic.

Pitch Validated

218 Hz

Margin: ±3 percent

Can be used as a pass or fail check, within its margin.

What it does and does not say

Not a note and not a measure of the age or sex of the speaker: the median over the whole recording.

Harmonics-to-noise ratio Validated

16.2 dB

Can be used as a pass or fail check.

What it does and does not say

Not the background noise alone: it counts everything that does not repeat itself from period to period, jitter and shimmer included. Not the HNR of Praat to the decimal: the same definition on another tracker, as a median over the voiced frames weighted by energy.

Measured with the engine the check uses, decoded with ffmpeg here and with your browser in the live check, so the last digits can differ for the same file. Measures that are only indicative are left out here, as in the live check until you ask for them.

What the words mean
Validated
Tested against a standard or a known value, with the source named.
Proxy
Approximates something. Only the direction is tested, or the thresholds were chosen by hand.
Beta
No ground-truth test yet. It may be right; it is not shown to be. It can change.
Withdrawn
Failed its test. Kept in the changelog, no longer shown as a result.

A status of Validated with an analytic basis means the calculation is right on a signal with a known answer. It does not mean the number has a meaning on a real recording; the basis of every measure is on /lenses.

“What it costs a recogniser” comes from our stress test: English read speech, 24 sentences per condition, two open Whisper models. It is a small test with wide intervals, and its conditions were chosen after a first trial with one model, so it says what these models are affected by, not what every system is. “Not published yet” means exactly that: the numbers are not on this site yet.

Where the evidence is thick, and where it is thin

Eleven steps from the microphone to the transcript, and a twelfth for what we do not cover. We tested noise, speech detection, packet loss, rooms and pitch several times, including tests that failed. Level and clipping, and bandwidth and origin, are checked on the calculation but not yet on what they cost a recogniser. Codecs, echo, cut-off at the start and end, and the effect of reverberation on recognition are thin or missing. Click a step to read it.

Step What AudioLab reads Evidence
1. Recording and level Tested: Standard signals, known signals, built recordings. Cost to a recogniser: Measured, small test. Validated 18 Level and clipping
2. Bandwidth, codec and origin Tested: Known signals, speech codecs. Cost to a recogniser: Measured, small test. Validated 5 Codecs
3. Network: lost packets Tested: Built gaps, 8,406. Cost to a recogniser: Measured, small test. Validated 3 Packet loss
4. Echo and a delayed copy of the voice Tested: Not published yet. Cost to a recogniser: Not published yet. Beta 3 Echo: in preparation
5. Noise Tested: Mixtures with a known ratio. Cost to a recogniser: Measured, small test. Validated 5Proxy 1 Noise and SNR
6. Another voice, television, babble, music Tested: Partly, with misses. Cost to a recogniser: Measured, small test. Proxy 13 A competing voiceScene measures and content type
7. Speech detection and the start and end of an utterance Tested: Partly, with misses. Cost to a recogniser: Measured, small test. Validated 4Proxy 5 Speech detectionCut-off at the start and end
8. Room and reverberation Tested: Real rooms, clap and sweep. Cost to a recogniser: Not published yet. Validated 2Proxy 1Withdrawn 1 Room and reverberation
9. The voice and its quality Tested: Built and real voices. Cost to a recogniser: n/a. Validated 2Proxy 2Beta 2 -
10. The recogniser itself Tested: Not applicable. Cost to a recogniser: See steps 5 and 6. No measure Do audio measures predict errors?A cleaning step, before and after: in preparation
11. The test material itself Tested: Not applicable. Cost to a recogniser: n/a. No measure -
12. What we do not cover Tested: Not covered. Cost to a recogniser: n/a. No measure -
The path, step by step

Step 1

Recording and level

Too quiet, clipped, a DC offset, hum or a steady tone.

What AudioLab reads

18 measures: 18 Validated

Show the measures

What we tested

Loudness against the EBU Tech 3341 and 3342 test signals: 0.06 LU off in the worst case, inside the 0.1 LU the standard allows. True peak against BS.1770 test cases (a 997 Hz tone and an inter-sample peak case), within +0.2 and -0.4 dB. The other measures against constructed signals with a known answer: that shows the calculation is right, not what the number means on a real recording. Then read once on 24 read sentences turned down and clipped (not a pre-registered test): clipping was found in every recording with a run of clipped samples and in none of 96 without; the speech level follows the gain down to -50 dBFS, and at -60 dBFS the speech detector loses most of the speech.

Studies in our register: EBU Tech 3341 and 3342, BS.1770, stress test v0.3, V03-ENG.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
Speech at an active level of -40 dBFS −0.5 points, no clear change+0.5 points, no clear change
Speech at an active level of -50 dBFS −0.7 points, no clear change+0.5 points, no clear change
Speech at an active level of -60 dBFS −1.1 points, no clear change−0.5 points, no clear change
+12 dB gain, hard clipped at full scale −0.2 points, no clear change−0.5 points, no clear change
+20 dB gain, hard clipped at full scale −0.5 points, no clear change−0.2 points, no clear change
+30 dB gain, hard clipped at full scale +0.5 points, no clear change−0.7 points, no clear change

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the conditions and levels were fixed before the first transcription (pre-registered). No quiet or clipped condition made a clear difference to either recogniser, not even with a quarter of the samples clipped.

What we do not know

Real recordings that clip at the microphone (ours are clipped digitally), streaming recognisers, and recognisers other than the two open ones.

The evidence

Step 2

Bandwidth, codec and origin

The telephone band, a lossy source, 8 kHz audio stretched to 16 kHz, pieces glued together.

What AudioLab reads

5 measures: 5 Validated

Show the measures

What we tested

Against constructed signals with a known answer. The range of each measure is on /lenses. Then read once on 168 recordings of read speech through seven speech codecs (not a pre-registered test): the bandwidth separated narrowband from wideband output completely, the lossy-source label never said lossy, and the 8 kHz origin was found in 4 of 96 recordings through the 8 kHz codecs.

Studies in our register: stress test v0.3, V03-ENG.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
Telephone band, 300 to 3400 Hz, mu-law +0.2 points, no clear change−0.9 points, no clear change
Telephone band 300 to 3400 Hz, A-law 8 kHz +0.0 points, no clear change−0.9 points, no clear change
AMR-NB 4.75 kbit/s +1.8 points, no clear change−0.7 points, no clear change
AMR-NB 12.2 kbit/s +1.1 points, no clear change−0.7 points, no clear change
AMR-WB 12.65 kbit/s −0.5 points, no clear change−0.5 points, no clear change
GSM 6.10 +0.5 points, no clear change−0.9 points, no clear change
Opus 8 kbit/s (voip) +0.2 points, no clear change−0.9 points, no clear change
Opus 16 kbit/s (voip) −0.5 points, no clear change+0.0 points, no clear change

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the telephone condition comes from the first set, whose conditions were chosen after a first trial with one model; the others were fixed before the first transcription (pre-registered). No codec made a clear difference to either recogniser.

What we do not know

Real phone lines, codecs with packet-loss concealment, and codecs other than these seven.

The evidence

Step 3

Network: lost packets

Gaps of digital silence in the middle of speech, choppy audio.

What AudioLab reads

3 measures: 3 Validated

Show the measures

What we tested

99.9% precision on 8,406 built gaps, 99.8% of the gaps that fell in sound found, and no false alarms on 1,615 recordings without gaps. The count is a lower bound: about 60% of the gaps we built fell in sound, and a gap inside a pause cannot be told from a pause.

Studies in our register: DR-1.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
About 10% packet loss (20 ms packets, no concealment) −0.2 points, no clear change+0.2 points, no clear change

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the conditions were chosen after a first trial with one model. No concealment was simulated; real networks usually conceal.

What we do not know

Gaps that a codec concealed, and AMR silence, are not seen. Real network loss was not tested.

The evidence

Step 4

Echo and a delayed copy of the voice

The voice comes back; a double voice.

What AudioLab reads

3 measures: 3 Beta

Show the measures

Beta: not offered through the API or the MCP server.

What we tested

Not published yet.

What it costs a recogniser

Not published yet.

What we do not know

Real echo in real recordings.

The evidence

  • Echo: in preparation

Step 5

Noise

Background noise that makes words harder to hear.

What AudioLab reads

6 measures: 5 Validated, 1 Proxy

Show the measures

What we tested

Speech mixed with noise at known ratios, in three studies (680 and 520 recordings of read speech, 1,344 of synthetic speech). With the default detector the estimate reads about 3 to 7 dB too high at 10 dB and 6 to 9 dB too high at 5 dB. A second detector with a correction, offered as an opt-in, brings the average error at 5 dB from +5.95 to +1.87 dB on three environments not used in development. Below 5 dB it still reads too high.

Studies in our register: SNR-1, SNR-2, SNR-3.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
Street noise at the level of the speech (0 dB) +0.9 points, no clear change+0.7 points, no clear change
Restaurant noise, 5 dB below the speech +6.4 points, clearly worse+3.6 points, clearly worse
Restaurant noise at the level of the speech (0 dB) +28.8 points, clearly worse+19.2 points, clearly worse

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the conditions were chosen after a first trial with one model.

What we do not know

Real conversations and phone lines. Below 5 dB the estimate reads too high.

The evidence

Step 6

Another voice, television, babble, music

A television, a second speaker, babble or music behind the speaker.

What we tested

Content type against 600 fragments of speech, music and noise: weak, and noise is rarely called noise. Scene measures against 1,344 recordings in nine environments: two separate babble from machine noise, one works backwards. The label "mixed" is used rarely where it should be.

Studies in our register: CT-1, CT-2, SC-1, MX-1.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
A second voice, 5 dB below the speech +5.5 points, clearly worse+4.8 points, no clear change
A second voice at the level of the speech (0 dB) +41.5 points, clearly worse+40.2 points, clearly worse

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the conditions were chosen after a first trial with one model. At equal level, in 6 of 24 recordings both models write mostly the other speaker instead of the target speaker.

What we do not know

A real television, other recognisers, other languages.

Step 7

Speech detection and the start and end of an utterance

Cut-off beginnings, a late or early stop, pauses counted as speech.

What AudioLab reads

9 measures: 4 Validated, 5 Proxy

Show the measures

What we tested

The first speech detector missed every criterion on read speech: the share of speech read about 12.5 points too low. A second detector with hysteresis, offered as an opt-in, meets its five criteria but not the original bar. The start and end measures against constructed signals, and once on read sentences cut 100 to 500 ms into the speech (not a pre-registered test): the level at the edge separated cut from uncut, the yes-or-no measures caught 13 to 20 of 24.

Studies in our register: VAD-1, VAD-2, stress test v0.3, V03-ENG.

What it costs a recogniser

Condition Change in WER, Whisper smallChange in WER, Whisper large-v3-turbo
First 100 ms of speech removed +0.7 points, no clear change+1.6 points, no clear change
First 250 ms of speech removed +4.8 points, clearly worse+4.8 points, clearly worse
First 500 ms of speech removed +9.6 points, clearly worse+10.0 points, clearly worse
Last 250 ms of speech removed +1.1 points, no clear change+0.9 points, no clear change

English read speech, 24 sentences per condition, change against clean. A small test with wide intervals; the conditions and levels were fixed before the first transcription (pre-registered). Cutting the start of the speech cost a recogniser a lot: 250 and 500 ms were clearly worse for both, almost only through deleted words. 100 ms at the start and 250 ms at the end made no clear difference.

What we do not know

Streaming behaviour and real turn-taking, and recordings that were really cut off (ours were cut by hand).

Step 8

Room and reverberation

A reverberant room smears the words.

What AudioLab reads

4 measures: 2 Validated, 1 Proxy, 1 Withdrawn

Show the measures

Reverberation time is measured from a clap or a sweep. It is not available from speech.

What we tested

Reverberation time per octave band equal to our RoomLab app on 385 real impulse responses. A simulated clap against the bare impulse response, 155 rooms: median error 3.9%, 86% within 10%. The speech-based tail measure followed the room only partly (rank correlation 0.56 on 24 real rooms, bar 0.70), and an earlier reverb score was withdrawn.

Studies in our register: RM-1, TD-1.

What it costs a recogniser

Not published yet.

What we do not know

Reverberation time from speech. ISO 3382.

The evidence

Step 9

The voice and its quality

Pitch, roughness, brightness. Mostly relevant for checking synthetic voice output.

What AudioLab reads

6 measures: 2 Validated, 2 Proxy, 2 Beta

Show the measures

What we tested

Pitch on 1,092 built voices with an exact answer: 0.0% gross errors when clean and at most 1.9% under noise or in the telephone band alone, up to 5.9% for vowels when both are combined at 10 dB. On real speech 97.97% of 48,817 frames within 20% of a second tracker. The harmonics-to-noise ratio: 18 of 19 within 1.5 dB. Jitter and shimmer just missed their bars.

Studies in our register: PT-1 to PT-4.

What it costs a recogniser

Not applicable to recognition. Useful for checking the output of a synthetic voice.

What we do not know

How natural a voice sounds, and emotion (deliberately not offered).

Step 10

The recogniser itself

Wrong words, numbers, names, addresses.

What AudioLab reads

AudioLab measures the audio, not the recogniser. The stress test measures the recogniser.

What we tested

Stress test v0.2: English read speech, two Whisper models, eight conditions. In our own test the SNR measure did not predict transcription errors; the scope of that test is in its status on /lenses.

What it costs a recogniser

See steps 5 and 6.

What we do not know

Other recognisers, real conversations, dialect, children's speech, clinical speech.

The evidence

Step 11

The test material itself

A synthetic caller steers the result.

What we tested

Synthetic voices can carry structure that real speech does not, and a detector that handles real speech can raise false alarms on them. Test a detector on real and on synthetic voices if both occur in your use.

What it costs a recogniser

Not applicable.

What we do not know

Whether synthetic voices are neutral for every detector.

Step 12

What we do not cover

Latency, turn-taking, interruptions (barge-in), how natural a synthetic voice sounds, understanding and intent, real phone lines, streaming, and languages beyond English and Dutch.

What we tested

Nothing. These are outside what AudioLab measures or has tested.

What it costs a recogniser

Not applicable.

What we do not know

All of it.

We publish the tests that failed

A reverb score that did not follow the reverb was withdrawn. A claim that a speech-based measure measures the room itself was struck, because it followed the room only partly. Our first speech detector missed every criterion, and our first content-type model almost never called noise noise. Jitter and shimmer missed their bars by a small margin and are not offered. That is why the numbers that remain can be trusted.

Where to begin, by role

A voice-agent team

You ship an agent that listens on the phone or in a browser. Start with steps 1, 3, 5, 6 and 7, then stress-test the recogniser you use.

Step 1, Step 3, Step 5, Step 6, Step 7

A recogniser evaluator

You compare or tune recognisers. Steps 5, 6 and 10 show what noise and a second voice cost two open models, and the stress test pairs every run.

Step 5, Step 6, Step 10

Call-centre quality

You review calls at scale. Run steps 1, 2, 3 and 5 as a batch through the API, with the status and margin next to every number.

Step 1, Step 2, Step 3, Step 5

A dataset builder

You collect or buy speech data. Steps 1, 2, 5 and 9 tell you which files to look at first.

Step 1, Step 2, Step 5, Step 9

A telephony or real-time engineer

You run the path the audio takes: codecs, bandwidth and lost packets. Step 2 shows what AudioLab reads about the band and what seven speech codecs cost two open recognisers, and step 3 the gaps lost packets can leave and what simulated loss costs.

Step 2, Step 3

A text-to-speech team

You ship synthetic speech. Steps 1, 2 and 9 read its level, clipping, bandwidth and pitch. AudioLab does not judge how natural a voice sounds.

Step 1, Step 2, Step 9

Stress-test your own recogniser or agent

The check looks at one recording. The stress test looks at your system: the same recordings in known conditions, the change in word error rate against clean for each condition, and a paired before-and-after report for every change you make.

  • A fixed set. 24 English sentences in eight conditions: clean, telephone band, street noise, restaurant noise, a second voice and packet loss. 192 recordings, about 20 minutes of audio.
  • A runner on your own machine. It calls your recogniser or agent with a command you give it, or an OpenAI-compatible endpoint. Your key and your answers stay with you; nothing is sent to us.
  • A report you can compare. For each condition the change against clean with a 95% interval and an exact sign test, and a paired comparison with your previous run: clearly worse, clearly better, or no clear change.
  • A way to test a change. A model update, new settings, or a cleaning step in front of the recogniser: run the set with and without it and compare, including on recordings that were fine.

Status: in preparation. The set and the runner are not published yet and there is no date. The conditions are test conditions we mix in; AudioLab does not detect them in your recordings. See what a run on two open Whisper models looked like, and what it cannot tell you.