echo-large / README.md
MeetJariwala100's picture
Add Echo Large model card and assets
3883ab1 verified
|
Raw
History Blame Contribute Delete
7.64 kB
---
language:
- bn
- de
- en
- es
- fr
- gu
- hi
- it
- mr
- ta
- te
- ur
tags:
- turn-detection
- end-of-utterance
- eou
- conversational-ai
- voice-agents
- multilingual
- speech
extra_gated_prompt: "Access to Echo Large is provided through Zero Runtime. Visit https://zeroruntime.ai/?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface to get started."
---
<div align="center">
![Echo Large. 96.20% accuracy, 12 languages, 4 states, verdict under 20 ms.](banner.svg)
<p><b>Echo Large reads the meaning behind the words and gets the call right 96.20% of the time.<br/>
A verdict in under 20 ms, with the accuracy to back it.</b></p>
<p>
<a href="https://zeroruntime.ai/?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface"><img src="https://img.shields.io/badge/Get%20Access-zeroruntime.ai-2563EB?style=for-the-badge" alt="Get Access"></a>
&nbsp;
<a href="https://docs.zeroruntime.ai/build/turn-detection-and-interruptions/turn-detection?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface#turn-detection"><img src="https://img.shields.io/badge/Read%20the%20Docs-Turn%20Detection-0F2143?style=for-the-badge" alt="Documentation"></a>
</p>
</div>
Most turn detectors wait for silence and hope. A 500 ms gap looks identical whether someone finished a sentence, paused to think, or simply took a breath, so agents built on timers end up talking over people or leaving them hanging.
Echo Large does not guess. It reads the semantic meaning of what the user just said and decides whether the thought closed or trailed off mid-way. One prediction per turn, with a confidence score, and the strongest text-only accuracy in the family.
It is the accurate one in the **Echo family**: 12 languages, four conversational states, and the strongest semantic numbers of the three. It also beats the proprietary turn detectors most voice stacks ship with.
---
## ๐ŸŽฏ What it does
Echo Large classifies every user turn into one of four states. Each state tells the agent exactly what to do next.
![Every turn resolves to one of four states: Incomplete, Complete, Backchannel or Wait, each with the action the agent should take.](states.svg)
| State | What it means | What your agent should do |
|:--|:--|:--|
| **Complete** | The user has finished their turn | Hand the turn to the LLM and respond |
| **Incomplete** | The user is mid-sentence, just pausing | Keep listening. Do not take the floor |
| **Backchannel** | A short acknowledgement: "uh-huh", "okay okay" | Keep speaking. This is not an interruption |
| **Wait** | The user is asking you to hold: "wait a minute", "hold on" | Stop speaking immediately |
Most turn detectors only answer the first two. Backchannel and Wait are the states that make an agent feel polite instead of oblivious: not stopping every time someone says "mm-hm", and stopping the instant someone says "hold on".
---
## ๐Ÿ”Œ Input and output
**Echo Large works from semantic understanding alone.**
![The utterance goes in, and one classified state comes back.](how-it-works.svg)
**Input**, per turn:
| Field | Description |
|:--|:--|
| **Utterance** | What the user just said |
**No language tag required.** Echo detects the language itself, so there is nothing to configure per call.
**Output**, one prediction per turn:
| Field | Description |
|:--|:--|
| **State** | `Complete`, `Incomplete`, `Backchannel` or `Wait` |
| **Confidence** | A score for the prediction, so you can tune how decisive your agent is |
No audio needed and no language to declare. You trade a few milliseconds against Echo Small and get a noticeably steadier call.
---
## ๐ŸŒ Supported languages
**12 languages**, spanning Indian and European language families. Detected automatically, so you never pass a language code.
| Code | Language | Code | Language | Code | Language |
|:----:|:---------|:----:|:---------|:----:|:---------|
| `bn` | ๐Ÿ‡ง๐Ÿ‡ฉ Bengali | `de` | ๐Ÿ‡ฉ๐Ÿ‡ช German | `en` | ๐Ÿ‡บ๐Ÿ‡ธ English |
| `es` | ๐Ÿ‡ช๐Ÿ‡ธ Spanish | `fr` | ๐Ÿ‡ซ๐Ÿ‡ท French | `gu` | ๐Ÿ‡ฎ๐Ÿ‡ณ Gujarati |
| `hi` | ๐Ÿ‡ฎ๐Ÿ‡ณ Hindi | `it` | ๐Ÿ‡ฎ๐Ÿ‡น Italian | `mr` | ๐Ÿ‡ฎ๐Ÿ‡ณ Marathi |
| `ta` | ๐Ÿ‡ฎ๐Ÿ‡ณ Tamil | `te` | ๐Ÿ‡ฎ๐Ÿ‡ณ Telugu | `ur` | Urdu |
This is not a model that works well in English and degrades everywhere else. Accuracy holds across the full set.
---
## ๐Ÿ“Š Performance
Benchmarked on [**TURNS2K**](https://huggingface.co/datasets/latishab/turns-2k), 2,000 English conversational samples labelled Complete or Incomplete, against a leading third-party turn detector shown here as **Baseline**.
| Metric | Echo Large | Baseline |
|:--|--:|--:|
| **Accuracy** | **96.20%** | 61.13% |
| **Recall (Complete)** | **96.50%** | 32.83% |
| **Specificity** | **95.81%** | 96.83% |
| **F1 Score (Complete)** | **0.9659** | 0.4851 |
**Echo Large beats the proprietary baseline by 35 points of accuracy and nearly 3x the recall.** It wins on both sides of the trade. **96.50% of finished turns are recognised as finished**, and **95.81% of unfinished ones are correctly left alone**, so the agent neither hangs nor interrupts. For every 100 times a user actually finished speaking, Echo Large responds about 97 times. The baseline responds 33.
> Results are measured on the benchmark described above. Performance may vary depending on language, deployment configuration, user behaviour and application requirements.
---
## ๐Ÿง  Trained on data built for this problem
Echo Large is trained on a **proprietary, closed-source dataset built in-house**, purpose-made for conversational turn-taking across all 12 languages and all four states.
That dataset is the reason the rare states hold up. Backchannels and hold requests barely appear in off-the-shelf corpora, so a model trained on public data has almost nothing to learn them from.
---
## ๐ŸŽ›๏ธ The Echo family
All three models return the same four states, so you can move between them without changing your agent logic.
| Model | Modality | Latency | Best for |
|:--|:--|:--:|:--|
| `echo-small` | Semantic | **5 to 10 ms** | The lowest latency. The default when responsiveness matters most |
| **`echo-large`** | **Semantic** | **10 to 20 ms** | Higher accuracy, when it matters more than raw speed |
| `echo-omni` | Audio + semantic | **60 to 80 ms** | The widest language coverage, with acoustic understanding on top of the semantics |
---
## ๐Ÿš€ Get access
Echo Large is served for you. There is nothing to download, host, or keep running. Plug it straight into your voice pipeline alongside your existing STT, LLM and TTS.
```python
# Set ZERORUNTIME_AUTH_TOKEN in your environment.
from zeroruntime.inference import TurnDetector
# Higher accuracy, when it matters more than raw speed
turn_detector = TurnDetector(model="echo-large")
```
<div align="center">
<a href="https://zeroruntime.ai/?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface"><img src="https://img.shields.io/badge/Get%20access%20and%20start%20building-zeroruntime.ai-6C4CF1?style=for-the-badge" alt="Get Access"></a>
&nbsp;
<a href="https://docs.zeroruntime.ai/build/turn-detection-and-interruptions/turn-detection?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface#turn-detection"><img src="https://img.shields.io/badge/Turn%20detection%20%26%20interruptions-docs.zeroruntime.ai-1F2937?style=for-the-badge" alt="Documentation"></a>
</div>
---
<div align="center">
![Echo Large](wordmark.svg)
<sub><b>Echo Large</b> by <a href="https://zeroruntime.ai/?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface">Zero Runtime</a></sub>
</div>