> ## Documentation Index
> Fetch the complete documentation index at: https://daily-docs-source-analytics-user-turn-strategies.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Supertonic

> Text-to-speech service integration using the Supertonic Python SDK

export const CommunityMaintained = ({maintainer, maintainerUrl, repo}) => <Note>
    <strong>Community-maintained integration.</strong> This service is built and
    maintained by{" "}
    <a href={maintainerUrl} target="_blank" rel="noreferrer">
      {maintainer}
    </a>
    . Pipecat does not test or officially support it. Please report issues and
    request changes on the{" "}
    <a href={repo} target="_blank" rel="noreferrer">
      source repository
    </a>
    . Learn more about{" "}
    <a href="/api-reference/server/services/community-integrations">
      community integrations
    </a>
    .
  </Note>;

<CommunityMaintained maintainer="architjambhule66-debug" maintainerUrl="https://github.com/architjambhule66-debug" repo="https://github.com/architjambhule66-debug/pipecat-supertonic" />

## Overview

`SupertonicTTSService` is a Pipecat-compatible `TTSService` wrapper for the
official [Supertonic](https://github.com/supertone-inc/supertonic) Python SDK.
It runs the Supertonic model locally and outputs `TTSAudioRawFrame` audio. The
package is an independent community integration and is not affiliated with
Supertone or the Supertonic team.

<CardGroup cols={2}>
  <Card title="Source Repository" icon="github" href="https://github.com/architjambhule66-debug/pipecat-supertonic">
    Source code, examples, and issues for the Supertonic integration
  </Card>

  <Card title="PyPI Package" icon="cube" href="https://pypi.org/project/pipecat-supertonic/">
    The `pipecat-supertonic` package on PyPI
  </Card>

  <Card title="Supertonic" icon="book" href="https://github.com/supertone-inc/supertonic">
    The official Supertonic SDK and model
  </Card>
</CardGroup>

## Installation

This is a community-maintained package distributed separately from `pipecat-ai`:

```bash theme={null}
uv add pipecat-supertonic
```

## Prerequisites

Supertonic runs locally; no account or API key is required. By default the
service downloads and caches the Supertonic model on first use (controlled by
the `auto_download` parameter).

Call `warmup()` during application startup before the service is used in a live
Pipecat pipeline. The service does not lazy-load Supertonic during active TTS
requests and fails fast if used before warmup, which avoids first-request
cold-start delays and keeps TTS frame ordering stable.

## Configuration

<ParamField path="model" type="str" default="supertonic-3">
  Supertonic model name.
</ParamField>

<ParamField path="voice" type="str" default="M1">
  Supertonic voice name. Supported voices: `F1`, `F2`, `F3`, `F4`, `F5`, `M1`,
  `M2`, `M3`, `M4`, `M5`.
</ParamField>

<ParamField path="language" type="Language | str" default="Language.EN">
  Language for synthesis.
</ParamField>

<ParamField path="speed" type="float" default="1.05">
  Speech speed multiplier.
</ParamField>

<ParamField path="total_steps" type="int" default="5">
  Number of synthesis steps.
</ParamField>

<ParamField path="max_chunk_length" type="int" default="None">
  Maximum characters per synthesized chunk.
</ParamField>

<ParamField path="silence_duration" type="float" default="0.3">
  Silence inserted between synthesized chunks.
</ParamField>

<ParamField path="auto_download" type="bool" default="True">
  Whether to download model assets automatically.
</ParamField>

<ParamField path="intra_op_num_threads" type="int" default="None">
  ONNX intra-op thread count.
</ParamField>

<ParamField path="inter_op_num_threads" type="int" default="None">
  ONNX inter-op thread count.
</ParamField>

<ParamField path="sample_rate" type="int" default="None">
  Output sample rate for generated audio.
</ParamField>

<ParamField path="settings" type="SupertonicTTSService.Settings" default="None">
  Runtime-configurable settings. When provided alongside direct parameters,
  `settings` values take precedence. See [Settings](#settings) below.
</ParamField>

### Settings

Runtime-configurable settings passed via the `settings` constructor argument
using `SupertonicTTSService.Settings(...)`.

| Parameter          | Type    | Default | Description                                  |
| ------------------ | ------- | ------- | -------------------------------------------- |
| `speed`            | `float` | —       | Speech speed multiplier.                     |
| `total_steps`      | `int`   | —       | Number of synthesis steps.                   |
| `max_chunk_length` | `int`   | —       | Maximum characters per synthesized chunk.    |
| `silence_duration` | `float` | —       | Silence inserted between synthesized chunks. |

<Note>
  The `Settings` dataclass extends Pipecat's `TTSSettings`. See the [source
  repository](https://github.com/architjambhule66-debug/pipecat-supertonic) for
  the authoritative, up-to-date list.
</Note>

## Usage

```python theme={null}
from pipecat.pipeline.pipeline import Pipeline
from pipecat_supertonic import SupertonicTTSService

tts = SupertonicTTSService(
    settings=SupertonicTTSService.Settings(
        voice="M1",
        language="en",
        total_steps=5,
        speed=1.05,
    )
)

# Required before use in a live pipeline. Call during application startup.
await tts.warmup()

pipeline = Pipeline(
    [
        transport.input(),
        stt,
        llm,
        tts,
        transport.output(),
    ]
)
```

## Compatibility

Tested with `pipecat-ai==1.2.0` and `supertonic==1.2.1`. Check the [source
repository](https://github.com/architjambhule66-debug/pipecat-supertonic) for
the latest tested version and changelog.
