TTS-1 HD
Provider list prices: no platform markup, pay-as-you-go. These are official list prices. Logged-in customers may see effective prices including workspace discounts on /console/pricing.
Use TTS-1 HD in 30 seconds
OpenAI-compatible: swap the base_url, keep your SDK. POST /v1/chat/completions
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="tts-1-hd",
messages=[{"role": "user", "content": "Summarize this diff"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "tts-1-hd",
messages: [{ role: "user", content: "Summarize this diff" }],
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1-hd",
"messages": [{"role": "user", "content": "Hello"}]
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "tts-1-hd",
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("tts-1-hd")
.addUserMessage("Summarize this diff")
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));Specs & limits
Audio
- Languages
- Generally follows the Whisper model’s language support: Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian, Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese and Welsh, despite voices being optimized for English
- Audio limits
-
- Speech generation endpoint (v1/audio/speech) only, with Chat Completions, Responses, Realtime, Batch and Fine-tuning all listed as not supported
- input text is capped at 4096 characters
- output mp3 (default), opus, aac, flac, wav or pcm (raw 24 kHz 16-bit signed little-endian samples)
- realtime playback via chunked transfer encoding
Realtime
- Voices
- alloy, ash, coral, echo, fable, onyx, nova, sage and shimmer, a smaller set than the full 13-voice TTS list, and voices are currently optimized for English.
Model
- Modalities
- text → audio
Text-to-speech model optimized for quality: the same Speech endpoint as tts-1, tuned for high-quality rather than low-latency use cases. The instructions parameter that steers accent, emotion, intonation and tone on gpt-4o-mini-tts does not work with tts-1 or tts-1-hd.
About TTS-1 HD
TTS-1 HD is OpenAI's text-to-speech model optimized for quality, the higher-fidelity half of the pair it forms with tts-1.
- The model page frames it as converting text to natural sounding spoken text for high quality text-to-speech use cases, and the guide states the trade directly: tts-1 provides lower latency, but at a lower quality than tts-1-hd.
- That extra quality is the whole difference, and it is priced accordingly at $30 per million characters, double the tts-1 rate, which makes it the choice for narration, published audio, and anything a listener will hear more than once rather than for interactive turn-by-turn speech.
- Everything else is shared with its sibling.
- It serves only the Audio API speech endpoint, taking text in and returning audio, with the same nine voices (alloy, ash, coral, echo, fable, onyx, nova, sage, and shimmer), the same MP3, Opus, AAC, FLAC, WAV, and 24 kHz PCM output formats, the same 0.25 to 4.0 speed range around a default of 1.0, and the same chunked-transfer streaming so playback can start early.
- The same two restrictions apply as well: the instructions parameter for steering tone and delivery is documented as not working on tts-1 or tts-1-hd, and the sse stream format is unsupported, leaving raw audio streaming as the only option.
- Language coverage follows Whisper's list while the voices stay optimized for English, and OpenAI requires a clear disclosure that the voice is AI-generated.
- Synthorai serves TTS-1 HD through the same OpenAI-compatible /v1/audio/speech endpoint.
FAQ
Is the TTS-1 HD API free to try?
Yes: new accounts get 10 trial calls and up to $1 in free credit, no card required. At $30/M input tokens, that credit alone covers roughly 8 requests of ~4K tokens against TTS-1 HD.
What is TTS-1 HD best at?
Optimized for quality rather than latency; double the tts-1 rate at $30 per million characters; suits narration and published audio, not interactive speech. See the About section for the full picture from the vendor's own release notes.
How much does TTS-1 HD cost?
TTS-1 HD costs $30 per million input tokens and $0 per million output tokens on Synthorai. That is the provider's list price, with no platform markup.
Does TTS-1 HD support prompt caching?
TTS-1 HD has no cache-read discount on Synthorai today. Prompt caching still applies to other models on the gateway; see the pricing table for cache-enabled alternatives. Provider caching comparison →
How do I get access to TTS-1 HD?
Point your existing OpenAI SDK at base_url="https://synthorai.io/v1", set model="tts-1-hd", and you're done. One API key covers every model on the gateway.