Speech Endpointing Implementation (End-of-Speech Detection)

A voice assistant interrupts the client mid-breath or makes them wait extra seconds — the dialogue falls apart and the person hangs up. We set up speech endpointing turnkey: we determine the end of an utterance by meaning, not by volume. The share of false cutoffs drops severalfold, and response becomes predictable.

AI Development Areas

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1359
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Speech endpointing: where natural dialogue breaks

Speech endpointing starts with a simple rule: as long as the voice activity detector sees silence longer than a specified window, the segment is considered closed and goes to recognition.

Silence is ambiguous here—it could be the end of a thought, or a pause for breath, searching for a word, or reformulating. A rigid silence window of a few tenths of a second on live material produces a false cut of the utterance in almost every long phrase.

The cost of an error is visible immediately. The assistant responds to a phrase it has not heard out, the user repeats it in full, and a characteristic pair settles in the logs: a truncated request followed by a clarification.

Every such trigger adds latency to the assistant's response and reduces trust—the person starts speaking shorter and more simply than is comfortable for them.

The reverse move, increasing the silence window, does not remove the problem but shifts it. The assistant waits after the user has long finished and responds with noticeably increased latency; in a stream of utterances this looks like a freeze.

A single setting cannot separate both boundaries, because the decision about the end of an utterance is made on a single feature—the signal level.

A working solution is assembled from several signals: energy and spectrum of the segment, speech rate, signs of incompleteness on the recognition side—a cut-off function word, absence of a predicate—as well as a threshold that adapts to the noise floor and the specific microphone.

Behavior during interruption is designed separately: when the user starts speaking over the assistant, the segment closes immediately, without waiting for the window.

We'll break down how this is addressed in practice—from dialogue annotation to threshold tuning for specific scenarios.

What controlled end-of-utterance detection provides

End-of-utterance detection sets the rhythm of the entire dialogue: it determines when the assistant starts responding, whether it will cut the user off mid-sentence, and whether stuck sessions will remain in the system.

Endpointing quality can be checked not "by ear" but by a set of metrics captured from production after integration. Below is what exactly we measure and what values we aim for.

  • False cut-off rate. The model looks not only at silence but also at the intonational completion of the phrase, tempo, and syntax, so it does not cut the utterance during a pause for word selection. The target benchmark is single-digit percentages of all pauses versus tens with a fixed silence threshold.
  • Assistant response time. Response time is reduced severalfold: the answer starts immediately after the semantic completion of the phrase, not after a held waiting pause. In streaming audio over WebRTC, this is a difference the user hears without instruments.
  • Noise robustness. On a line with background hum, echo, and fragments of other people's speech, the voice activity detector does not mute the beginning of the utterance and does not "listen out" silence. A separate check is a set of recordings from real channels, not studio silence.
  • User interruption. If a person starts speaking over the answer, the assistant falls silent within a specified window rather than finishing its sentence. This same rule protects against overlapping two speech streams in the dialogue recording.
  • Abandoned dialogue rate. Sessions without activity are closed after a specified time, the state is reset rather than accumulated in memory. A side effect is predictable load on the dialogue service during peak hours.
  • Regression on annotated sets. Each release is run on a corpus with pauses, noise, and interruptions; comparison with the previous build shows whether any scenario has worsened.

All six metrics are output into a single report, so the effect of tuning is visible in the second week after launch—and by the same report it is clear when fine-tuning for a specific channel is needed.

End-of-phrase detection modes: comparison of approaches

The end-of-phrase detection mode is chosen not by "in a vacuum" accuracy but by the communication channel, permissible response latency, and recording quality.

In a quiet office and in a noisy room, the same scheme produces different results—therefore below are real alternatives with their limitations.

The difference between the options manifests at three points: how long to wait before the response starts, how the scheme behaves with noise and interruption, and whether it can work without a network.

If the channel is unstable or recording comes directly from the browser, some solutions are ruled out immediately.

Option When it fits Limitations
Volume threshold Clean channel, close microphone, short commands; minimal computation Stuttering and a pause within a phrase read as the end; with noise the threshold is raised and quiet speech is lost
Streaming model Live dialogue where fast response and noise robustness matter Requires computational resources, is sensitive to the domain and accent; on a weak device latency grows
Hybrid scheme Product with different channels: app, phone line, browser More difficult to set up and maintain: detector thresholds and confirmation logic need to be coordinated
On-device processing Recordings must not leave the device, connection is unstable Limited memory and power; the model is made lighter—false trigger rate grows
Server-side post-processing The entire recording is available, annotation accuracy is more important than instant response Round-trip latency to the server; if the connection drops, the transcription of the fragment is lost

In practice, a hybrid scheme is more often chosen: a lightweight detector on the device closes the utterance, while server-side post-processing refines the boundaries using the full recording.

This option is more expensive to set up but resolves the main conflict—between instant response and accurate annotation.

How we implement speech endpointing in your product

Recordings from telephony, web calls, and microphone paths differ in noise, echo, and pauses within a single phrase.

If utterance boundaries are determined formally, the dialogue gets merged utterances, the bot responds at the wrong time, and extra segments appear in conversation analytics. The work order is the same for any channel—only the settings change.

  1. Audit of dialogue recordings. We collect a corpus of real conversations across all channels and listen to it: where a pause means the end of a thought, and where the person was searching for a word or was interrupted.
  2. Annotation of utterance boundaries. On this corpus we build a reference: boundaries are marked manually, disputed cases are resolved by a rule rather than an annotator's opinion. The reference becomes the yardstick for all subsequent edits.
  3. Parameter tuning. We select the silence threshold and minimum pause duration, the end-of-utterance confirmation time, and behavior during interruption and noise. The sets for a telephone path and a microphone are different.
  4. Testing on live calls. We run the solution on a stream: we count utterance cut-offs, false triggers on inhalation and background, and bot response latency. Edits proceed in iterations until the metrics reach an agreed level.
  5. Handover to maintenance. We provide per-channel configurations, the processing scheme, a metrics dashboard, and the recalibration procedure—when the path changes, your team can configure everything themselves, without us.

Describe your channels and conversation volume—we will return with an estimate and a work plan following this order.

What we hand over: configurations and regulations

We deliver not a demo scenario but a working contour: after acceptance, your team retains a set of artifacts by which the end-of-utterance detector can be configured, tested, and developed without us. Each item has working default values and boundaries that should not be exceeded.

  • Detector parameter configuration. Silence threshold, minimum and maximum pause duration, hysteresis for returning to listening mode, sensitivity to background noise—with comments on what changes in which scenario.
  • Profiles for communication channels. Separate threshold sets for the telephone channel, web call, and headset recording: a narrowband stream behaves differently, and a single shared profile across all produces false cut-offs.
  • Dialogue flow scheme. Where exactly the end of the utterance is fixed, how a cut-off is handled, where the clarification request goes, what happens when two participants' speech overlaps.
  • Annotation rules. How to annotate utterance boundaries and pauses in recordings, how "the person is thinking" differs from "the person has finished," which cases are considered disputed and how to mark them.
  • Quality check procedure. A fixed set of test recordings, metrics—premature cut-off rate, prolonged pause rate, clarification request rate on the annotated set—and the acceptance procedure for any parameter change.
  • Maintenance guide. How to calibrate thresholds for a new microphone, accent, or speech rate on your own data, how to compare a new configuration with the previous one and roll back if metrics decline.
  • Configuration change log. Versioning of parameter sets and models with the reason for the edit: who changed what and on what data, so that six months later it does not turn into archaeology.

Any of these artifacts is self-sufficient: the customer can hand maintenance over to another team, and it will not have to reconstruct the logic from code.

Case study: voice assistant—false cut-offs and response

What was

The assistant received audio from telephony and solved one task—to understand that the person had finished the phrase. The logic was rigid: a fixed silence window after the last recognized word.

On recordings with background noise, pauses for finding wording, and inhalations within a phrase, the window snapped shut in the middle of a sentence—12% of utterances were cut off, and long phrases like "I need a plan that… uh… allows…" the assistant tore apart.

The flip side of the same setting was waiting. Until the window expired, the system was silent, and the time to the first response reached two seconds.

During this wait, 9% of users abandoned the conversation, and almost every fourth contact went into a repeat clarification request "sorry, I didn't catch that"—and this fell on operators.

What was changed

We abandoned a single silence threshold in favor of a two-stage scheme. The first layer is the voice activity detector Silero VAD, which separates speech from noise and does not consider a pause the end of a phrase if continuation follows.

The second layer is an adaptive window: its length depends on utterance length, speech rate, and noise level in the channel, rather than being set as a constant.

The end-of-phrase prediction is launched in advance, so the response begins to be assembled while the speaker is still finishing.

What became

  • cut-off phrase rate—12% → 1.4%;
  • time to first response—1.9 → 0.5 seconds;
  • dialogues with repeat clarification—24% → 6%;
  • conversations abandoned during waiting—9% → 2%;
  • escalations to a live operator—about half as many.

The load on operators fell not because of new scenarios but because the assistant stopped asking again and losing meaning.

Why does a volume threshold cut a phrase on inhalation?

Volume is the cheapest feature of the end of a phrase, so it is the first to end up in settings and the first to fail. Signal energy decays naturally: toward the end of an utterance the person exhales air, speaks more quietly, turns away from the microphone.

The inhalation before a new thought and background noise are often louder than the last syllable of quiet speech—and the threshold closes the phrase before the thought has ended.

A completed thought is distinguished from a thinking pause by prosodic features, not amplitude. The end of a semantic phrase is marked by a fall in fundamental frequency, slowing tempo, a drawn-out final syllable, and an inhalation after the pause.

A thinking pause—word search, filler, wording refinement—keeps a level or rising contour, breaks off without inhalation, and is often filled with speech signal that cannot be considered silence.

Background noise and interruption finish off the energy threshold.

Ventilation hum, music, and conversations in a shared room produce spikes above the threshold and prevent fixing the end of a phrase; conversely, quiet speech in a noisy room does not reach the level and breaks on inhalation.

During interruption, two voices overlap, and the volume level no longer says anything about who finished a thought and when.

In engineering terms, this is addressed by two layers. The first is a voice activity detector that separates voice from noise by spectrum, not level, and adapts to the recording's noise floor.

The second is an endpointing model over a context window: it looks at prosody, pause duration, the presence of inhalation and fillers, and only then confirms the end of a semantic phrase, with a small delay so as not to cut off the continuation.

On spontaneous speech such as Switchboard, this approach reduces the false cut-off rate severalfold—the phrase arrives for recognition whole.

Technical doubts before starting

Before starting a speech endpointing project, the same questions come up: will our own recordings be enough, what to do with an already configured silence threshold, and how to make sure things have become better rather than just different. We answer briefly.

What data is needed for tuning?

Recordings of real conversations from your channel: your speakers, microphones, typical background. Diversity of conditions is more useful than volume—several hours with different acoustics give more than a long clean monologue. We annotate utterance boundaries manually on a small part; the rest goes to testing.

Is retraining on your own recordings needed?

More often no—adjusting sensitivity to your sound is enough. Retraining is justified if you have your own vocabulary, dialect, or non-standard communication channel. It is worth starting with tuning: it is faster and easier to roll back.

How to check quality?

We calculate two values: the share of utterances that the system cuts off prematurely, and the delay between the actual end of the phrase and the reaction.

We run the same annotated recording before and after changes—the difference is visible immediately, without subjective impressions.

What to do with a poor connection?

Network drops and jitter look like silence, and a naive detector mistakes them for the end of an utterance. We add a time margin and stream continuity analysis—a pause in the channel should not be considered a pause in speech.

We have our own silence threshold—will it have to be changed?

We take the current value as a starting point: first we measure how many errors it produces on your recordings, and only then propose a new one. Often it is enough to narrow the range rather than rewrite the entire logic.

Let's discuss the task: we will return with an estimate and plan

Speech endpointing comes down to specifics: the length of a thinking pause, interruptions, background noise in the channel, and permissible response latency. There are no universal thresholds here—they are selected for your recordings.

Therefore, to return with an estimate and plan rather than general considerations, we need your context.

What is useful to send in advance:

  • Dialogue recordings—10–30 minutes of real conversations from the channel where the system will operate: telephony, operator microphone, support headset.
  • Use scenarios—where exactly the end of an utterance needs to be captured: voice assistant, dictation, meeting transcription, streaming call analytics.
  • Target metrics—permissible trigger latency, false cut-off rate, cut-off phrase rate, behavior on silence and music on the line.
  • Environment constraints—processing on device, on your server, or in an external environment; privacy and audio storage requirements.
  • Languages and acoustics—languages and accents, interruption rate, microphone quality, echo, and network loss.
  • Current recognition environment—what is already in place, how audio is transmitted, whether there is a hard real-time requirement.
  • Manual annotation, if available—fragments where the end of an utterance is marked manually: speeds up threshold selection and testing.

In response, we send a plan: a baseline measurement on your recordings, a set of rules for end-of-utterance detection, a method for checking target metrics, and implementation stages with checkpoints. Describe the task—we will return with an estimate and work plan.