Environment setup

Welcome! I'm Param. In this course we are going to build something that still feels a little bit like magic the first time you run it. A voice agent that you can actually talk to. It listens through your microphone, thinks with an LLM, calls tools, and speaks back in a natural voice.

The project we ship together is a restaurant ordering agent. You walk up to a microphone, tell it what you want to eat, and it confirms the order. Behind that simple experience sits a LiveKit room for audio transport, Deepgram for speech to text and text to speech, an LLM for reasoning, and a set of Python tools the agent calls during the conversation.

The voice AI stack

How audio flows between the browser, LiveKit, your agent, and Deepgram.

terminal
bash
# Clone the workshop repository
git clone https://github.com/learnwithparam/voice-ai-livekit.git
cd voice-ai-livekit

# Set up the Python environment with uv
uv sync

This clones the project and installs the Python dependencies using uv. You get the LiveKit agents SDK, Deepgram plugins, and the Silero VAD model all in one shot.

.env
bash
# Copy the example and fill in your keys
cp .env.example .env

# LiveKit (from https://cloud.livekit.io)
LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your_api_key
LIVEKIT_API_SECRET=your_api_secret

# Deepgram (from https://console.deepgram.com)
DEEPGRAM_API_KEY=your_deepgram_key

# LLM provider (Fireworks or OpenRouter)
FIREWORKS_API_KEY=your_fireworks_key

Three accounts, three sets of keys. LiveKit gives you the room and token infrastructure. Deepgram powers STT and TTS. The LLM provider handles reasoning.

Validation checklist: Environment checklist

Loading practice…