Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
evals
command
evals runs eval scenarios from a JSON config (LLM-only pipeline, prompt → assert on output).
|
evals runs eval scenarios from a JSON config (LLM-only pipeline, prompt → assert on output). |
|
generate-dtmf
command
generate-dtmf generates DTMF WAV files (0-9, *, #) using pkg/audio.
|
generate-dtmf generates DTMF WAV files (0-9, *, #) using pkg/audio. |
|
realtime-demo
command
|
|
|
Package docs Code generated by swaggo/swag.
|
Package docs Code generated by swaggo/swag. |
|
voice
command
|
|
|
pkg
|
|
|
api
Package api provides shared REST API response envelope and error types.
|
Package api provides shared REST API response envelope and error types. |
|
audio
Package audio provides A-law (G.711 PCMA) encode/decode for 16-bit mono PCM.
|
Package audio provides A-law (G.711 PCMA) encode/decode for 16-bit mono PCM. |
|
audio/turn
Package turn provides end-of-turn detection for audio conversations (base turn analyzer + silence-based smart turn).
|
Package turn provides end-of-turn detection for audio conversations (base turn analyzer + silence-based smart turn). |
|
config
Package config handles the application configuration, including environment variables and JSON files.
|
Package config handles the application configuration, including environment variables and JSON files. |
|
evals
Package evals provides a Go-native eval runner for voice pipeline scenarios.
|
Package evals provides a Go-native eval runner for voice pipeline scenarios. |
|
extensions/ivr
Package ivr provides Interactive Voice Response (IVR) navigation components for automated IVR phone system navigation using LLM-based decision making and DTMF.
|
Package ivr provides Interactive Voice Response (IVR) navigation components for automated IVR phone system navigation using LLM-based decision making and DTMF. |
|
extensions/voicemail
Package voicemail provides ClassificationProcessor for voicemail vs conversation detection.
|
Package voicemail provides ClassificationProcessor for voicemail vs conversation detection. |
|
frames
Package frames defines DTMF and IVR-related frame types.
|
Package frames defines DTMF and IVR-related frame types. |
|
frames/proto/wire
Package wire provides frame wire formats.
|
Package wire provides frame wire formats. |
|
frames/serialize
Package serialize provides frame serialization interfaces and implementations.
|
Package serialize provides frame serialization interfaces and implementations. |
|
frames/serialize/exotel
Package exotel provides Exotel Media Streams WebSocket protocol serializer.
|
Package exotel provides Exotel Media Streams WebSocket protocol serializer. |
|
frames/serialize/genesys
Package genesys provides Genesys AudioHook WebSocket protocol serializer.
|
Package genesys provides Genesys AudioHook WebSocket protocol serializer. |
|
frames/serialize/plivo
Package plivo provides Plivo Audio Streaming WebSocket protocol serializer.
|
Package plivo provides Plivo Audio Streaming WebSocket protocol serializer. |
|
frames/serialize/telnyx
Package telnyx provides Telnyx WebSocket protocol serializer.
|
Package telnyx provides Telnyx WebSocket protocol serializer. |
|
frames/serialize/twilio
Package twilio provides Twilio Media Streams WebSocket protocol serializer.
|
Package twilio provides Twilio Media Streams WebSocket protocol serializer. |
|
frames/serialize/vonage
Package vonage provides Vonage Audio Connector WebSocket serializer.
|
Package vonage provides Vonage Audio Connector WebSocket serializer. |
|
logger
Package logger provides minimal logging for Voxray.
|
Package logger provides minimal logging for Voxray. |
|
mcp
Package mcp: Client connects to an MCP server, lists tools, converts schemas, and can register them with an LLMServiceWithTools.
|
Package mcp: Client connects to an MCP server, lists tools, converts schemas, and can register them with an LLMServiceWithTools. |
|
observers
Package observers provides optional metrics (latency, token usage) and OpenTelemetry stub.
|
Package observers provides optional metrics (latency, token usage) and OpenTelemetry stub. |
|
pipeline
Package pipeline provides ParallelPipeline for concurrent frame processing.
|
Package pipeline provides ParallelPipeline for concurrent frame processing. |
|
processors
Package processors: AIServiceBase provides a base for AI services with settings, Start/Stop/Cancel lifecycle, and optional metrics sync (mirrors upstream ai_service.py).
|
Package processors: AIServiceBase provides a base for AI services with settings, Start/Stop/Cancel lifecycle, and optional metrics sync (mirrors upstream ai_service.py). |
|
processors/aggregator
Package aggregator provides a processor that collects text frames and emits a single aggregated frame (e.g.
|
Package aggregator provides a processor that collects text frames and emits a single aggregated frame (e.g. |
|
processors/aggregators/dtmf
Package dtmf provides a DTMF aggregator that accumulates InputDTMFFrame digits and emits TranscriptionFrame on timeout, termination digit (#), or EndFrame/CancelFrame.
|
Package dtmf provides a DTMF aggregator that accumulates InputDTMFFrame digits and emits TranscriptionFrame on timeout, termination digit (#), or EndFrame/CancelFrame. |
|
processors/aggregators/gated
Package gated provides a gated aggregator that buffers frames when the gate is closed and releases them when the gate opens (custom open/close predicates).
|
Package gated provides a gated aggregator that buffers frames when the gate is closed and releases them when the gate opens (custom open/close predicates). |
|
processors/aggregators/gatedcontext
Package gatedcontext provides a processor that holds LLMContextFrame until a notifier signals release.
|
Package gatedcontext provides a processor that holds LLMContextFrame until a notifier signals release. |
|
processors/aggregators/llmcontextsummarizer
Package llmcontextsummarizer provides a processor that monitors LLM context size and emits LLMContextSummaryRequestFrame when thresholds are exceeded; applies results from LLMContextSummaryResultFrame.
|
Package llmcontextsummarizer provides a processor that monitors LLM context size and emits LLMContextSummaryRequestFrame when thresholds are exceeded; applies results from LLMContextSummaryResultFrame. |
|
processors/aggregators/llmfullresponse
Package llmfullresponse provides a processor that aggregates LLM text between LLMFullResponseStartFrame and LLMFullResponseEndFrame and invokes a callback on completion or interruption.
|
Package llmfullresponse provides a processor that aggregates LLM text between LLMFullResponseStartFrame and LLMFullResponseEndFrame and invokes a callback on completion or interruption. |
|
processors/aggregators/llmtext
Package llmtext provides a processor that converts LLMTextFrame to AggregatedTextFrame using a configurable text aggregator (e.g.
|
Package llmtext provides a processor that converts LLMTextFrame to AggregatedTextFrame using a configurable text aggregator (e.g. |
|
processors/aggregators/userresponse
Package userresponse provides a processor that aggregates TranscriptionFrame into a single TextFrame when the user turn ends (e.g.
|
Package userresponse provides a processor that aggregates TranscriptionFrame into a single TextFrame when the user turn ends (e.g. |
|
processors/audio
Package audio provides audio processors for the pipeline: VAD (voice activity detection) and an audio buffer processor that merges user and bot audio with optional turn-based and buffered callbacks.
|
Package audio provides audio processors for the pipeline: VAD (voice activity detection) and an audio buffer processor that merges user and bot audio with optional turn-based and buffered callbacks. |
|
processors/filters
Package filters provides frame-filtering processors for the pipeline, ported from upstream processors/filters: frame_filter, function_filter, identity_filter, null_filter, stt_mute_filter, wake_check_filter, wake_notifier_filter.
|
Package filters provides frame-filtering processors for the pipeline, ported from upstream processors/filters: frame_filter, function_filter, identity_filter, null_filter, stt_mute_filter, wake_check_filter, wake_notifier_filter. |
|
processors/frameworks
Package frameworks provides processor integrations for external runtimes and the RTVI protocol, ported from upstream processors/frameworks.
|
Package frameworks provides processor integrations for external runtimes and the RTVI protocol, ported from upstream processors/frameworks. |
|
processors/frameworks/rtvi
Package rtvi implements the RTVI (Real-Time Voice Interface) protocol processor and message types.
|
Package rtvi implements the RTVI (Real-Time Voice Interface) protocol processor and message types. |
|
processors/voice
Package voice provides processors that wire STT, LLM, and TTS into a pipeline.
|
Package voice provides processors that wire STT, LLM, and TTS into a pipeline. |
|
realtime
Package realtime provides realtime session implementations (OpenAI Realtime API and shim).
|
Package realtime provides realtime session implementations (OpenAI Realtime API and shim). |
|
runner
Package runner provides Redis-backed session store for horizontal scaling.
|
Package runner provides Redis-backed session store for horizontal scaling. |
|
runner/daily
Package daily provides Daily.co room and meeting token creation via the REST API (runner Daily integration).
|
Package daily provides Daily.co room and meeting token creation via the REST API (runner Daily integration). |
|
runner/livekit
Package livekit provides LiveKit room URL and agent token configuration from environment (runner Livekit integration).
|
Package livekit provides LiveKit room URL and agent token configuration from environment (runner Livekit integration). |
|
server
Package server provides transport servers (e.g.
|
Package server provides transport servers (e.g. |
|
services
Package services defines interfaces and implementations for LLM, STT, and TTS.
|
Package services defines interfaces and implementations for LLM, STT, and TTS. |
|
services/camb
Package camb provides Camb AI speech-to-text.
|
Package camb provides Camb AI speech-to-text. |
|
services/cerebras
Package cerebras provides Cerebras inference API-backed LLM via OpenAI-compatible API.
|
Package cerebras provides Cerebras inference API-backed LLM via OpenAI-compatible API. |
|
services/deepseek
Package deepseek provides DeepSeek-backed LLM via OpenAI-compatible API.
|
Package deepseek provides DeepSeek-backed LLM via OpenAI-compatible API. |
|
services/google
Package google provides Google Gemini LLM, Vertex AI LLM, and Google Cloud STT/TTS services.
|
Package google provides Google Gemini LLM, Vertex AI LLM, and Google Cloud STT/TTS services. |
|
services/gradium
Package gradium provides Gradium speech-to-text (WebSocket or REST).
|
Package gradium provides Gradium speech-to-text (WebSocket or REST). |
|
services/grok
Package grok provides xAI Grok-backed LLM via OpenAI-compatible API.
|
Package grok provides xAI Grok-backed LLM via OpenAI-compatible API. |
|
services/groq
Package groq provides Groq-backed LLM, STT, and TTS via OpenAI-compatible API.
|
Package groq provides Groq-backed LLM, STT, and TTS via OpenAI-compatible API. |
|
services/hume
Package hume provides Hume (Hume AI) text-to-speech.
|
Package hume provides Hume (Hume AI) text-to-speech. |
|
services/inworld
Package inworld provides Inworld text-to-speech (and LLM).
|
Package inworld provides Inworld text-to-speech (and LLM). |
|
services/llmapi
Package llmapi defines LLM and tool-calling interfaces so that implementers (e.g.
|
Package llmapi defines LLM and tool-calling interfaces so that implementers (e.g. |
|
services/minimax
Package minimax provides Minimax text-to-speech.
|
Package minimax provides Minimax text-to-speech. |
|
services/mistral
Package mistral provides Mistral AI-backed LLM via OpenAI-compatible API.
|
Package mistral provides Mistral AI-backed LLM via OpenAI-compatible API. |
|
services/mock
Package mock provides mock STT, LLM, and TTS services for testing and stress testing without calling real APIs.
|
Package mock provides mock STT, LLM, and TTS services for testing and stress testing without calling real APIs. |
|
services/neuphonic
Package neuphonic provides Neuphonic text-to-speech (HTTP SSE streaming).
|
Package neuphonic provides Neuphonic text-to-speech (HTTP SSE streaming). |
|
services/ollama
Package ollama provides Ollama-backed LLM via OpenAI-compatible API (localhost or custom base URL).
|
Package ollama provides Ollama-backed LLM via OpenAI-compatible API (localhost or custom base URL). |
|
services/openai
Package openai provides OpenAI-based LLM (and optionally STT/TTS) for Voxray.
|
Package openai provides OpenAI-based LLM (and optionally STT/TTS) for Voxray. |
|
services/openpipe
Package openpipe provides OpenPipe-backed LLM via OpenAI-compatible API.
|
Package openpipe provides OpenPipe-backed LLM via OpenAI-compatible API. |
|
services/qwen
Package qwen provides Alibaba DashScope Qwen LLM via OpenAI-compatible API.
|
Package qwen provides Alibaba DashScope Qwen LLM via OpenAI-compatible API. |
|
services/sarvam
Package sarvam provides Sarvam AI TTS and STT service implementations.
|
Package sarvam provides Sarvam AI TTS and STT service implementations. |
|
services/soniox
Package soniox provides Soniox speech-to-text (WebSocket API used for batch Transcribe).
|
Package soniox provides Soniox speech-to-text (WebSocket API used for batch Transcribe). |
|
services/stt
Package stt provides STT service implementations (OpenAI Whisper, Groq Whisper).
|
Package stt provides STT service implementations (OpenAI Whisper, Groq Whisper). |
|
services/tts
Package tts provides TTS service implementations (OpenAI TTS, Groq TTS).
|
Package tts provides TTS service implementations (OpenAI TTS, Groq TTS). |
|
services/whisper
Package whisper provides Whisper API-backed STT (OpenAI or self-hosted compatible) with configurable base URL.
|
Package whisper provides Whisper API-backed STT (OpenAI or self-hosted compatible) with configurable base URL. |
|
services/xtts
Package xtts provides Coqui XTTS text-to-speech via local streaming server.
|
Package xtts provides Coqui XTTS text-to-speech via local streaming server. |
|
sync/notifier
Package notifier provides a one-shot notifier for gate synchronization.
|
Package notifier provides a one-shot notifier for gate synchronization. |
|
transport
Package transport defines an optional base for transports with common fields (name, logger).
|
Package transport defines an optional base for transports with common fields (name, logger). |
|
transport/memory
Package memory provides an in-memory transport for testing and stress testing.
|
Package memory provides an in-memory transport for testing and stress testing. |
|
transport/smallwebrtc
Package smallwebrtc provides a WebRTC transport for Voxray using pion/webrtc.
|
Package smallwebrtc provides a WebRTC transport for Voxray using pion/webrtc. |
|
transport/websocket
Package websocket provides WebSocket transport (server and client) for Voxray.
|
Package websocket provides WebSocket transport (server and client) for Voxray. |
|
transport/whatsapp
Package whatsapp provides WhatsApp Cloud API client and transport for Voxray.
|
Package whatsapp provides WhatsApp Cloud API client and transport for Voxray. |
|
utils
Package utils provides shared utilities (backoff, etc.).
|
Package utils provides shared utilities (backoff, etc.). |
|
utils/notifier
Package notifier provides a simple signal that one goroutine can wait on and another can trigger.
|
Package notifier provides a simple signal that one goroutine can wait on and another can trigger. |
|
utils/patternaggregator
Package patternaggregator provides XML-style tag aggregation for LLM text streams.
|
Package patternaggregator provides XML-style tag aggregation for LLM text streams. |
|
utils/sentence
Package sentence provides helpers for sentence-boundary detection in aggregated text.
|
Package sentence provides helpers for sentence-boundary detection in aggregated text. |
|
utils/textaggregator
Package textaggregator provides an interface and implementations for aggregating incremental text (e.g.
|
Package textaggregator provides an interface and implementations for aggregating incremental text (e.g. |
Click to show internal directories.
Click to hide internal directories.