Skip to content

PayPal sandbox only. No real money moves.

ProveProof

Gate G5: speech accuracy

Is speech-to-text accurate enough to accept bids without confirmation? Not proven. On synthetic audio the numbers now meet the limit, but they were tuned on the same clips. Real numbers, method and limits.

Partialmeasured; some of the bar is met, with limits stated on the page

Verified againstGate G5: PARTIAL. Read from docs/GATES.md when the site is built.

Page last changed 7 Nov 2026 (from the git history)

G5 PARTIAL

Question

Is speech-to-text accuracy on noisy bid audio high enough to accept bids without a manual confirm?

Result

Method

  • Cached eval: 24 clips (24 utterances) were sent to each provider once and the outputs recorded; the cached eval scores the recorded outputs through the rule parser. It runs in the voice-eval workflow (text and cached modes run on pull requests with no keys; live mode is manual).
  • Clip set one: synthetic eSpeak speech, noise-free and robotic (PR #1940).
  • Clip set two: the same 24 utterances spoken by one natural text-to-speech voice (PR VOI-01). Still synthetic and noise-free. The current recordings come from the option trials of PR VOI-02 (voice-eval runs 42364412751 and 42365428369).
  • Providers: Deepgram nova-3 (punctuate=true, smart_format=false) and Groq whisper-large-v3-turbo with a bid-words prompt and temperature 0. The first run used Deepgram nova-2 and Groq without a prompt.
  • Pass rule for the live run (npm run gate:g5 -w @gavel/e2e -- --write-gates, 20 private noisy recordings, DEEPGRAM_API_KEY): PASS needs exact plus recoverable confirm at 0.90 or more and wrong accepts at 0.05 or less; PARTIAL needs 0.70 or more; otherwise FAIL.

Numbers, from docs/GATES.md

Clip setProvidernExactWrong accept (limit 0.05)ConfirmMissed bid
eSpeak, noise-freeDeepgram nova-3241.0000.0000.2920.000
eSpeak, noise-freeGroq whisper-large-v3-turbo with a bid prompt240.9230.0000.3330.000
Human-like synthetic voice, noise-freeDeepgram nova-3241.0000.0000.2920.000
Human-like synthetic voice, noise-freeGroq whisper-large-v3-turbo with a bid prompt240.9230.0000.3330.000

Before the change (nova-2, no prompt): exact 0.615 to 0.692, wrong accept 0.083 to 0.167. Where the change came from, as exact and wrong-accept clips, Deepgram eSpeak: main 0.615 and 3 clips; the label fix alone 0.769 and 1; plus parser fixes on the old recordings 0.846 and 0; plus provider options 1.000 and 0. The 9 clips that drove a rule went from 0.286 to 1.000 (Deepgram) and 0.857 (Groq) exact; the 15 other clips were 1.000 before and after. With 24 clips one clip moves a rate by 0.042.

System level: nothing is auto-accepted on the room microphone (0 of 24 per run, by construction); with a device microphone and a second reading that always agrees, 0 of 15 auto-accepted bids were wrong. Per-clip causes: docs/evidence/G5/ERROR-ANALYSIS.md.

Parser only: the text-level run

Reference text goes in as recognized text, so this measures the parser and nothing about speech-to-text. On 169 cases in 23 categories (commit 5d2e253, artifact voice-eval-text): exact 0.929, wrong accept 0.000, confirm 0.272. The held-out 40 cases were not used to change the lexicon or thresholds. Thresholds stay at AUTO 0.85 and CONFIRM 0.50 (issue 478): the sweep from 0.70 to 0.95 is flat because the parser emits only 0.50, 0.95 and 1.00.

Evidence

Limits

  • Synthetic audio only, noise-free. No real room, no noisy room, no accents beyond the parser's text cases.
  • The 24-clip sample is small, and the parser rules and provider options were chosen after reading the failures on it.
  • Latency is not measured by the text mode.
  • The nightly harness skipped G5 (20 of 20 private recordings missing), so no live G5 run exists.

What GAVEL does about it

A spoken bid is never accepted silently: it goes through the confirm gate. See voice and confirm. For demos, use the recorded replay, which makes no PayPal call.

Edit on GitHub

Last updated on