# --- Avaturn Live --------------------------------------------------------- # Avaturn Live (avaturn.live) — the real-time AI avatar product. # Get a key from https://avaturn.live → Dashboard → API Keys. AVATURN_LIVE_API_KEY= AVATURN_LIVE_API_URL=https://api.avaturn.live # Available avatar IDs are listed at https://avaturn.live/dashboard. AVATURN_LIVE_DEFAULT_AVATAR_ID=vibecoding_ceo # --- Conversation engine target ------------------------------------------- # Pick one of the two modes below. Leave the other set's fields empty. # # Mode 1: SELF-HOST (engine runs in this process) # For local dev expose this process via a tunnel, e.g. # cloudflared tunnel --url http://localhost:8000 # and put the wss:// URL it prints here. In prod use your deployed origin. CONVERSATION_ENGINE_PUBLIC_URL=ws://localhost:8000 CONVERSATION_ENGINE_WS_PATH=/avaturn-live/ws # REQUIRED for any internet-facing self-host: generate with `openssl rand -hex 32`. # Without it, anyone who finds your WS URL can attach and burn OpenAI tokens. # CONVERSATION_ENGINE_SHARED_SECRET= # Mode 2: PIPECAT CLOUD (engine runs as a PCC agent) # When both PIPECAT_CLOUD_* vars are set, the broker calls PCC's /start per # session and ignores the CONVERSATION_ENGINE_* settings above. PCC's HMAC # token replaces the shared secret. # PIPECAT_CLOUD_PUBLIC_KEY=pk_... # PIPECAT_CLOUD_AGENT_NAME=avaturn-live-demo # PIPECAT_CLOUD_API_URL=https://api.pipecat.daily.co # --- Pipecat pipeline selector -------------------------------------------- # "openai_realtime" (default) — OpenAI Realtime speech-to-speech in one service. # "cascaded" — Cartesia Ink Whisper STT → OpenAI LLM → # Cartesia Sonic 3.5 TTS, with local Smart Turn V3 # end-of-turn detection on top of Silero VAD. # "nvidia_nemotron" — NVIDIA Nemotron ASR (Parakeet) → Nemotron 3 # Nano LLM → Magpie TTS, with the same Smart # Turn V3 + Silero VAD stack as "cascaded". PIPELINE=openai_realtime # --- Shared (both pipelines) ---------------------------------------------- # OPENAI_API_KEY: self-host only. In PCC mode set it as a pcc secret instead # (see README → "Deploying to Pipecat Cloud"). OPENAI_API_KEY= SYSTEM_PROMPT="You are a friendly AI avatar in a real-time video chat. Keep responses concise — one or two short sentences at a time — and let the user steer the conversation." # --- OpenAI Realtime (PIPELINE=openai_realtime) --------------------------- OPENAI_REALTIME_MODEL=gpt-realtime-1.5 OPENAI_REALTIME_VOICE=cedar OPENAI_REALTIME_TRANSCRIBE_MODEL=gpt-4o-transcribe # --- Cascaded pipeline (PIPELINE=cascaded) -------------------------------- # OpenAI LLM model routed through the Responses API. `gpt-5.5` is the # recommended model for that surface; override here if you want a different # snapshot (e.g. a dated version) or "chat-latest" for auto-updates. OPENAI_LLM_MODEL=gpt-5.5 # Cartesia API key — required when PIPELINE=cascaded. Self-host only; in PCC # mode set it as a pcc secret instead (see README → "Deploying to Pipecat # Cloud"). Get one at https://play.cartesia.ai → Dashboard → API Keys. CARTESIA_API_KEY= CARTESIA_STT_MODEL=ink-whisper CARTESIA_TTS_MODEL=sonic-3.5 # Default male Cartesia voice on Sonic 3.5. Browse other voices at # https://play.cartesia.ai/voices. CARTESIA_VOICE=7d444628-dd13-442b-b687-71a6baf0c07e CARTESIA_LANGUAGE=en # --- NVIDIA Nemotron pipeline (PIPELINE=nvidia_nemotron) ------------------ # Single API key powers all three NVIDIA services (NVCF for STT/TTS via gRPC, # NIM for LLM via REST). Self-host only; in PCC mode set it as a pcc secret. # Get one at https://build.nvidia.com → API Keys. NVIDIA_API_KEY= # Endpoints — override for self-hosted Riva (STT/TTS) or NIM (LLM). NVIDIA_SERVER=grpc.nvcf.nvidia.com:443 NVIDIA_LLM_BASE_URL=https://integrate.api.nvidia.com/v1 # LLM model — any NIM-hosted Nemotron variant. NVIDIA_LLM_MODEL=nvidia/nemotron-3-nano-30b-a3b # Magpie multilingual voice id. Browse voices at # https://docs.nvidia.com/nim/speech/latest/tts/voices.html → Magpie voices. NVIDIA_VOICE=Magpie-Multilingual.EN-US.Leo # Intentionally not exposed as env vars: # * STT model (nemotron-asr-streaming / Parakeet) and TTS model # (magpie-tts-multilingual) — NVIDIA's gRPC endpoint pairs each model # with a function_id and they ship together in pipecat's defaults. # Override in code if you need a different ASR/TTS variant. # * Language — NVIDIA's services take a Language enum (not a string), so # a string env var would either silently lock English or invite broken # values. Defaults to EN-US; for multilingual TTS pick a non-EN Magpie # voice above and override Settings.language in code if STT needs a # different locale.