Voice Activity Detection (VAD) Implementation for Audio Segmentation

Speech in recordings contains pauses, noise, and overlaps — because of this, audio segmentation makes mistakes, and transcription loses meaning. We develop VAD for your stream: we tune it to the channel type and communication quality so the share of correctly separated fragments grows and the share of manual edits falls. We work turnkey — from channel analysis to handing over the scheme to your team.

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

Why VAD makes mistakes on a real audio stream

On a studio recording, speech segmentation looks like a solved problem: steady level, clear pauses, one microphone.

In a live channel—a call, webinar, recording from a mixing console—conditions change every few seconds, and the voice activity detector (VAD) starts making errors in both directions: in some places it cuts off speech, in others it mistakes noise for speech.

Background noise is the first cause of false positives: an air conditioner, cooler, keyboard, street outside the window raise the energy above the threshold, the channel stays open, and silence and nearby conversations get into the transcript.

The opposite error is more noticeable to the client—clipping the beginning of a phrase, when the threshold has already adapted to the noise and the first syllable does not fall into the segment: "I confirm" turns into "confirm."

A separate pain is the loss of short utterances. "Yes," "no," "okay" are shorter than the pause significant to the detector and fall out of VAD segmentation entirely, yet they are exactly where the client's decision is recorded.

Echo from speakers and music during pauses produce a harmonic signal similar to vocals: the detector slices the melody into "phrases" and breaks speaker diarization.

A connection drop and a change of microphone at the other end change the signal level and spectrum: a model calibrated on one device makes errors until the end of the session.

We'll look at how this is addressed—by adapting the threshold to the noise level, separate processing of echo and music, and post-processing that stitches together broken segments and restores short utterances.

What accurate segmentation delivers: the effect in measurable metrics

Reconfiguring segmentation is not "better recognition" but a set of metrics taken before and after on the same corpus of recordings. Below is what we measure on acceptance runs, separately for clean and noisy audio, with manual markup of speech boundaries.

  • Share of erroneous segments. False positives on noise, music, and breaths plus losses at boundaries—a clipped beginning of a word or tail of a phrase. On the annotated set, we keep it to single-digit percentages instead of tens of percent.
  • Volume of audio for recognition. Cutting off silence and pauses reduces the number of seconds sent to the recognizer: by 1.5–2 times on negotiations and by several times on recordings with long pauses. This immediately affects both response speed and computational load.
  • Response latency. How many frames are needed for the "speech / non-speech" decision to be confirmed, and how quickly the segment closes. We tune confirmation so that the response fits within a usual conversational pause and does not cut a phrase in the middle.
  • Failure class. An entire class of defects goes away: adjacent utterances are not merged into one, function words are not lost, background noise does not turn into text. The worst scenarios are visible on the acceptance set, not in production.

We compare on a single set of recordings; the baseline is the open-source implementation Silero VAD in its standard configuration—this shows what the reconfiguration of thresholds and confirmation logic actually delivered, rather than a change of recognition model.

VAD operating modes: streaming, batch, hybrid scheme

The segmentation mode is chosen based on where the sound comes from and what counts as the result. Streaming segmentation slices the signal on the fly and delivers voice activity fragments immediately—it is needed where a response is expected during the conversation.

Batch processing of recordings works with a finished file: the whole context is available, so phrase boundaries are placed more accurately and the cost of an error is lower.

The sensitivity threshold is the second tuning axis, independent of mode. An overestimated threshold cuts off quiet and distant speech; an underestimated one lets noise through and inflates the output volume.

We calibrate the threshold on the client's recordings: with their microphones, background noise, and speaking style.

Option When it fits Limitations
Streaming segmentation Real-time dialogue, voice assistants, live transcription Decision is made on a short window — false merges are possible during pauses and quiet speech
Batch processing of recordings Transcription of archives, call analytics, preparation of training sets No result until the recording ends; long files require splitting and parallel processing
Hybrid scheme Mixed scenarios: live dialogue followed by accurate markup Harder to maintain — two pipelines, result reconciliation, and a unified threshold policy

The modes are not mutually exclusive: the same VAD module works both in streaming and in batch; switching is set by configuration. The hybrid scheme adds a second pipeline and a common threshold policy—a deliberate price for markup accuracy after a live dialogue.

Step-by-step implementation: from channel audit to handover

The workflow is arranged so that segmentation thresholds are not selected by eye but tested on your data.

First we determine what exactly counts as speech in a specific scenario—an operator dialogue, a meeting in a conference room, or a voice command—then we tune the model, and only after that release it to a live stream.

  1. Channel audit. We analyze sound sources: telephony, microphone arrays, workstation recording. We look at noise level, echo, music, and background silence—this determines whether preliminary filtering is needed before segmentation.
  2. Markup of reference recordings. We manually mark the boundaries of speech fragments on a sample from the archive: we get a ground truth against which we then compare the automation. Without it, tuning turns into guessing.
  3. Processing scheme. We determine where segmentation sits in the overall pipeline: silence cutoff before recognition, separation by speakers, or voice-activated recording. This determines latency requirements.
  4. Segmentation tuning. We select sensitivity, minimum speech and pause duration, boundary smoothing, and short-burst cutoff. We validate every parameter on the annotated ground truth, not by ear.
  5. Stream testing. We run the solution on real incoming audio: we look at the share of missed speech, false positives, and latency to the first segment under channel load.
  6. Solution handover. We provide configurations, schemes, instructions for retuning to a new channel, and train the team—so thresholds can be changed without us.

Metric feedback remains: after launch, we compare results on new recordings and refine parameters if the equipment or room acoustics have changed.

What the client's team keeps after implementation

Implementation is considered complete not when the system responds on a test recording, but when your engineers can change its behavior without us.

Therefore, along with the working service, a set of artifacts is handed over, allowing the support team to tune segmentation itself for a new channel or changed recording conditions.

  • Sensitivity profiles — named sets of parameters: VAD trigger threshold, analysis window length, minimum speech fragment duration, pause before closing a segment. Separate profiles for a voice recorder, telephone channel, and open microphone in a conference room, because noise level and speech dynamics there differ by several times.
  • Per-channel configurations — binding a profile to a source taking into account sampling rate, number of channels, codec, and presence of background music. Configuration files live in the repository next to the service; changes go through review rather than being edited by hand on the server.
  • Processing schemes — the audio path from input stream to slicing: where resampling is, where noise reduction is, where the detector is, where overlap buffering at segment junctions is. With the scheme, it is clear at which step processing will break if the input format changes.
  • Reference set of recordings with manual markup of speech boundaries — regression check: after editing a profile, you can see how many segments shifted and where clipped words appeared.
  • Support regulations — what to review and how often, which metrics to keep under control: share of false positives on silence, share of lost short utterances, number of fragments cut in the middle of a word.
  • Support instructions — how to connect a new channel, how to roll back a profile to the previous one, how to export a problematic section and reproduce it locally.
  • Access permissions and deployment scheme — where the service runs, how the detector model is updated, who has rights to change configurations.

After that, any sensitivity change goes through the same reference set—so a tweak for one channel does not break the others. For the first weeks after handover, we stay in touch and go through every discrepancy together with your engineers.

Implementation case study: how segmentation changed on a channel

The telephone channel is the noisiest audio source: narrow band, level fluctuations, hold music, and pauses between utterances. Before VAD implementation, the dialogue was recorded in full, and the entire stream went to recognition—together with silence, beeps, and line noise.

Utterance boundaries were determined by loudness, and on a telephone line its level fluctuates constantly.

Before implementation: what the measurement showed

On the markup of real calls, we recorded: 18% of segments were erroneous—an utterance was torn into parts or merged with a neighboring one; 12% of utterances arrived clipped, and the first syllables after a pause were lost; the entire stream went to recognition, of which about 40% was silence, hold time, and background noise.

Later, errors surfaced in analytics: incorrect length of the client's utterance and incorrect number of interruptions.

After: what we changed and what we got

We built a VAD pipeline for the telephone band: a sliding analysis window, hysteresis across two thresholds—entry into speech and exit from it—threshold adaptation to the noise level of a specific line, and a separate rule for hold music.

Recognition now starts only on speech sections. Audio is received by Asterisk, then the stream goes to our pipeline.

The share of erroneous segments dropped from 18% to 4%, clipped utterances from 12% to 1.5%, and the volume of audio sent to recognition decreased by about 55%. The freed-up resources went to a second channel without increasing capacity.

Segmentation stopped depending on line type: the same settings work for both mobile and landline calls.

How does VAD differ from a keyword detector?

VAD answers one question: is there human speech in the current signal window. It is binary segmentation by energy and spectral profile—it does not know which words were spoken and does not distinguish who is speaking.

The output is a markup of speech regions with start and end points, and the rest is discarded as silence and noise.

A keyword detector solves the inverse problem: input is a stream, output is the event "the required command was spoken." It relies on phonetic sequences and works well on short utterances, but without preliminary segmentation it produces false positives on noise and loses words at boundaries.

Speaker diarization is the third, independent task: not "is there speech" and not "what was said," but "how many sources are there and where does the speaker change." Here, clustering of voice embeddings is used, and its accuracy directly depends on how accurately the audio is sliced before it.

In practice, these stages are placed in one pipeline. VAD slices the stream and discards silence, while the keyword detector and speaker diarization work only on selected sections—load on the model drops, and the share of false positives decreases.

The reverse order leads to detections based on noise and to splitting a single word at segment junctions.

A separate nuance is that tuning the VAD threshold affects both subsequent stages. Too aggressive a cutoff clips the beginning of a word, and the detector loses the command; too soft a cutoff pulls noise into the segment, and speaker diarization starts confusing sources. That is why thresholds are selected on the client's real recordings, not on studio voice-over.

Common technical doubts before starting

A real channel rarely resembles a studio recording: ventilation, lobby music, speakerphone echo, and clipped utterances test VAD's robustness. Below are the doubts most often voiced before starting, and our engineering answer to each.

Will channel noise kill speech detection?

Constant background is not cut by a single threshold: detection looks at the spectrum, its periodicity and rate of change, and estimates the noise level adaptively. We calibrate parameters on recordings from your channel, not on an averaged model.

Are echo and music mistaken for voice?

We suppress echo with two-channel processing: compare the direct signal with the reference and subtract the repeat. We mark music as a separate class—vocals in it are close to speech, so the decision relies on a combination of features rather than loudness.

Are short utterances lost?

"Yes," "uh-huh," and interruptions last less than a second, and aggressive smoothing eats them. We reduce the analysis window and add switching hysteresis—short confirmations remain in the transcript, and response latency grows imperceptibly.

Can an already processed recording be run through?

Yes, the archive is marked up in batch: the file is processed in full with two-pass boundary refinement. The parameter set is the same as in streaming, so the results on a recording and in real time are comparable.

Does updating configurations stop the service?

No. Profiles are picked up on the fly: active connections finish on the previous parameters, and new ones start with the updated ones. Rollback is returning the previous profile, without restarting the service or losing current sessions.

Let's discuss VAD for your stream: what we need from you

Evaluation of a VAD module depends not on the amount of code but on the quality of input data: the same model on a studio recording and on a telephone channel with echo yields a different share of false positives.

Therefore, before starting work, we need a slice of your audio path—then we will fix the metrics and won't have to guess.

Here is what we need from you:

  • Recording samples: 15–30 files from the real stream, including the noisiest sections—negotiations, background music, silence, overlapping speech. The closer the sample is to production traffic, the more accurate the preliminary assessment.
  • Ground-truth markup: at least for part of the files—where exactly is speech, where is a pause, where is speech against noise. Without ground truth, we cannot measure the completeness and accuracy of segmentation.
  • Channel description: number of tracks, sampling rate, bit depth, presence of echo and echo cancellation, microphones and their placement, share of music and silence in the stream.
  • Latency and accuracy requirements: permissible per-frame decision latency, acceptable share of missed speech and false inclusions, whether short insertions and breaths are critical.
  • Current processing scheme: where audio is currently cut, with what exactly, what is unsatisfactory, whether there are already complaints from users or operators.
  • Integration points: where the result should be output—to a file, to a stream, to a message queue; which languages and environments are on the receiving side.

From this we assemble a plan: a segmentation scheme, a set of checks on your ground truth, and acceptance criteria in measurable quantities. Describe the task and attach samples—we will come back with an estimate and a stage-by-stage work plan.