User Guide · 10

Voice Interaction

10.1 Voice Input (Chat Box)

  • Click microphone button to start recording
  • Click again to stop → auto-transcribed into input field
  • Press Esc during recording to cancel (doesn't send)
  • Transcription uses STT_API_KEY (default OpenAI Whisper; overridable in per-admin API Keys)

10.2 Realtime Voice Call (LiveKit)

Path: Settings → Voice

LiveKit WebRTC copilot for realtime conversation; complex tasks are delegated to the OpenJellyfish main Agent (same thread_id and conversation history as text chat).

Prerequisites: deployer configures LiveKit Server, voice worker plugin, and env vars (LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET, VOICE_BRIDGE_SECRET, etc.).

Tunable in Voice settings:

  • Greeting, system prompt, routing policy, interruption rules
  • STT: OpenAI / Fish Audio / Alibaba Paraformer
  • Frontend LLM: same catalog as Chat (via Core OpenAI-compatible gateway)
  • TTS: OpenAI / Fish Audio / Alibaba CosyVoice

Use Test call in Voice settings to try a session.

10.3 Realtime Voice (S2S WebSocket, legacy)

  • WebSocket proxy to OpenAI Realtime API (/api/voice/ws)
  • For third-party clients; React UI primarily uses LiveKit (§10.2)