S2S

FAST + CAPABLECAPABLE, NOT FASTFAST, NOT CAPABLEAVOIDmedian 802.5msmedian 66.5◀ BETTERWORSE ▶Latency · range 4941.11kms · lower is betterOverall · range 5677 · higher is bettergemini-3.1-flash-livegpt-realtimegpt-realtime-2.1-minigrok-voice-fastgpt-realtime-2gpt-realtime-2.1gpt-realtime-minigrok-voice-think-fastbenchmarks.speko.ai · run 07-03
#ModelOverallActionCall completionTask capabilityLatency
1Geminigemini-3.1-flash-liveGemini0.770.7892%0.861108ms
2gpt-realtimeOpenAI0.760.8388%0.87494ms
3gpt-realtime-2.1-miniOpenAI0.750.8393%0.791011ms
4grok-voice-fastxAI0.720.4495%0.911111ms
5gpt-realtime-2OpenAI0.680.8781%0.841103ms
6gpt-realtime-2.1OpenAI0.630.5690%0.761104ms
7gpt-realtime-miniOpenAI0.620.7074%0.91614ms
8grok-voice-think-fastxAI0.560.2296%0.771007ms
9Igpt-4.1-nano (cascade)Inworld0.451.0051%0.86

What we tested

Six multi-turn concierge calls. Each forces the model to infer a fact, fire a real tool, then handle a change — n=3 runs each · clean audio · latency from us-east4 · 2026-07-19.

ScenarioThe story it forcesTool
defaultbook a flight to your 3pm-meeting city, then flip the daybook_flight
travel_supportinfer the wedding city, book there, flip Thu→Sat, spell an emailbook_flight
restaurant_calendarinfer the anniversary night, make the reservation, move 7→8pmcreate_event
finance_currencyinfer trip budget + currency, convert it, then bump the budgetconvert_currency
refund_negativenegative-heavy support; infer the one free pickup day, schedule it, spell an order codecreate_event
multiconstraint_scheduleinfer the summit city, book a flight, then change destination Berlin→Munichbook_flight
Per-scenario scores · 0–1 · higher is better · “—” = dropped every session
ModelDefaultTravelRestaurantFinanceRefundMulti-con.
Geminigemini-3.1-flash-live0.920.990.740.840.870.32
gpt-realtime0.960.950.780.750.430.67
gpt-realtime-2.1-mini0.970.880.600.830.760.47
grok-voice-fast0.660.540.860.990.730.56
grok-voice-think-fast0.590.700.440.910.390.38
Igpt-4.1-nano (cascade)0.590.490.74