Source: https://ailoot.ai/models/en/openai-tts-1-hd/
Canonical: https://ailoot.ai/models/en/openai-tts-1-hd/
Language: en

# tts-1-hd

[Markdown](https://ailoot.ai/models/en/openai-tts-1-hd/index.md) · [JSON](https://ailoot.ai/models/en/openai-tts-1-hd/facts.json)

## [tts-1-hd](https://ailoot.ai/models/en/openai-tts-1-hd/)

TTS-1 HD converts written text into higher-quality spoken audio with selectable preset voices, speed and six output formats. OpenAI positions HD for narration quality rather than the lower-latency profile of TTS-1, making it useful for finished readouts, learning material and edited audio passages.

- [**Ailoot Ultra · Text to speech** `POST /v1/audio/speech` `openai/tts-1-hd`](https://ailoot.ai/models/en/openai-tts-1-hd/#method-0)

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 HD is OpenAI's text-to-speech model optimized for audio quality. A prepared script is its input and spoken audio is its output. The HD choice is distinct from TTS-1's speed-oriented profile: OpenAI describes TTS-1 as lower latency but lower quality. HD is therefore a useful narration choice when the finished voice track matters more than beginning playback as quickly as possible. A written article, a lesson passage or a polished explanation can become a spoken asset.

The core inputs are the selected model, the exact text and a voice. The manufacturer's speech reference limits the script to 4096 characters per request. That describes written input length, not an audio duration guarantee. Prepare a script that can be understood when heard: expand ambiguous abbreviations, decide how quantities are spoken and keep each passage coherent. For a longer lesson or article, divide the text at meaningful boundaries and retain the order in which the resulting passages will be used.

The current OpenAI guide lists nine built-in choices for TTS-1 HD: alloy, ash, coral, echo, fable, onyx, nova, sage and shimmer. The voices are optimized for English, while the text-to-speech guide supports generating speech in several languages by supplying text in the required language. A voice comparison is most useful with the same representative script, including the names and specialist vocabulary that will appear in the final material. Keep voice and speed consistent when multiple clips form one narration.

MP3 is the default output. Opus and AAC provide alternative compressed audio formats; FLAC provides lossless compression; WAV provides uncompressed audio. PCM supplies raw 24 kHz, 16-bit signed little-endian samples without a file header. These choices serve different uses: a compact distributable file, a streaming asset or audio to pass into an editing workflow. OpenAI recommends WAV or PCM for quicker response times where decoding overhead matters. Choosing a file format does not change the script or add a separate voice-control model.

Speech can be delivered in chunks, allowing a player to begin before the complete audio file is ready. This is text-to-audio streaming; it does not establish a bidirectional voice conversation. The reference supports a speed value from 0.25 to 4.0, with 1.0 as the default. The separate natural-language instructions field does not work with TTS-1 HD, and SSE event output is not supported for this model. Script, preset voice, speed and output format are the documented controls, rather than the newer speech models' prompted accent or emotional-direction interface.

The language guide includes Russian, Ukrainian, English, French, German, Spanish, Portuguese, Italian, Chinese, Japanese, Korean, Arabic, Hindi and Kazakh among its supported languages. Prepare the script in the target language; synthesis renders that text rather than translating it. For learning content, make definitions and section transitions clear. For an explanatory audio passage, prepare the exact message and any names that must be heard. The voice's English optimization remains relevant when evaluating how a particular language and vocabulary sound.

A practical HD workflow produces an audio passage to listen to, review and then include in the finished material. Check that every sentence was rendered, that names and quantities were pronounced acceptably and that the chosen pacing supports comprehension. Preserve the written script beside the audio so a correction can be traced to the relevant passage. OpenAI requires a clear disclosure that the generated voice is artificial. HD describes the quality-oriented TTS family; it does not by itself promise exact timing, a custom speaker identity or the expressive controls of a different model.

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

[`openai/tts-1-hd`](https://ailoot.ai/models/en/#m=openai%2Ftts-1-hd&route=Ultra&caller=openai%2Ftts-1-hd&fmt=speech)

Other /`openai/tts-1-hd`

### Overview

TTS-1 HD converts written text into higher-quality spoken audio with selectable preset voices, speed and six output formats. OpenAI positions HD for narration quality rather than the lower-latency profile of TTS-1, making it useful for finished readouts, learning material and edited audio passages.

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

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits openai/tts-1-hd | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Maximum length: 4,096 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits alloy | Default— |

Input material combinations

**text\_to\_speech** · Required: input

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, input, voice |
| Parameter`voice_ids` | Contractalloy |
| Parameter`max_input_characters` | Contract4096 |
| Parameter`other_options` | Contractfalse |
| Parameter`input` | Contractexact UTF-8 text; Unicode character count without normalization |
| Parameter`material_types` | Contracttext |

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.

| Configuration | Rate schedule | Billable quantity | Billing quantity | Billing unit | Charge |
| --- | --- | --- | --- | --- | --- |
| ConfigurationBase token rates | Rate scheduleBase rate | Billable 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 |
| ConfigurationUltra | Rate schedule— | Billable quantityEach Unicode code point counts as one character, including Han characters. | Billing quantity— | Billing unitper 1000 input character | Charge Input · input character **$0.06** per 1000 input character |
| ConfigurationPer request | Rate schedule— | Billable quantity— | Billing quantityone request | Billing 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 →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot Ultra · Text to speech

curl

```bash
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-hd", "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

```bash
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
```

```bash
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
```

```bash
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

| Field | Type |
| --- | --- |
| Field`binary audio` | Typebytes |
| Field`response headers` | Typeheaders |

Errors and next steps

| Response | Condition | Next step |
| --- | --- | --- |
| Response400 · `invalid_request_error` | ConditionInvalid required fields, material representation or parameter value | Next stepCorrect the indicated fields before a new creation request. |
| Response`server_error` | ConditionThe returned response says the operation or result requires a check | Next 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-hd`](https://ailoot.ai/models/en/#m=openai%2Ftts-1-hd&route=Ultra&caller=openai%2Ftts-1-hd&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`openai/tts-1-hd`](https://ailoot.ai/models/en/#m=openai%2Ftts-1-hd&route=Ultra&caller=openai%2Ftts-1-hd&fmt=speech)

FAQ · tts-1-hd

What inputs and results are available?

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

Which fields does the request use?

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

What limits apply?

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

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](https://ailoot.ai/docs/en/billing/subscriptions/) · [View model prices](https://ailoot.ai/models/en/)

## 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](mailto:support@ailoot.ai) · [Service offer and licence agreement](https://ailoot.ai/legal/offer?lang=en)

## Ailoot · The company and its project portfolio





Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.





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





Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
