Skip to main content
The Supertone API can return phoneme data alongside the audio — the individual sound units the model spoke, with their start times and durations. This is the data you need to drive lip-sync in games and animation, build karaoke-style word highlighting, or analyze pronunciation. To turn it on, set include_phonemes: true on a TTS request.
Supported on sona_speech_2, sona_speech_2_flash, and sona_speech_1. Not supported on supertonic_api_3 or supertonic_api_1.

Usage

Response shape

The three phoneme arrays are aligned — symbols[i], start_times_seconds[i], and durations_seconds[i] describe the same phoneme.

Streaming with phonemes

When you call stream_speech with include_phonemes: true, the response becomes NDJSON (newline-delimited JSON). Each line is a chunk with its own audio_base64 and phonemes data:
Parse each line as it arrives to drive your lip-sync renderer in real time.

Use cases

  • Lip-sync in games and animation. Map each phoneme to a viseme (mouth shape) and play visemes in sync with the audio. Most engines come with a default phoneme-to-viseme table — Supertone’s symbols are standard IPA-style and compatible with most rigs.
  • Karaoke / word highlighting. Use phoneme start times to highlight words as they’re spoken.
  • Pronunciation analysis. Compare actual phonemes against an expected sequence to check pronunciation in language-learning apps.
For an end-to-end example, see Generate phonemes for lip sync.

Lip sync example

Build a phoneme → viseme pipeline.

Normalized text

Improve pronunciation for ambiguous inputs.