Skip to main content

Overview

LMNTTTSService provides real-time text-to-speech synthesis through LMNT’s WebSocket-based streaming API optimized for conversational AI. The service offers ultra-low latency with high-quality voice models and supports multiple languages with automatic interruption handling.

LMNT TTS API Reference

Pipecat’s API methods for LMNT TTS integration

Example Implementation

Complete example with voice synthesis

LMNT Documentation

Official LMNT streaming speech API documentation

Voice Library

Browse and create custom voices

Installation

To use LMNT services, install the required dependencies:
pip install "pipecat-ai[lmnt]"

Prerequisites

LMNT Account Setup

Before using LMNT TTS services, you need:
  1. LMNT Account: Sign up at LMNT Console
  2. API Key: Generate an API key from your account dashboard
  3. Voice Selection: Choose from available voice models or create custom voices

Required Environment Variables

  • LMNT_API_KEY: Your LMNT API key for authentication

Configuration

LmntTTSService

api_key
str
required
LMNT API key for authentication.
voice_id
str
required
deprecated
ID of the voice to use for synthesis. Deprecated in v0.0.105. Use settings=LmntTTSService.Settings(voice=...) instead.
model
str
default:"blizzard"
deprecated
LMNT TTS model to use. Deprecated in v0.0.105. Use settings=LmntTTSService.Settings(model=...) instead.
language
Language
default:"Language.EN"
deprecated
Language for synthesis. Supports multiple languages including German, English, Spanish, French, Hindi, and more. Deprecated in v0.0.105. Use settings=LmntTTSService.Settings(language=...) instead.
settings
LmntTTSService.Settings
default:"None"
Runtime-configurable settings. See Settings below.
sample_rate
int
default:"None"
Output audio sample rate in Hz. When None, uses the pipeline’s configured sample rate.

Settings

Runtime-configurable settings passed via the settings constructor argument using LmntTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
ParameterTypeDefaultDescription
modelstrNoneModel identifier. (Inherited.)
voicestrNoneVoice identifier. (Inherited.)
languageLanguage | strNoneLanguage for synthesis. (Inherited.)

Usage

Basic Setup

from pipecat.services.lmnt import LmntTTSService

tts = LmntTTSService(
    api_key=os.getenv("LMNT_API_KEY"),
    settings=LmntTTSService.Settings(
        voice="lily",
    ),
)

With Language Configuration

from pipecat.services.lmnt import LmntTTSService
from pipecat.transcriptions.language import Language

tts = LmntTTSService(
    api_key=os.getenv("LMNT_API_KEY"),
    settings=LmntTTSService.Settings(
        voice="lily",
        model="aurora",
        language=Language.ES,
    ),
)
The InputParams / params= pattern is deprecated as of v0.0.105. Use Settings / settings= instead. See the Service Settings guide for migration details.

Notes

  • WebSocket-based streaming: LMNT uses a persistent WebSocket connection for low-latency audio synthesis with automatic reconnection.
  • Class name: The Python class is LmntTTSService (note the lowercase ‘mnt’).

Event Handlers

LMNT TTS supports the standard service connection events:
EventDescription
on_connectedConnected to LMNT WebSocket
on_disconnectedDisconnected from LMNT WebSocket
on_connection_errorWebSocket connection error occurred
@tts.event_handler("on_connected")
async def on_connected(service):
    print("Connected to LMNT")