Simli Avatar
The Simli Avatar plugin allows you to integrate a real-time, lip-synced AI avatar into your VideoSDK agent. This creates a more engaging and interactive experience for users by providing a visual representation of the AI agent.
Installation
Install the Simli-enabled VideoSDK Agents package:
pip install "videosdk-plugins-simli"
Authentication
The Simli plugin requires an Simli API key.
Set SIMLI_API_KEY
in your .env
file.
Importing
from videosdk.plugins.simli import SimliAvatar, SimliConfig
Setup Credentials
To use Simli, you need an API key. You can get one from the Simli Dashboard.
Set up your credentials by exporting them as an environment variable:
export SIMLI_API_KEY="YOUR_SIMLI_API_KEY"
You can also provide a faceId
if you have a custom one.
export SIMLI_FACE_ID="YOUR_FACE_ID"
Example Usage
Here's how you can integrate the Simli Avatar with both CascadingPipeline
and RealTimePipeline
.
Cascading Pipeline
This example shows how to add the Simli Avatar to a CascadingPipeline
.
import os
from videosdk.agents import CascadingPipeline
from videosdk.plugins.simli import SimliAvatar, SimliConfig
# Import other necessary components like STT, LLM, TTS
# 1. Initialize SimliConfig
simli_config = SimliConfig(
apiKey=os.getenv("SIMLI_API_KEY"),
faceId=os.getenv("SIMLI_FACE_ID"), # This is optional and has a default value
)
# 2. Create a SimliAvatar instance
simli_avatar = SimliAvatar(config=simli_config)
# 3. Add the avatar to the pipeline
pipeline = CascadingPipeline(
# ... stt=stt, llm=llm, tts=tts
avatar=simli_avatar
)
Real-time Pipeline
This example shows how to add the Simli Avatar to a RealTimePipeline
.
import os
from videosdk.agents import RealTimePipeline
from videosdk.plugins.simli import SimliAvatar, SimliConfig
# from videosdk.plugins.google import GeminiRealtime # Example model
# 1. Initialize SimliConfig
simli_config = SimliConfig(
apiKey=os.getenv("SIMLI_API_KEY"),
)
# 2. Create a SimliAvatar instance
simli_avatar = SimliAvatar(config=simli_config)
# 3. Add the avatar to the pipeline
pipeline = RealTimePipeline(
model=your_realtime_model, # e.g., GeminiRealtime()
avatar=simli_avatar
)
When using an environment variable for credentials, you should still load it in your code using os.getenv("SIMLI_API_KEY")
and pass it to SimliConfig
.
Configuration Options
You can customize the avatar's behavior using the SimliConfig
and SimliAvatar
classes.
SimliConfig
faceId
: (str, optional) The ID for the avatar face. You can find available faces in the Simli Docs or create your own. Defaults to"0c2b8b04-5274-41f1-a21c-d5c98322efa9"
.maxSessionLength
: (int, optional) A hard time limit in seconds after which the session will disconnect. Defaults to1800
(30 minutes).maxIdleTime
: (int, optional) A soft time limit in seconds that disconnects the session after a period of not sending data. Defaults to300
(5 minutes).
SimliAvatar
config
: (SimliConfig
) ASimliConfig
object with your desired settings.
Additional Resources
The following resources provide more information about using Simli with VideoSDK Agents SDK.
-
Python package: The
videosdk-plugins-simli
package on PyPI. -
GitHub repo: View the source or contribute to the VideoSDK Simli Virtual Avatar.
-
Simli docs: Simli docs.
Got a Question? Ask us on discord