Metadata-Version: 2.4
Name: pipecat-supertonic
Version: 0.1.0
Summary: Supertonic TTS service integration for Pipecat
Keywords: pipecat,tts,supertonic,voice,speech-synthesis
Author: Archit498
Author-email: Archit498 <archit@voicing.ai>
License-Expression: BSD-2-Clause
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Dist: pipecat-ai[websockets-base]>=1.2,<2
Requires-Dist: supertonic>=1.2.1,<2
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# pipecat-supertonic

`pipecat-supertonic` provides a Pipecat-compatible `TTSService` wrapper for the
official [Supertonic](https://github.com/supertone-inc/supertonic) Python SDK.

The package is designed to feel like a native Pipecat service:

- import with `from pipecat_supertonic import SupertonicTTSService`
- configure with `SupertonicTTSService.Settings(...)`
- drop directly into an existing Pipecat pipeline

## Install

```bash
pip install pipecat-supertonic
```

Or with `uv`:

```bash
uv add pipecat-supertonic
```

## Usage

```python
from pipecat_supertonic import SupertonicTTSService

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

await tts.warmup()
```

`warmup()` is required before the service is used in a live Pipecat pipeline.
Call it during application startup so Supertonic can download and cache the
model before the first user request arrives.

## Warmup Contract

This package intentionally does not lazy-load Supertonic during active TTS
requests. If the service is used before `warmup()`, it fails fast with a clear
error telling the caller to warm the service up first.

This avoids first-request cold-start delays and keeps Pipecat TTS frame ordering
stable.

## Example

See `examples/voice-supertonic.py` for a minimal package-level example.

## Development

```bash
uv sync --group dev
uv run pytest
uv run ruff check .
```
