Skip to main content

end-of-speech-integration

Add or modify end-of-speech integrations in assistant-api with strict separation from VAD internals. Use for transcript/audio/history-aware turn-finalization logic, provider wiring, and EOS UI config.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
rapidaai/voice-ai
آخر نشاط في المصدر
٢٣ أغسطس ٢٠٢٦ في ٠٧:٢٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧٣٣
التفرعات
١٢٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
4 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
end-of-speech-integration
description
Add or modify end-of-speech integrations in assistant-api with strict separation from VAD internals. Use for transcript/audio/history-aware turn-finalization logic, provider wiring, and EOS UI config.
# End Of Speech Integration Skill ## Mission Implement EOS that finalizes each user turn exactly once, at low latency, without mutating VAD behavior. ## Hard boundaries In scope: - `api/assistant-api/internal/end_of_speech/internal/<provider>/...` - `api/assistant-api/internal/end_of_speech/end_of_speech.go` (factory registration) - `api/assistant-api/internal/type/end_of_speech.go` and packet compatibility only if required - EOS config in `ui/src/providers/<provider>/eos.json` (plus optional `model-options.json`) - EOS UI rendering under `ui/src/app/components/providers/end-of-speech/` Out of scope: - `api/assistant-api/internal/vad/internal/...` implementation changes - `api/assistant-api/internal/vad/vad.go` provider logic changes - STT/TTS/telephony provider implementation changes ## Inputs expected from user 1. EOS signal mode: transcript-only, audio-model, or history-aware model. 2. Priority: lower latency or lower false-finalization. 3. Any deployment/model constraints. If user does not answer: - Use transcript-only (`silence_based_eos`) for text/STT driven flows. - Keep defaults for `threshold`, `quick_timeout`, `silence_timeout`. ## Packet contract Accepted packet inputs depend on provider strategy: - transcript flow: `SpeechToTextPacket`, `UserTextPacket` - timing/reset flow: `InterruptionPacket`, `VadSpeechActivityPacket` - model-aware flow: optional `UserAudioPacket`, `LLMResponseDonePacket` Required outputs: - `InterimEndOfSpeechPacket` - `EndOfSpeechPacket` (once per utterance) - `ConversationEventPacket{Name:"eos", ...}` ## Implementation workflow 1. Choose baseline provider to clone: - transcript timer: `internal/silence_based/...` - audio smart-turn: `internal/pipecat/...` - history/model-aware: `internal/livekit/...` 2. Add new provider package under `internal/<provider>/`. 3. Register provider constant and switch case in `end_of_speech.go`. 4. Ensure interim/final packet ordering is stable and deduplicated. 5. Add/update EOS UI config JSON and component mapping. 6. Add tests for interruption, interim reset, timeout, and duplicate-final guard. ## Done criteria - Provider selectable via `microphone.eos.provider`. - No edits under `api/assistant-api/internal/vad/internal/`. - Final EOS emitted once per turn in tests. - Config loads via `ui/src/providers/config-loader.ts` path resolution. ## 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/end_of_speech/...` - `go test ./api/assistant-api/internal/adapters/internal/...` - `cd ui && yarn test providers` - `./.claude/skills/end-of-speech-integration/scripts/validate.sh --check-diff --provider <provider>`
عرض على GitHub