Skip to main content

Python Client SDK for Supertone API Generated by Supertone.

Project description

Supertone Python Library

LOGO

Summary

Supertone Public API: Supertone API is a RESTful API for using our state-of-the-art AI voice models.

SDK Installation

The SDK can be installed with uv, pip, or poetry package managers.

uv

uv is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.

uv add supertone

PIP

PIP is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.

pip install supertone

Poetry

Poetry is a modern tool that simplifies dependency management and package publishing by using a single pyproject.toml file to handle project metadata and dependencies.

poetry add supertone

SDK Example Usage

Example

# Synchronous Example
from supertone import Supertone, models


with Supertone(
    api_key="<YOUR_API_KEY_HERE>",
) as s_client:

    res = s_client.text_to_speech.create_speech(voice_id="<id>", text="<value>", language=models.APIConvertTextToSpeechUsingCharacterRequestLanguage.JA, model=models.APIConvertTextToSpeechUsingCharacterRequestModel.SONA_SPEECH_1, output_format=models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.WAV, include_phonemes=False)

    # Handle response
    print(res)

The same SDK client can also be used to make asynchronous requests by importing asyncio.

# Asynchronous Example
import asyncio
from supertone import Supertone, models

async def main():

    async with Supertone(
        api_key="<YOUR_API_KEY_HERE>",
    ) as s_client:

        res = await s_client.text_to_speech.create_speech_async(voice_id="<id>", text="<value>", language=models.APIConvertTextToSpeechUsingCharacterRequestLanguage.JA, model=models.APIConvertTextToSpeechUsingCharacterRequestModel.SONA_SPEECH_1, output_format=models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.WAV, include_phonemes=False)

        # Handle response
        print(res)

asyncio.run(main())

Authentication

Per-Client Security Schemes

This SDK supports the following security scheme globally:

Name Type Scheme
api_key apiKey API key

To authenticate with the API the api_key parameter must be set when initializing the SDK client instance. For example:

from supertone import Supertone, models


with Supertone(
    api_key="<YOUR_API_KEY_HERE>",
) as s_client:

    res = s_client.text_to_speech.create_speech(voice_id="<id>", text="<value>", language=models.APIConvertTextToSpeechUsingCharacterRequestLanguage.JA, model=models.APIConvertTextToSpeechUsingCharacterRequestModel.SONA_SPEECH_1, output_format=models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.WAV, include_phonemes=False)

    # Handle response
    print(res)

Models

Supertone’s Text-to-Speech API provides multiple TTS models, each with different supported languages, available voice settings, and streaming capabilities.

Model Overview

Model Name Identifier Streaming Support (stream_speech) Voice Settings Support
SONA Speech 1 sona_speech_1 ✅ Supported Supports all Voice Settings
Supertonic API 1 supertonic_api_1 ❌ Not supported Supports only the speed setting (others are ignored)
SONA Speech 2 sona_speech_2 ❌ Not supported Supports pitch_shift, pitch_variance, speed

[!NOTE] Streaming Support

Streaming TTS using the stream_speech endpoint is only available for the sona_speech_1 model.


Supported Languages by Model

[!NOTE] The set of supported input languages varies depending on the TTS model.

  • sona_speech_1

    • en, ko, ja
  • supertonic_api_1

    • en, ko, ja, es, pt
  • sona_speech_2

    • en, ko, ja, bg, cs, da, el, es, et, fi, hu, it, nl, pl, pt, ro,
      ar, de, fr, hi, id, ru, vi

Voice Settings (Optional)

Some TTS models support optional voice settings that allow fine control over output speech characteristics (e.g., speed, pitch, pitch variance).

[!NOTE] The available Voice Settings vary depending on the TTS model.

  • sona_speech_1

    • Supports all available Voice Settings.
  • supertonic_api_1

    • Supports only the speed setting. All other settings will be ignored.
  • sona_speech_2

    • Supports all Voice Settings except subharmonic_amplitude_control.

All Voice Settings are optional. When omitted, each model’s default values will be applied.

Available Resources and Operations

Available methods

custom_voices

text_to_speech

usage

voices

Error Handling

SupertoneError is the base class for all HTTP error responses. It has the following properties:

Property Type Description
err.message str Error message
err.status_code int HTTP response status code eg 404
err.headers httpx.Headers HTTP response headers
err.body str HTTP body. Can be empty string if no body is returned.
err.raw_response httpx.Response Raw HTTP response
err.data Optional. Some errors may contain structured data. See Error Classes.

Example

from supertone import Supertone, errors, models


with Supertone(
    api_key="<YOUR_API_KEY_HERE>",
) as s_client:
    res = None
    try:

        res = s_client.text_to_speech.create_speech(voice_id="<id>", text="<value>", language=models.APIConvertTextToSpeechUsingCharacterRequestLanguage.JA, model=models.APIConvertTextToSpeechUsingCharacterRequestModel.SONA_SPEECH_1, output_format=models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.WAV, include_phonemes=False)

        # Handle response
        print(res)


    except errors.SupertoneError as e:
        # The base class for HTTP error responses
        print(e.message)
        print(e.status_code)
        print(e.body)
        print(e.headers)
        print(e.raw_response)

        # Depending on the method different errors may be thrown
        if isinstance(e, errors.BadRequestErrorResponse):
            print(e.data.status)  # str
            print(e.data.message)  # str

Error Classes

Primary error:

Less common errors (15)

Network errors:

Inherit from SupertoneError:

* Check the method documentation to see if the error is applicable.

Additional Example Code

Additional example code can be found in the examples directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supertone-0.1.4.tar.gz (67.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

supertone-0.1.4-py3-none-any.whl (101.6 kB view details)

Uploaded Python 3

File details

Details for the file supertone-0.1.4.tar.gz.

File metadata

  • Download URL: supertone-0.1.4.tar.gz
  • Upload date:
  • Size: 67.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for supertone-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e4922c1baf476d95d29b2686fb3587e987ea23beb7060021eb96b9a5bc373858
MD5 8a0568bab2ea14324fae972ad3eb16ce
BLAKE2b-256 f48f6ba3ed04ab8bdc4dfce5bd62461743b19bc43bafc6d294a1868041264b20

See more details on using hashes here.

File details

Details for the file supertone-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: supertone-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 101.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for supertone-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9f3c6564c1a8c7dbf0e730fc2e31d68226c72fcc292d64a6fe35e38b2415e5d6
MD5 e699bd6322a747481d620cd70f04027f
BLAKE2b-256 8998acb03233cff754fedbedfba1af9e660fcb8b025e0bfaf1a4cb3b3f12e9c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page