Anam avatar plugin for Vision Agents
Project description
Anam Avatar Plugin for Vision Agents
Add real-time interactive avatar video to your AI agents using Anam's avatar API.
Features
- Real-time avatar video and audio synchronized with TTS output
- Audio passthrough mode for high-quality voice reproduction
- Automatic interruption when the user starts speaking
- Works with any TTS provider (ElevenLabs, Cartesia, etc.) or Realtime LLMs
- Configurable video resolution (default 1920x1080)
Installation
uv add "vision-agents[anam]"
# or directly
uv add vision-agents-plugins-anam
Quick Start
import asyncio
from uuid import uuid4
from dotenv import load_dotenv
from vision_agents.core import User, Agent
from vision_agents.plugins import deepgram, elevenlabs, getstream, gemini
from vision_agents.plugins.anam import AnamAvatarPublisher
load_dotenv()
async def start_avatar_agent():
agent = Agent(
edge=getstream.Edge(),
agent_user=User(name="AI Assistant with Avatar", id="agent"),
instructions="You're a friendly AI assistant.",
llm=gemini.LLM(),
tts=elevenlabs.TTS(),
stt=deepgram.STT(),
processors=[AnamAvatarPublisher()],
)
call = await agent.create_call("default", str(uuid4()))
async with agent.join(call):
await agent.simple_response("Say hello.")
await agent.finish()
if __name__ == "__main__":
asyncio.run(start_avatar_agent())
Configuration
Environment Variables
ANAM_API_KEY=your_anam_api_key
ANAM_AVATAR_ID=your_anam_avatar_id
AvatarPublisher Options
AnamAvatarPublisher(
avatar_id=None, # Anam avatar ID (or set ANAM_AVATAR_ID env var)
api_key=None, # Anam API key (or set ANAM_API_KEY env var)
client_options=None, # Optional Anam ClientOptions for advanced configuration
connect_timeout=None, # Seconds to wait for connection (None = wait indefinitely)
session_ready_timeout=None, # Seconds to wait for session ready (None = wait indefinitely)
width=1920, # Output video width in pixels
height=1080, # Output video height in pixels
)
How It Works
- Anam Connection: Connects to Anam's avatar service and waits for the session to become ready
- Audio Forwarding: TTS audio from the agent is resampled to 24kHz mono and streamed to Anam
- Avatar Generation: Anam generates synchronized avatar video and lip-synced audio from the input
- Video Streaming: Avatar video and audio frames are streamed back to call participants via GetStream Edge
Requirements
- Python 3.10+
- Anam API key and avatar ID (get them at anam.ai)
- GetStream account for video calls
- TTS provider (ElevenLabs, Cartesia, etc.) or Realtime LLM
License
MIT
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vision_agents_plugins_anam-0.5.5.tar.gz.
File metadata
- Download URL: vision_agents_plugins_anam-0.5.5.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b53e7d7360e3f36965d1b5db15ef0429bee9e60b198c60ae661f72d1100054
|
|
| MD5 |
70566832fd7a63e191cacaa03fbf874b
|
|
| BLAKE2b-256 |
7681d0d98c4ec8992916053f2c664beec62180e325ad3b54008d27a6f613323b
|
File details
Details for the file vision_agents_plugins_anam-0.5.5-py3-none-any.whl.
File metadata
- Download URL: vision_agents_plugins_anam-0.5.5-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
469cee980510cb7ab205818668e37ba10eae9006f7767dbc9d7b3794852d8cb5
|
|
| MD5 |
6337841d1c927b94ce49592a46cb95d9
|
|
| BLAKE2b-256 |
e8c7ca409e2a45ccdcbd5d58f32ad7f8e99d6db1e9181a1a1dc9183a1e4ab648
|