Skip to main content

Cartesia STT

How to use Cartesia STT with LiveKit Agents.

Use in Agent Builder

Create a new agent in your browser using this model

Overview

Cartesia speech-to-text is available in LiveKit Agents through LiveKit Inference and the Cartesia plugin. With LiveKit Inference, your agent runs on LiveKit's infrastructure to minimize latency. No separate provider API key is required, and usage and rate limits are managed through LiveKit Cloud. Use the plugin instead if you want to manage your own billing and rate limits. Pricing for LiveKit Inference is available on the pricing page .

LiveKit Inference

Use LiveKit Inference to access Cartesia STT without a separate Cartesia API key.

Model nameModel IDLanguages
Ink 2
cartesia/ink-2
en
Ink Whisper
cartesia/ink-whisper
enzhdeesrukofrjapttrplcanlarsvitidhifiviheukelmscsrodahutanothurhrbgltlamimlcysktefalvbnsrazslknetmkbreuishynemnbskksqswglmrpasikmsnyosoafockabetgsdguamyilouzfohtpstknnmtsalbmybotlmgastthawlnhabajwsuyue

Usage

To use Cartesia, use the STT class from the inference module:

from livekit.agents import AgentSession, inference
session = AgentSession(
stt=inference.STT(
model="cartesia/ink-whisper",
language="en"
),
# ... tts, stt, vad, turn_handling, etc.
)
import { AgentSession, inference } from '@livekit/agents';
session = new AgentSession({
stt: new inference.STT({
model: "cartesia/ink-whisper",
language: "en"
}),
// ... tts, stt, vad, turnHandling, etc.
});

Parameters

model
Required
string

The model to use for the STT.

languageLanguageCode

Language code for the transcription. If not set, the provider default applies.

extra_kwargsdict

Additional parameters to pass to the Cartesia STT API. See model parameters for supported fields.

In Node.js this parameter is called modelOptions.

Model parameters

Pass the following parameters inside extra_kwargs (Python) or modelOptions (Node.js):

ParameterTypeDefaultNotes
min_volumefloatMinimum input volume level required to start transcription.
max_silence_duration_secsfloatMaximum duration of silence in seconds before ending a transcription segment.

String descriptors

As a shortcut, you can also pass a model ID string directly to the stt argument in your AgentSession:

from livekit.agents import AgentSession
session = AgentSession(
stt="cartesia/ink-whisper:en",
# ... tts, stt, vad, turn_handling, etc.
)
import { AgentSession } from '@livekit/agents';
session = new AgentSession({
stt: "cartesia/ink-whisper:en",
// ... tts, stt, vad, turnHandling, etc.
});

Plugin

LiveKit's plugin support for Cartesia lets you connect directly to Cartesia's STT API with your own API key. For Node.js, use LiveKit Inference.

Available inPython

Installation

Install the plugin from PyPI:

uv add "livekit-agents[cartesia]~=1.5"

Authentication

The Cartesia plugin requires a Cartesia API key .

Set CARTESIA_API_KEY in your .env file.

Usage

Use Cartesia STT in an AgentSession or as a standalone transcription service. For example, you can use this STT in the Voice AI quickstart.

The plugin defaults to the ink-2 model, which detects the end of turn on its own. Set turn_detection="stt" so the session uses those signals to know when the user stops speaking:

from livekit.plugins import cartesia
session = AgentSession(
stt=cartesia.STT(), # defaults to ink-2
turn_handling={
"turn_detection": "stt",
},
# ... llm, tts, etc.
)
Langauge support

ink-2 supports English only. To transcribe other languages, pass model="ink-whisper" explicitly. Setting a non-English language without a model automatically selects ink-whisper.

Behavior change: Migrating from ink-whisper

As of livekit-agents 1.5.15, cartesia.STT() defaults to ink-2 instead of ink-whisper, which changes two behaviors:

  • update_options(model=...) has no effect. Set the model when you construct the STT instance instead.
  • Word-aligned transcripts aren't supported. Use ink-whisper if your app depends on them.

Parameters

This section describes some of the available parameters. See the plugin reference for a complete list of all available parameters.

modelstringDefault: ink-2

Selected model to use for STT. Defaults to ink-2 for English and to ink-whisper for other languages. See Cartesia STT models  for supported values.

languageLanguageCodeDefault: en

Language code for the input audio. For supported languages, see Cartesia STT models .

Additional resources

The following resources provide more information about using Cartesia with LiveKit Agents.