Skip to main content

vad-integration

Add or modify VAD providers and tuning in assistant-api with strict separation from EOS internals. Use for speech activity detection engines, provider registration, and VAD config wiring.

Jump to install

Source facts

Repository
rapidaai/voice-ai
Last source activity
August 23, 2026 at 07:23
Detected SKILL.md language
English
Stars
729
Forks
120

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
vad-integration
description
Add or modify VAD providers and tuning in assistant-api with strict separation from EOS internals. Use for speech activity detection engines, provider registration, and VAD config wiring.
# VAD Integration Skill ## Mission Implement VAD providers that generate stable interruption/speech-activity signals with low false positives. ## Hard boundaries In scope: - `api/assistant-api/internal/vad/internal/<provider>/...` - `api/assistant-api/internal/vad/vad.go` - VAD contract compatibility in `api/assistant-api/internal/type/vad.go` and packet usage as needed - VAD config in `ui/src/providers/<provider>/vad.json` Out of scope: - `api/assistant-api/internal/end_of_speech/internal/...` - EOS provider selection/factory behavior - telephony/STT/TTS implementation logic ## Inputs expected from user 1. Detector type: ONNX, native library, or external SDK. 2. Input format assumptions (sample rate/channels). 3. Target tradeoff: faster interrupt vs fewer false triggers. If user does not answer: - Assume 16kHz LINEAR16 mono platform internal input. - Keep existing defaults for threshold/speech/silence frame windows. ## Packet contract Input: - `UserAudioPacket` via dispatcher VAD path Required outputs: - `InterruptionPacket{Source:"vad"}` on speech onset - `VadSpeechActivityPacket` heartbeat while speech continues - optional `ConversationEventPacket{Name:"vad"}` for diagnostics ## Implementation workflow 1. Pick nearest baseline (`silero_vad`, `ten_vad`, `firered_vad`). 2. Create provider package in `internal/<provider>/`. 3. Register provider in `vad.go` switch. 4. Ensure lifecycle safety (`Close`, context cancellation, resource cleanup). 5. Add/update UI config and provider docs. 6. Add unit + benchmark tests for threshold/frame edge-cases. ## Done criteria - Provider selectable by `microphone.vad.provider`. - No edits under EOS provider internals. - Interruption and heartbeat semantics proven in tests. ## Governed lifecycle - Classify work as Fast, Standard, or Governed using `DEVELOPMENT_PROCESS.md`; use the full gated lifecycle only for Governed work. - This skill operates only in its assigned phase and path ownership; it may not approve its own plan or code review. - Governed implementation starts only from a coordinator-attested approved plan; Fast and Standard work follows its lighter documented lifecycle. - Return changed-file and verification evidence to the coordinator, then route the complete verified diff to the read-only `code-reviewer`. ## Validation commands - `go test ./api/assistant-api/internal/vad/...` - `go test -bench=. ./api/assistant-api/internal/vad/internal/<provider>/...` - `cd ui && yarn test providers` - `./.claude/skills/vad-integration/scripts/validate.sh --check-diff --provider <provider>`
View on GitHub