Skip to content

Release Notes: v0.2.0

Release Date: 2026-07-06

Summary

This release adds lip-sync avatar support via Tavus integration, enabling realistic talking head video for voice AI agents. It also updates the voice pipeline documentation to highlight voice-to-voice capabilities for lower latency.

Highlights

  • Lip-Sync Avatars via Tavus: Realistic talking head video synchronized with agent speech
  • tavus-go SDK Integration: Type-safe Go SDK for Tavus CVI (Conversational Video Interface)
  • Voice-to-Voice Support: Lower latency option using OmniVoice's direct voice transformation
  • Enhanced Voice Pipeline: Comprehensive STT → LLM → TTS documentation

Features

Avatar Package

The new avatar package provides infrastructure for avatar session management:

import "github.com/plexusone/omni-livekit/avatar"

// Session interface for avatar lifecycle
type Session interface {
    Start(ctx context.Context) error
    Stop() error
    AudioDestination() AudioDestination
}

// AudioDestination for streaming audio to avatars
type AudioDestination interface {
    Write(samples []int16) error
}

Tavus Provider

Lip-sync avatar integration using the tavus-go SDK:

import "github.com/plexusone/omni-livekit/avatar/tavus"

// Create Tavus client
client, _ := tavus.NewClient(tavus.ClientConfig{
    APIKey: os.Getenv("TAVUS_API_KEY"),
})

// Create conversation with LiveKit transport
resp, _ := client.CreateConversation(ctx, tavus.CreateConversationRequest{
    PalID:        "your-pal-id",
    LiveKitURL:   os.Getenv("LIVEKIT_URL"),
    LiveKitToken: token,
})

Voice Pipeline

The voice pipeline architecture supports two modes:

Standard Pipeline (STT → LLM → TTS):

Audio In → STT → Text → LLM → Text → TTS → Audio Out

Providers supported:

  • STT: Deepgram, Google, OpenAI Whisper
  • LLM: OpenAI, Anthropic, and any OpenAI-compatible endpoint
  • TTS: ElevenLabs, OpenAI, Google

Voice-to-Voice (Lower Latency):

Audio In → Voice Model → Audio Out

OmniVoice supports direct voice-to-voice with:

  • Deepgram Nova-3 Voice Agent
  • Google Gemini Live
  • OpenAI Realtime API

Voice-to-voice reduces latency by eliminating the text intermediate step.

Audio Streaming

Flexible audio output options for different use cases:

// DataStream output for LiveKit ByteStream
output := avatar.NewDataStreamAudioOutput(room, destIdentity)

// Queue output for local testing
output := avatar.NewQueueAudioOutput()

Token Generation

Support for lk.publish_on_behalf capability for avatar video publishing:

import "github.com/plexusone/omni-livekit/avatar"

// Generate token with publish-on-behalf capability
token, _ := avatar.GenerateAvatarToken(avatar.TokenConfig{
    APIKey:        os.Getenv("LIVEKIT_API_KEY"),
    APISecret:     os.Getenv("LIVEKIT_API_SECRET"),
    RoomName:      "my-room",
    AvatarID:      "tavus-avatar",
    OnBehalfOf:    "ai-agent",  // Avatar publishes as agent
})

Dependencies

Dependency Version
tavus-go v0.2.0
livekit/server-sdk-go/v2 v2.17.0
omnimeet-core v0.1.0
omnivoice v0.13.0
omnivoice-core v0.15.0

Installation

go get github.com/plexusone/omni-livekit@v0.2.0

Documentation