tts-1
TTS-1 は、選べる声、再生速度、出力形式を使い、準備した文字を音声に変換します。OpenAI はこの版を低遅延の音声生成に最適化しており、素早い読み上げ、短いナレーション、書き上げた原稿のストリーム配信に実用的です。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
TTS-1 は、速度に最適化された OpenAI のテキスト読み上げモデルです。話す言葉を受け取って音声を生成し、書き起こしや文字の回答を作るものではありません。メーカーの例には、記事の朗読、複数言語の音声生成、到着した音声の順次再生があります。TTS-1 は TTS-1 HD と比べて低遅延で、HD は出力品質を重視します。そのため作業では、再生を素早く始めることと高品質なナレーションのどちらを重視するかが実用的な判断になります。
音声生成ワークフローの中心はモデル、入力文字、選択した声です。OpenAI のリファレンスは文字入力を 4,096 文字までに制限しています。これは文字数の制限であり、トークンのコンテキストウィンドウではありません。合成前に実際の原稿を準備してください。リスナーが聞くべき文を書き、略語を明確にし、名前、数量、見出しをどう話すか決めます。長い記事では、長文書全体を 1 回の音声リクエストにするのではなく、単独でも理解できる段落に区間を整理してください。
現在の OpenAI の TTS-1 固有の音声一覧は、alloy、ash、coral、echo、fable、onyx、nova、sage、shimmer です。これらはプリセット音声で、より新しいすべての音声モデルの全音声セットではありません。声は英語に最適化されていますが、話す言語で入力を提供することで多言語音声にも対応します。最終原稿と同じ語彙や速さの代表段落で声を選んでください。連続性が重要な場合、関連クリップで同じ選択を維持します。
音声はチャンクでストリーム配信でき、ファイル全体の生成が終わる前に再生を開始できます。これは文字から作った音声のストリーミングで、双方向の音声会話ではありません。文書化された出力形式は MP3、Opus、AAC、FLAC、WAV、PCM で、既定は MP3 です。MP3 と AAC は圧縮音声、Opus はストリーミングや通信に適し、FLAC は可逆圧縮です。WAV は圧縮音声のデコードを避け、生 PCM はファイルヘッダーなしの 24 kHz、16 ビット符号付きリトルエンディアンサンプルを含みます。OpenAI は応答時間を優先する場合、WAV または PCM を推奨しています。
音声リファレンスは 0.25~4.0 の速度設定を提供し、既定は 1.0 です。追加の自然言語 instructions フィールドは TTS-1 では機能せず、このモデルはイベント形式の SSE 出力に対応しません。文書化された制御は原稿、声、速度、音声形式です。より新しいモデルのアクセント、感情、ささやきの制御をこの版に付け加えないでください。クリップの準備では、わかりやすさに合わせて速度を選び、その後、音声化された言葉と間を確認します。原稿の文字数から正確な時間が決まるとは考えないでください。
言語ガイドには英語、ロシア語、ウクライナ語、フランス語、ドイツ語、スペイン語、ポルトガル語、イタリア語、アラビア語、中国語、日本語、韓国語、ヒンディー語、カザフ語など多数の言語があります。発話は入力文字の言語に従います。そのため多言語ナレーションの制作指示は、翻訳済み原稿と想定聴衆から始まります。テキスト読み上げは音声化の工程で、翻訳や書き換えを求める指示ではありません。実用的なお知らせでは正確なメッセージと名前を準備します。教育ナレーションでは、読み上げる言葉の中で区間境界と定義を明確にしてください。
完成成果物には、短い音声案内、朗読段落、大きな編集作品向けの音声区間などがあります。実際の出力で発音、完全性、速さ、選択形式を確認してください。後の修正を該当段落に限定できるよう、音声と原稿を一緒に保管します。OpenAI のガイドは、その声が AI 生成であることをリスナーに明確に伝えるよう求めています。この開示は聴取体験に属し、TTS-1 を人間の声の録音に変えたり、モデルに声の複製制御を加えたりするものではありません。
Ailoot Ultra · 音声合成 POST /v1/audio/speech openai/tts-1
openai/tts-1はじめに
TTS-1 は、選べる声、再生速度、出力形式を使い、準備した文字を音声に変換します。OpenAI はこの版を低遅延の音声生成に最適化しており、素早い読み上げ、短いナレーション、書き上げた原稿のストリーム配信に実用的です。
- 対応する入力
- テキスト
- 結果
- 音声
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 音声合成 POST /v1/audio/speech
- 入力の種類
text- 出力の種類
audio- 出力形式
- mp3
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 openai/tts-1 | デフォルト— |
フィールド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の料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 課金対象の数量 | 課金数量 | 課金単位 | 料金 |
|---|---|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 課金対象の数量— | 課金数量— | 課金単位— | 料金 入力 · 入力トークン — / 1K トークン 出力 · 出力トークン — / 1K トークン 入力 · キャッシュ読み取り — / 1K トークン 入力 · キャッシュ書き込み — / 1K トークン 入力 · キャッシュ書き込み、1時間 — / 1K トークン |
| 設定Ultra | 料金表— | 課金対象の数量漢字を含め、Unicodeコードポイント1つを1文字として数えます。 | 課金数量— | 課金単位1K入力文字あたり | 料金 入力 · 入力文字 $0.03 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", "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
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · tts-1
- 利用できる入力と結果は何ですか?
POST /v1/audio/speech·openai/tts-1:text→audio- リクエストはどの項目を使用しますか?
POST /v1/audio/speech·openai/tts-1:model,input,voice- どの制限が適用されますか?
POST /v1/audio/speech·openai/tts-1:input.maximum_length:4096