models

tts-1

Markdown · JSON

tts-1

TTS-1 converts prepared text into spoken audio with selectable voices, playback speed and output formats. OpenAI optimizes this edition for lower-latency speech generation, making it a practical choice for responsive readouts, short narration and streamed delivery of an already written script.

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

TTS-1 is OpenAI's text-to-speech model optimized for speed. It receives the words to be spoken and produces audio, rather than a transcription or a written answer. The manufacturer's examples include narrating written articles, producing speech in several languages and playing audio as it arrives. TTS-1 is the lower-latency choice compared with TTS-1 HD; the HD model emphasizes output quality. The useful decision is therefore whether prompt playback or the higher-quality narration profile matters more for the task.

The speech-generation workflow is built around the model, the input text and the selected voice. OpenAI's reference limits the text input to 4096 characters, a character limit rather than a token context window. Prepare the actual script before synthesis: write the sentences the listener should hear, resolve abbreviations and decide how names, quantities and headings should be spoken. For a long article, organize sections into independently understandable passages instead of treating a long document as a single speech request.

OpenAI's current model-specific voice list for TTS-1 is alloy, ash, coral, echo, fable, onyx, nova, sage and shimmer. These are preset voices; they are not the full voice set of every newer speech model. The voices are optimized for English, while multilingual speech is supported by providing the input in the language to be spoken. Choose a voice using a representative passage with the same vocabulary and pacing as the final script. Keep that choice consistent across related clips when continuity matters.

Audio can be streamed in chunks so playback begins before the entire file has finished generating. This is streaming of speech created from text, not a two-way spoken conversation. The documented output formats are MP3, Opus, AAC, FLAC, WAV and PCM, with MP3 as the default. MP3 and AAC provide compressed audio; Opus is suited to streaming and communication; FLAC is lossless. WAV avoids compressed-audio decoding, and raw PCM contains 24 kHz, 16-bit signed little-endian samples without a file header. OpenAI recommends WAV or PCM when response time is the priority.

The speech reference provides a speed setting from 0.25 to 4.0, with 1.0 as the default. The additional natural-language instructions field does not work with TTS-1, and event-style SSE output is not supported for this model. Its documented controls are the script, voice, speed and audio format; newer models' controls for accent, emotion or whispering should not be attached to this edition. When preparing a clip, choose the speed to serve intelligibility and then inspect the rendered words and pauses rather than assume the script's character count fixes an exact duration.

The language guide includes English, Russian, Ukrainian, French, German, Spanish, Portuguese, Italian, Arabic, Chinese, Japanese, Korean, Hindi, Kazakh and many other languages. Speech follows the language of the supplied text. A multilingual narration brief therefore starts with the translated script and the intended audience; text-to-speech is a rendering step, not an instruction to translate or rewrite it. For a practical announcement, prepare the exact message and names. For educational narration, make section boundaries and definitions clear in the words that will be read.

A finished artifact can be a short spoken instruction, a narrated passage or an audio segment for a larger edit. Review pronunciation, completeness, pacing and the chosen format using the actual output. Preserve the script together with the audio so later corrections can be localized to the affected passage. OpenAI's guidance requires listeners to be clearly told that the voice is AI-generated. That disclosure belongs to the listening experience; it does not turn TTS-1 into a human-voice recording or add voice-cloning controls to the model.

Ailoot Ultra · Text to speech POST /v1/audio/speech openai/tts-1

openai/tts-1

Other /openai/tts-1

Overview

TTS-1 converts prepared text into spoken audio with selectable voices, playback speed and output formats. OpenAI optimizes this edition for lower-latency speech generation, making it a practical choice for responsive readouts, short narration and streamed delivery of an already written script.

Accepted inputs
Text
Results
Audio

Available in Ailoot · inputs & methods

Ailoot Ultra · Text to speech POST /v1/audio/speech
Input types
text
Output types
audio
Output format
mp3
FieldTypeRequirementValues & limitsDefault
FieldmodelTypestringRequirementRequiredValues & limits
openai/tts-1
Default—
FieldinputTypestringRequirementRequiredValues & limits
Minimum length: 1
Maximum length: 4,096
Unit: Unicode characters
Default—
FieldvoiceTypestringRequirementRequiredValues & limits
alloy
Default—
Input material combinations

text_to_speech · Required: input

Method parameters and lifecycle
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, input, voice
Parametervoice_idsContractalloy
Parametermax_input_charactersContract4096
Parameterother_optionsContractfalse
ParameterinputContractexact UTF-8 text; Unicode character count without normalization
Parametermaterial_typesContracttext

Lifecycle: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · actual returned task_id or media library record

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Select exact voice from this model profile.

Input characters and audio seconds are different meters.

Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode
Not specified When fast mode is selected
Flex mode
Not specified When flex mode is selected
Maximum reasoning effort
Not specified When maximum reasoning effort uses the default adjustment

Ailoot rates

Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

ConfigurationRate scheduleBillable quantityBilling quantityBilling unitCharge
ConfigurationBase token ratesRate scheduleBase rateBillable quantity—Billing quantity—Billing unit—Charge
Input · Input tokens — / 1K tokens
Output · Output tokens — / 1K tokens
Input · Cache read — / 1K tokens
Input · Cache write — / 1K tokens
Input · Cache write, 1 hour — / 1K tokens
ConfigurationUltraRate schedule—Billable quantityEach Unicode code point counts as one character, including Han characters.Billing quantity—Billing unitper 1000 input characterCharge
Input · input character $0.03 per 1000 input character
ConfigurationPer requestRate schedule—Billable quantity—Billing quantityone requestBilling unit—Charge
Input $0 per request

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →

Example requests

Ailoot Ultra · Text to speech

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/tts-1", "input": "Good afternoon! This is a short voice take.", "voice": "alloy"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3

Receive and save results

Ailoot Ultra · Text to speech

mp3

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Other content reads
Media libraryTask statusAsset details
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
Keep all completed results

Keep every complete returned response, file and content part.

Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.

If the original response needs checking

Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.

Response fields
FieldType
Fieldbinary audioTypebytes
Fieldresponse headersTypeheaders
Errors and next steps
ResponseConditionNext step
Response400 · invalid_request_errorConditionInvalid required fields, material representation or parameter valueNext stepCorrect the indicated fields before a new creation request.
Responseserver_errorConditionThe returned response says the operation or result requires a checkNext stepKeep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request.

Aliases

Model aliases

Ailoot Ultra openai/tts-1

Method path aliases

Use the method paths shown above.

Related caller IDs

openai/tts-1

FAQ · tts-1
What inputs and results are available?

POST /v1/audio/speech · openai/tts-1: text → audio

Which fields does the request use?

POST /v1/audio/speech · openai/tts-1: model, input, voice

What limits apply?

POST /v1/audio/speech · openai/tts-1: input.maximum_length: 4096

More details

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription
Choose a discounted plan for your regular requests.
Promo code: up to 50% off
Enter your code at checkout. The price updates to reflect the current promotion.
Spending in your history
The model, tokens and amount are recorded for each request.

Choose a subscription · View model prices

Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application
Add text, image, video and audio generation to paid features in your service.
Reseller licence
Send a description of your project and how you provide access. Request written terms for use and resale.
Documents on the website
The service offer, licence agreement and data processing policy are available before you connect.

Request a reseller licence · Service offer and licence agreement