tts-1-hd
TTS-1 HD 透過可選的預製聲音、速度與六種輸出格式,將書面文字轉成品質較高的語音。OpenAI 將 HD 定位於旁白品質,與較低延遲的 TTS-1 不同,適合完成版朗讀、學習素材及編輯過的音訊段落。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
TTS-1 HD 是 OpenAI 針對音訊品質最佳化的文字轉語音模型。輸入是準備好的文稿,輸出則是語音。HD 與著重速度的 TTS-1 不同:OpenAI 描述 TTS-1 的延遲較低,但品質也較低。因此,若完成的聲音軌比盡快開始播放更重要,HD 是實用的旁白選項。書面文章、課程段落或修飾完成的說明,都能成為語音素材。
核心輸入是所選模型、確切文字與聲音。製造商的語音參考文件將每次請求的文稿限制為 4,096 個字元。這描述書面輸入長度,並非音訊時間保證。請準備聽得懂的文稿:展開有歧義的縮寫、決定數量的讀法,並讓每段內容連貫。較長課程或文章應在有意義的邊界拆分文字,並保留生成段落的使用順序。
目前 OpenAI 指南為 TTS-1 HD 列出九個內建選項:alloy、ash、coral、echo、fable、onyx、nova、sage 及 shimmer。聲音針對英語最佳化,而文字轉語音指南支援透過提供所需語言文字,生成多種語言的語音。比較聲音時,最好使用同一份代表性文稿,包含最終素材將出現的名稱與專業詞彙。多個片段組成一段旁白時,請維持聲音及速度一致。
預設輸出是 MP3。Opus 與 AAC 提供其他壓縮音訊格式;FLAC 提供無損壓縮;WAV 提供未壓縮音訊。PCM 則提供沒有檔案標頭的原始 24 kHz、16 位元有號小端序取樣。這些選項對應不同用途:精簡的可散布檔案、串流素材,或送入編輯工作流程的音訊。若解碼負擔重要,OpenAI 建議使用 WAV 或 PCM 以加快回應。選擇檔案格式不會改變文稿,也不會新增另一個聲音控制模型。
語音可分塊交付,讓播放器在完整音訊檔案準備好之前開始播放。這是文字轉音訊串流,並不構成雙向語音對話。參考文件支援 0.25 至 4.0 的速度值,預設為 1.0。獨立的自然語言 instructions 欄位對 TTS-1 HD 不起作用,此模型也不支援 SSE 事件輸出。文件記載的控制是文稿、預製聲音、速度及輸出格式,而非較新語音模型透過提示指定口音或情緒表達的介面。
語言指南列出的支援語言包括俄語、烏克蘭語、英語、法語、德語、西班牙語、葡萄牙語、義大利語、中文、日語、韓語、阿拉伯語、印地語及哈薩克語。請以目標語言準備文稿;合成是將該文字表達為語音,而非翻譯。學習內容應讓定義與段落轉換清楚。解說音訊應準備確切訊息,以及必須讓人聽到的名稱。評估特定語言及詞彙聽起來如何時,聲音針對英語最佳化仍是相關考量。
實用的 HD 工作流程會產出音訊段落,供聆聽、檢查,再納入完成素材。請確認每個句子都已朗讀,名稱與數量的發音可接受,且所選節奏有助於理解。將書面文稿與音訊一併保留,讓修正能追溯到相關段落。OpenAI 要求清楚揭露生成聲音是人工語音。HD 描述的是品質導向的 TTS 系列;本身不保證精確時序、自訂說話者聲音身分,或其他模型的表現控制。
Ailoot Ultra · 語音合成 POST /v1/audio/speech openai/tts-1-hd
openai/tts-1-hd入門
TTS-1 HD 透過可選的預製聲音、速度與六種輸出格式,將書面文字轉成品質較高的語音。OpenAI 將 HD 定位於旁白品質,與較低延遲的 TTS-1 不同,適合完成版朗讀、學習素材及編輯過的音訊段落。
- 接受的輸入
- 文字
- 結果
- 音訊
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 語音合成 POST /v1/audio/speech
- 輸入
text- 輸出
audio- 輸出格式
- mp3
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 openai/tts-1-hd | 預設值— |
欄位input | 類型string | 要求必填 | 值與限制 長度下限: 1 長度上限: 4,096 單位: Unicode 字元 | 預設值— |
欄位voice | 類型string | 要求必填 | 值與限制 alloy | 預設值— |
輸入素材組合
text_to_speech · 必填: input
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input, voice |
參數voice_ids | 規格alloy |
參數max_input_characters | 規格4096 |
參數other_options | 規格false |
參數input | 規格完全相符的 UTF-8 文字;不經正規化的 Unicode 字元計數 |
參數material_types | 規格text |
生命週期: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 實際回傳的 task_id 或媒體庫紀錄
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
請從此模型設定檔中選擇完全相符的語音。
輸入字元數與音訊秒數是不同的計量方式。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 應計費數量 | 計費數量 | 計費單位 | 費用 |
|---|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 應計費數量— | 計費數量— | 計費單位— | 費用 輸入 · 輸入 Token — / 1K Token 輸出 · 輸出 Token — / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定Ultra | 費率表— | 應計費數量每個 Unicode 碼位均計為一個字元,漢字亦同。 | 計費數量— | 計費單位每 1K 個輸入字元 | 費用 輸入 · 輸入字元 $0.06 每 1K 個輸入字元 |
| 設定每次請求 | 費率表— | 應計費數量— | 計費數量1 次請求 | 計費單位— | 費用 輸入 $0 每次請求 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 語音合成
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
接收並儲存結果
Ailoot Ultra · 語音合成
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
其他內容讀取方式
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
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留完整的二進位結果與標頭。若回傳 JSON 或多個輸出,請保留所有資料項目,並透過每個實際回傳的已簽署資產 URL 取得內容。
需要檢查原始回應時
保留原始 operation_id/X-Client-Request-ID 以供核對,請勿重新提交;沒有專用的音訊輪詢路由。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位binary audio | 類型bytes |
欄位response headers | 類型headers |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
回應server_error | 條件回傳的回應表示該作業或結果需要檢查 | 下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。 |
別名
模型別名
Ailoot Ultra openai/tts-1-hd
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · tts-1-hd
- 可以使用哪些輸入與結果?
POST /v1/audio/speech·openai/tts-1-hd:text→audio- 請求使用哪些欄位?
POST /v1/audio/speech·openai/tts-1-hd:model,input,voice- 適用哪些限制?
POST /v1/audio/speech·openai/tts-1-hd:input.maximum_length:4096