Speech-to-text for voice agents
Kugel Ear 1
Your voice bot stops guessing.
An example call: the caller says Viktor Brandt, Kugel Ear 1 tells the bot it is unsure between Viktor, Victor and Wiktor, and the bot asks once.
No more spelling loops.
Unsure words reach your LLM flagged, with the other spellings Kugel Ear 1 heard. Your bot asks once instead of making callers spell.
What your LLM receivesExample
Hi, this is Viktor Brandt.
Viktor55%Victor31%Wiktor14%
- 86%of the words it got wrong were flagged as unsure
- 51%came with the right spelling among the alternatives
Hears when callers finish.
A pause inside a sentence is not the end of a turn. Kugel Ear 1 waits it out, so your bot does not talk over a caller who is reading out a number.
An illustration: a caller reads out a customer number and pauses in the middle. A typical voice bot takes the pause for the end of the turn and talks over the caller. Kugel Ear 1 waits and ends the turn after the last digit.
Most accurate on support calls.
Most words right on AppTek’s public call-center dataset: 280 English customer-support turns across 14 accents, on clean audio and through a phone line.
Words right: 100% minus the word error rate, median of 14 accents. Higher is better.
Final transcript in 72 ms.
The moment a turn ends, the finished transcript is on its way to your LLM. Measured on the same 280 turns, streamed in real time.
- Kugel Ear 172 ms
- Deepgram Nova-394 ms
- Speechmatics Enhanced273 ms
- OpenAI gpt-transcribe587 ms
Shown seven times slower. ElevenLabs Scribe v2 was not measured.
Built for your LLM.
One WebSocket: audio in, the final transcript out when the turn ends, then the spellings it was unsure of. Nine European languages; name one or let it detect per turn.
Your app sends
Open the stream. Kugel Ear 1 decides when each turn ends.
{ "type": "config", "sample_rate": 16000, "turn_detection": "kugelturn" }Stream the call’s audio as it is, pauses included.
{"type": "audio_chunk", "audio_b64": "…"}
Kugel Ear 1 sends back
The final transcript, the moment the turn ends.
{ "type": "partial", "is_final": true, "partial_text": "Hi, this is Viktor Brandt.", "turn_end_reason": "model_end_of_turn" }Then the words it was unsure of, with the spellings it heard.
{ "type": "alternatives", "partial_text": "Hi, this is Viktor Brandt.", "word_alternatives": [{ "raw_word_index": 3, "word": "Viktor", "alternatives": [ {"spelling": "Viktor", "probability": 0.55}, {"spelling": "Victor", "probability": 0.31}, {"spelling": "Wiktor", "probability": 0.14} ] }] }
€0.48 per hour.
excl. VAT · €0.5712 incl. 19% VAT
End-of-turn detection and word alternatives included.
Fewest interruptions at any latency.
English in LiveKit’s open end-of-turn benchmark, every published model. At 300 ms three of them cannot answer at all; at 700 ms they can, and Kugel Ear 1 still cuts callers off least. In every language of the benchmark, Kugel Ear 1 cuts callers off least at both waits.
False cut-offs: the share of pauses taken for the end of a turn. Lower is better.
Every model, at any wait.
Drag the wait after speech and see every model’s false cut-offs, pooled over all 14 languages or one language at a time.
Every number, in detail.
Kugel Ear 1 against the leading speech-to-text models. Every model got the same audio and the same judges; the best result in each row is in bold.
| Benchmark | Kugel Ear 1 | ElevenLabs Scribe v2 | OpenAI gpt-transcribe | Speechmatics Enhanced | Deepgram Nova-3 |
|---|---|---|---|---|---|
| Support calls , higher is betterwords right | 93.4% | 92.1% | 90.3% | 90.6% | 89.9% |
| Through a phone line , higher is betterwords right | 88.5% | 86.7% | 86.2% | 85.0% | 81.2% |
| Names and addresses , higher is betterwritten exactly right | 69.0% | 49.5% | 57.3% | 64.7% | 59.7% |
| Codes and numbers , higher is betterwritten exactly right | 81.9% | 77.7% | 83.1% | 67.3% | 56.6% |
| Earnings calls , higher is betterwords right | 95.6% | 96.0% | 94.4% | 93.6% | 90.6% |
| Time to final transcript , lower is bettermedian | 72 ms | not measured | 587 ms | 273 ms | 94 ms |
| Dataset | Used for | Audio | Size | Source |
|---|---|---|---|---|
| AppTek Call-Center Dialogues | Support calls, Through a phone line, and Time to final transcript | Real calls, role-played by people in 14 English accents; for the phone line row also played through a simulated phone line (8 kHz G.711, background noise, short dropouts) | 280 customer turns of 1 to 25 seconds, 20 per accent | Public dataset |
| de-names-telephony-v1 | Spelling and Names and addresses | Synthetic German speech from KugelAudio’s own text-to-speech (Kugel 3), texts generated from templates; half through the same simulated phone line | 800 calls: 400 sentences, each clean and through the phone line | Built by KugelAudio, not published |
| VoiceCodeBench | Codes and numbers | English workplace speech recorded by 85 people | 300 recordings with 1,482 values such as codes, phone numbers and e-mail addresses | Public dataset |
| Earnings22 (Artificial Analysis) | Earnings calls | Real recordings of company earnings calls, in English | 6 calls of about 19 minutes each | Public dataset |
| LiveKit eot-bench | Interruptions | Conversations in 14 languages | 5,454 turn ends and 7,979 pauses | Public dataset |
How we measured
- Words right: 100% minus the word error rate. The error rate counts every wrong, missing or extra word and every wrong digit, but ignores casing, punctuation, filler words and whether a number is written in digits or words.
- Spelling: 800 synthetic German calls with names, e-mail and street addresses and customer numbers, half of them through a simulated phone line. Of the words Kugel Ear 1 got wrong, it flagged 86% as unsure and sent the right spelling among its alternatives for 51%.
- Interruptions: LiveKit’s public end-of-turn benchmark, 5,454 turn ends and 7,979 pauses in 14 languages. A false cut-off is a turn ended in a pause after which the caller went on. Each model runs at its best measured setting whose average wait after speech fits the latency. Kugel Ear 1 cut callers off least in every language, at 300 ms and at 700 ms, against Gradium, LiveKit Turn Detector v1, LiveKit Turn Detector v1-mini, OpenAI GPT Realtime 2, SmartTurn v3.2, Soniox, ultraVAD, Pause detection only (VAD), Deepgram Flux, and Cartesia Ink 2. Kugel Ear 1 replays its turn model with caller feedback, the transcript arriving 500 ms late; the other results are the runs LiveKit published. The benchmark’s languages were used while developing the turn model.
- Support calls: words right (100% minus the word error rate) on 280 English customer-support turns from AppTek’s public call-center dialogues, 20 per accent, median of 14 accents, from our benchmark leaderboard on 16 October 2026.
- Phone line: the same turns through a simulated G.711 phone line, words right (100% minus the word error rate), median of 14 accents.
- Names and addresses: German names, e-mail and street addresses and customer numbers written exactly right, 800 synthetic calls we generated ourselves (not a public dataset), half of them through a simulated phone line.
- Codes and numbers: VoiceCodeBench, codes, phone numbers and e-mail addresses written exactly right, scored by exact match.
- Earnings calls: Earnings22, as cleaned by Artificial Analysis, six long earnings calls, words right (100% minus the word error rate).
- Speed: the 280 support turns streamed in real time with an explicit end of input; median time from the end of input to the final transcript, measured by one client on 4 and 5 October 2026. ElevenLabs Scribe v2 was not measured.