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 the following Voice Settings:
      • pitch_shift
      • pitch_variance
      • speed

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: supertone-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 f56bdd078f45e1f257480d02b678e47fb697fd6d13e5aa85a80845a800210f19
MD5 a0c4236ec69cdc75263d7af0e1803b77
BLAKE2b-256 126c30be5c2790ecd9e58355bb484c791dd509371e9a4f6cf7721fcb83b9b58b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: supertone-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f5d39a40c629b03828ad5632d709c88f9eb62b398130bff7016d5eccc084a354
MD5 c10650a3a742edf1d60a5440658c2758
BLAKE2b-256 55bc8eb67fefdfaadd7b3ba378a5042cfaf075ee195492d437413d2685c8234f

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