Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions examples/avatar_agents/audio_wave/agent_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from livekit.agents.voice.avatar import DataStreamAudioOutput
from livekit.agents.voice.io import PlaybackFinishedEvent, PlaybackStartedEvent
from livekit.agents.voice.room_io import ATTRIBUTE_PUBLISH_ON_BEHALF
from livekit.plugins import silero

load_dotenv()

Expand Down Expand Up @@ -75,7 +74,7 @@ async def entrypoint(ctx: JobContext):
stt=inference.STT("deepgram/nova-3"),
llm=inference.LLM("google/gemini-2.5-flash"),
tts=inference.TTS("cartesia/sonic-3"),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
resume_false_interruption=False,
)

Expand Down
4 changes: 2 additions & 2 deletions examples/avatar_agents/keyframe/agent_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
inference,
)
from livekit.agents.inference import AudioTurnDetector
from livekit.plugins import keyframe, silero
from livekit.plugins import keyframe
from livekit.plugins.keyframe import Emotion

load_dotenv()
Expand Down Expand Up @@ -51,7 +51,7 @@ async def entrypoint(ctx: JobContext):
llm=inference.LLM("google/gemini-2.5-flash"),
tts=inference.TTS("cartesia/sonic-3"),
resume_false_interruption=False,
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
turn_detection=AudioTurnDetector(),
)

Expand Down
3 changes: 1 addition & 2 deletions examples/drive-thru/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
inference,
)
from livekit.agents.inference import AudioTurnDetector
from livekit.plugins import silero

load_dotenv()

Expand Down Expand Up @@ -488,7 +487,7 @@ async def drive_thru_agent(ctx: JobContext) -> None:
llm=inference.LLM("openai/gpt-5-mini"),
tts=inference.TTS("cartesia/sonic-3", voice="f786b574-daa5-4673-aa0c-cbe3e8534c02"),
turn_detection=AudioTurnDetector(),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
max_tool_steps=10,
)

Expand Down
3 changes: 1 addition & 2 deletions examples/frontdesk/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
tool_use_judge,
)
from livekit.agents.inference import AudioTurnDetector
from livekit.plugins import silero

load_dotenv()

Expand Down Expand Up @@ -267,7 +266,7 @@ async def frontdesk_agent(ctx: JobContext):
llm=inference.LLM("google/gemini-2.5-flash"),
tts=inference.TTS("cartesia/sonic-3", voice="39b376fc-488e-4d0c-8b37-e00b72059fdd"),
turn_detection=AudioTurnDetector(),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
max_tool_steps=1,
)

Expand Down
3 changes: 1 addition & 2 deletions examples/healthcare/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
WarmTransferTask,
)
from livekit.agents.llm import ToolError, function_tool
from livekit.plugins import silero

logger = logging.getLogger("HealthcareAgent")

Expand Down Expand Up @@ -754,7 +753,7 @@ async def entrypoint(ctx: JobContext):
stt=inference.STT("deepgram/nova-3", language="multi"),
llm=inference.LLM("openai/gpt-4.1-mini"),
tts=inference.TTS("inworld/inworld-tts-1"),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
preemptive_generation=True,
)

Expand Down
3 changes: 1 addition & 2 deletions examples/inference/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
cli,
inference,
)
from livekit.plugins import silero
from livekit.rtc import RpcInvocationData

logger = logging.getLogger("inference")
Expand Down Expand Up @@ -59,7 +58,7 @@ async def entrypoint(ctx: JobContext) -> None:
stt=inference.STT(model=DEFAULT_STT),
llm=inference.LLM(model=DEFAULT_LLM),
tts=inference.TTS(model=DEFAULT_TTS),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
)

def parse_value(payload: str, fallback: str) -> str:
Expand Down
13 changes: 3 additions & 10 deletions examples/other/elevenlab_scribe_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from dotenv import load_dotenv

from livekit.agents import Agent, AgentServer, AgentSession, JobContext, JobProcess, cli, inference
from livekit.plugins import elevenlabs, silero
from livekit.agents import Agent, AgentServer, AgentSession, JobContext, cli, inference
from livekit.plugins import elevenlabs

logger = logging.getLogger("realtime-scribe-v2")
logger.setLevel(logging.INFO)
Expand All @@ -14,13 +14,6 @@
server = AgentServer()


def prewarm(proc: JobProcess) -> None:
proc.userdata["vad"] = silero.VAD.load()


server.setup_fnc = prewarm


@server.rtc_session()
async def entrypoint(ctx: JobContext) -> None:
# Using ElevenLabs STT plugin directly for realtime mode support
Expand All @@ -37,7 +30,7 @@ async def entrypoint(ctx: JobContext) -> None:

session: AgentSession = AgentSession(
allow_interruptions=True,
vad=ctx.proc.userdata["vad"],
vad=inference.VAD(model="silero"),
stt=stt,
llm=inference.LLM("openai/gpt-4.1-mini"),
tts=inference.TTS("cartesia/sonic-3"),
Expand Down
21 changes: 11 additions & 10 deletions examples/other/kokoro_tts.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,17 @@

from dotenv import load_dotenv

from livekit.agents import Agent, AgentServer, AgentSession, JobContext, JobProcess, cli, metrics
from livekit.agents import (
Agent,
AgentServer,
AgentSession,
JobContext,
cli,
inference,
metrics,
)
from livekit.agents.voice import MetricsCollectedEvent
from livekit.plugins import deepgram, openai, silero
from livekit.plugins import deepgram, openai

logger = logging.getLogger("kokoro-tts-agent")

Expand All @@ -27,13 +35,6 @@ def __init__(self) -> None:
server = AgentServer()


def prewarm(proc: JobProcess):
proc.userdata["vad"] = silero.VAD.load()


server.setup_fnc = prewarm


@server.rtc_session()
async def entrypoint(ctx: JobContext):
# each log entry will include these fields
Expand All @@ -42,7 +43,7 @@ async def entrypoint(ctx: JobContext):
"user_id": "your user_id",
}
session = AgentSession(
vad=ctx.proc.userdata["vad"],
vad=inference.VAD(model="silero"),
# any combination of STT, LLM, TTS, or realtime API can be used
llm=openai.LLM(model="gpt-4.1-mini"),
stt=deepgram.STT(model="nova-3", language="multi"),
Expand Down
10 changes: 1 addition & 9 deletions examples/other/transcription/multi-user-transcriber.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,13 @@
AgentSession,
AutoSubscribe,
JobContext,
JobProcess,
StopResponse,
cli,
inference,
llm,
room_io,
utils,
)
from livekit.plugins import silero

load_dotenv()

Expand Down Expand Up @@ -92,7 +90,7 @@ async def _start_session(self, participant: rtc.RemoteParticipant) -> AgentSessi
return self._sessions[participant.identity]

session = AgentSession(
vad=self.ctx.proc.userdata["vad"],
vad=inference.VAD(model="silero"),
)
await session.start(
agent=Transcriber(
Expand Down Expand Up @@ -136,11 +134,5 @@ async def cleanup():
ctx.add_shutdown_callback(cleanup)


def prewarm(proc: JobProcess):
proc.userdata["vad"] = silero.VAD.load()


server.setup_fnc = prewarm

if __name__ == "__main__":
cli.run_app(server)
5 changes: 3 additions & 2 deletions examples/other/transcription/transcriber.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@
MetricsCollectedEvent,
StopResponse,
cli,
inference,
llm,
metrics,
room_io,
)
from livekit.plugins import openai, silero
from livekit.plugins import openai

load_dotenv()

Expand Down Expand Up @@ -50,7 +51,7 @@ async def entrypoint(ctx: JobContext):

session = AgentSession(
# vad is needed for non-streaming STT implementations
vad=silero.VAD.load(min_silence_duration=0.3),
vad=inference.VAD(model="silero", min_silence_duration=0.3),
)

@session.on("metrics_collected")
Expand Down
5 changes: 3 additions & 2 deletions examples/other/transcription/translator.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
MetricsCollectedEvent,
StopResponse,
cli,
inference,
llm,
metrics,
room_io,
utils,
)
from livekit.plugins import openai, silero
from livekit.plugins import openai

load_dotenv()

Expand Down Expand Up @@ -76,7 +77,7 @@ async def entrypoint(ctx: JobContext):

session = AgentSession(
# vad is only needed for non-streaming STT implementations
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
)

@session.on("metrics_collected")
Expand Down
5 changes: 3 additions & 2 deletions examples/primitives/echo-agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
AutoSubscribe,
JobContext,
cli,
inference,
)
from livekit.agents.vad import VADEventType
from livekit.plugins import silero

load_dotenv()
logger = logging.getLogger("echo-agent")
Expand All @@ -35,7 +35,8 @@ async def entrypoint(ctx: JobContext):
participant=participant,
track_source=rtc.TrackSource.SOURCE_MICROPHONE,
)
vad = silero.VAD.load(
vad = inference.VAD(
model="silero",
min_speech_duration=0.2,
min_silence_duration=0.6,
)
Expand Down
3 changes: 1 addition & 2 deletions examples/survey/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
from livekit.agents.beta.workflows import GetEmailTask, TaskGroup
from livekit.agents.inference import AudioTurnDetector
from livekit.agents.llm import function_tool
from livekit.plugins import silero

logger = logging.getLogger("SurveyAgent")

Expand Down Expand Up @@ -354,7 +353,7 @@ async def entrypoint(ctx: JobContext):
llm=inference.LLM("google/gemini-2.5-flash"),
stt=inference.STT("deepgram/nova-3", language="multi"),
tts=inference.TTS("inworld/inworld-tts-1"),
vad=silero.VAD.load(),
vad=inference.VAD(model="silero"),
turn_detection=AudioTurnDetector(),
preemptive_generation=True,
)
Expand Down
11 changes: 1 addition & 10 deletions examples/telephony/amd.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@
AgentServer,
AgentSession,
JobContext,
JobProcess,
cli,
inference,
)
from livekit.agents.inference import AudioTurnDetector
from livekit.plugins import silero

logger = logging.getLogger("basic-agent")

Expand All @@ -38,13 +36,6 @@ def __init__(self) -> None:
server = AgentServer()


def prewarm(proc: JobProcess):
proc.userdata["vad"] = silero.VAD.load()


server.setup_fnc = prewarm


@server.rtc_session()
async def entrypoint(ctx: JobContext):
ctx.log_context_fields = {
Expand All @@ -55,7 +46,7 @@ async def entrypoint(ctx: JobContext):
llm=inference.LLM("openai/gpt-4.1-mini"),
tts=inference.TTS("cartesia/sonic-3", voice="9626c31c-bec5-4cca-baa8-f8ba9e84c8bc"),
turn_detection=AudioTurnDetector(),
vad=ctx.proc.userdata["vad"],
vad=inference.VAD(model="silero"),
preemptive_generation=True,
)

Expand Down
11 changes: 1 addition & 10 deletions examples/telephony/bank-ivr/ivr_navigator_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@
AgentServer,
AgentSession,
JobContext,
JobProcess,
MetricsCollectedEvent,
RunContext,
cli,
inference,
metrics,
)
from livekit.agents.llm.tool_context import function_tool
from livekit.plugins import silero

logger = logging.getLogger("phone-tree-agent")

Expand Down Expand Up @@ -76,13 +74,6 @@ async def record_task_result_and_hang_up(self, context: RunContext, content: str
context.session.shutdown(drain=True)


def prewarm(proc: JobProcess) -> None:
proc.userdata["vad"] = silero.VAD.load()


server.setup_fnc = prewarm


@server.rtc_session(agent_name=PHONE_TREE_AGENT_DISPATCH_NAME)
async def dtmf_session(ctx: JobContext) -> None:
await ctx.connect()
Expand All @@ -91,7 +82,7 @@ async def dtmf_session(ctx: JobContext) -> None:
}

session: AgentSession = AgentSession(
vad=ctx.proc.userdata["vad"],
vad=inference.VAD(model="silero"),
llm=inference.LLM("openai/gpt-4.1"),
stt=inference.STT("deepgram/nova-3"),
tts=inference.TTS("rime/arcana"),
Expand Down
Loading
Loading