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 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)
Supertonic API 3 supertonic_api_3 ❌ Not supported Supports only the speed setting (others are ignored)
SONA Speech 2 sona_speech_2 ❌ Not supported Supports all Voice Settings except subharmonic_amplitude_control
SONA Speech 2 Flash sona_speech_2_flash ❌ Not supported Supports all Voice Settings except similarity, text_guidance, subharmonic_amplitude_control

|

[!NOTE] Streaming Support

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

Normalized Text Support

The normalized_text parameter is supported only with the sona_speech_2 and sona_speech_2_flash models.
It is ignored when used with other models.


Supported Languages by Model

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

  • 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
  • sona_speech_2_flash

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

    • en, ko, ja
  • supertonic_api_3

    • en, ko, ja, ar, bg, cs, da, de, el, es, et, fi, fr, hi, hr, hu,
      id, it, lt, lv, nl, pl, pt, ro, ru, sk, sl, sv, tr, uk, vi
  • supertonic_api_1

    • en, ko, ja, es, pt

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_2

    • Supports all Voice Settings except subharmonic_amplitude_control.
  • sona_speech_2_flash

    • Supports all Voice Settings except similarity, text_guidance, subharmonic_amplitude_control.
  • sona_speech_1

    • Supports all available Voice Settings.
  • supertonic_api_3

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

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

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

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.2.2.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.2.2-py3-none-any.whl (102.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: supertone-0.2.2.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.2.2.tar.gz
Algorithm Hash digest
SHA256 02a193bc1fa5dc2020da3aed8b44cc1feab650030428434f4b60ce7189efa790
MD5 2a3f81c9e1c958dc59e61b7ab8a6f2a9
BLAKE2b-256 23535999df4359fac701ea7bfc1bdf71bab98151d7ad72905000e34cedb589dd

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for supertone-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7b17df966ca1b871b486b18e810e2fb321f640a7f7141d9d84e3e7e16bd9516b
MD5 1148bb669283e62980043d3cec1b5d3c
BLAKE2b-256 9143d5a37077cfe7b6cc4441e6a47e3ee11e7061a16515ef2152041ed53c20f5

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