tts

LMNT text-to-speech service implementation.

pipecat.services.lmnt.tts.language_to_lmnt_language(language: Language) str | None[source]

Convert a Language enum to LMNT language code.

Parameters:

language – The Language enum value to convert.

Returns:

The corresponding LMNT language code, or None if not supported.

class pipecat.services.lmnt.tts.LmntTTSSettings(model: str | None | _NotGiven = <factory>, extra: dict[str, Any]=<factory>, voice: str | None | _NotGiven = <factory>, language: Language | str | None | _NotGiven = <factory>)[source]

Bases: TTSSettings

Settings for LmntTTSService.

class pipecat.services.lmnt.tts.LmntTTSService(*, api_key: str, voice_id: str | None = None, sample_rate: int | None = None, language: Language = Language.EN, output_format: str = 'pcm_s16le', model: str | None = None, settings: LmntTTSSettings | None = None, **kwargs)[source]

Bases: InterruptibleTTSService

LMNT real-time text-to-speech service.

Provides real-time text-to-speech synthesis using LMNT’s WebSocket API. Supports streaming audio generation with configurable voice models and language settings.

Settings

alias of LmntTTSSettings

__init__(*, api_key: str, voice_id: str | None = None, sample_rate: int | None = None, language: Language = Language.EN, output_format: str = 'pcm_s16le', model: str | None = None, settings: LmntTTSSettings | None = None, **kwargs)[source]

Initialize the LMNT TTS service.

Parameters:
  • api_key – LMNT API key for authentication.

  • voice_id

    ID of the voice to use for synthesis.

    Deprecated since version 0.0.105: Use settings=LmntTTSService.Settings(voice=...) instead.

  • sample_rate – Audio sample rate. If None, uses default.

  • language

    Language for synthesis. Defaults to English.

    Deprecated since version 0.0.106: Use settings=LmntTTSService.Settings(language=...) instead.

  • output_format – Audio output format. One of “pcm_s16le”, “pcm_f32le”, “mp3”, “ulaw”, “webm”. Defaults to “pcm_s16le”.

  • model

    TTS model to use.

    Deprecated since version 0.0.105: Use settings=LmntTTSService.Settings(model=...) instead.

  • settings – Runtime-updatable settings. When provided alongside deprecated parameters, settings values take precedence.

  • **kwargs – Additional arguments passed to parent InterruptibleTTSService.

can_generate_metrics() bool[source]

Check if this service can generate processing metrics.

Returns:

True, as LMNT service supports metrics generation.

language_to_service_language(language: Language) str | None[source]

Convert a Language enum to LMNT service language format.

Parameters:

language – The language to convert.

Returns:

The LMNT-specific language code, or None if not supported.

async start(frame: StartFrame)[source]

Start the LMNT TTS service.

Parameters:

frame – The start frame containing initialization parameters.

async stop(frame: EndFrame)[source]

Stop the LMNT TTS service.

Parameters:

frame – The end frame.

async cancel(frame: CancelFrame)[source]

Cancel the LMNT TTS service.

Parameters:

frame – The cancel frame.

async flush_audio(context_id: str | None = None)[source]

Flush any pending audio synthesis.

async run_tts(text: str, context_id: str) AsyncGenerator[Frame | None, None][source]

Generate TTS audio from text using LMNT’s streaming API.

Parameters:
  • text – The text to synthesize into speech.

  • context_id – The context ID for tracking audio frames.

Yields:

Frame – Audio frames containing the synthesized speech.