Model APIs
Whisper-1
音声をアップロードして文字起こしや英語への翻訳を行い、タスクを確認してテキスト、JSON、字幕をダウンロードします。
Whisper-1 は録音された発話をテキストに変換します。発話の言語を保つには /v1/audio/transcriptions、英語にするには /v1/audio/translations を使用します。どちらもファイルを含む multipart/form-data を受け付けます。SeedRouter は最初にタスク ID を返します。完了後に選択した結果をダウンロードしてください。OpenAI SDK の同期レスポンスとは異なります。
Playground と最新料金 · 初めての文字起こし · OpenAPI · Markdown
録音を送信する
API キーはサーバー側に保存してください。multipart boundary は HTTP クライアントに生成させ、boundary のない Content-Type: multipart/form-data ヘッダーを手動で設定しないでください。
curl https://api.seedrouter.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F language=en \
-F response_format=verbose_json \
-F 'timestamp_granularities[]=word' \
-F 'timestamp_granularities[]=segment'レスポンスはタスクの受け付けを示します。文字起こしの完了ではありません。
{
"id": "task_example",
"model": "whisper-1",
"status": "processing",
"created_at": 1792376116
}実際に返された id を保存してください。送信は一度だけ行います。接続が切れても、リクエストが受理されたかどうかは判断できません。新しいリクエストを作る前にタスク履歴を確認してください。
結果を読む
curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $SEEDROUTER_API_KEY"status が processing の間はポーリングします。完了したタスクには output.url と output.format、失敗したタスクには error.code と error.message が含まれます。ポーリングのタイムアウトはタスクの終了状態ではありません。タスクを読めるのは所有者のみです。以下はレスポンス構造の例です。
{
"id": "task_example",
"model": "whisper-1",
"status": "completed",
"output": {
"format": "verbose_json",
"url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
}
}別の GET リクエストで output.url をダウンロードします。JSON の成果物は JSON として、その他の形式はテキストとして読み取ります。公開タスクレスポンスに料金やアカウントの詳細は含まれません。
文字起こしのパラメータ
file と model は必須です。以下の 9 フィールドが共通のリクエスト項目で、file、model、明示的に無視される stream を含みます。chunking_strategy には、後述の互換性上の未解決事項があります。
| フィールド | 型 | デフォルト | 契約 |
|---|---|---|---|
file | バイナリアップロード | 必須 | 空でない音声ファイル 1 つ。URL やファイル名の文字列ではありません。ファイル制限を参照してください。 |
model | 文字列 | 必須 | 正確に whisper-1。 |
language | 文字列 | 自動検出 | en などの入力言語ヒント。ローカルの言語ホワイトリストは設けていません。検出する場合は省略します。 |
prompt | 文字列 | 省略 | 音声の言語で記した文脈、表記、続きの内容。独自の文字数上限は設けません。Whisper は自身のトークナイザーの末尾 224 トークンを参照します。汎用の指示プロンプトではありません。 |
response_format | 文字列 | json | json、text、srt、verbose_json、vtt。 |
temperature | 数値 | 0 | 両端を含む 0–1。0 ではモデルによる温度の自動調整が可能です。出力テキストの決定性を保証しません。 |
timestamp_granularities[] | 繰り返し可能な文字列 | 該当する場合はセグメントのタイムスタンプ | word、segment、または両方。response_format=verbose_json が必要です。角括弧のない繰り返しフィールド名 timestamp_granularities も受け付けます。 |
chunking_strategy | auto、VAD オブジェクト、または null | 省略 | 共通の音声 schema フィールドで、Whisper への適用可否は未解決です。検証済みの処理では省略してください。明示的な auto は実環境の互換性検証に失敗しました。 |
stream | 真偽値または null | false | Whisper-1 では無視されます。SSE や文字起こしの途中結果は生成しません。 |
VAD オブジェクトには、必須の type: "server_vad"、任意の整数 prefix_padding_ms(文書上のデフォルト 300)、任意の整数 silence_duration_ms(文書上のデフォルト 200)、0 から 1 の任意の数値 threshold(文書上のデフォルト 0.5)があります。文書化されていない整数範囲は強制しません。省略した方式は省略のままです。これらのオブジェクトのデフォルト値によって、リクエストのデフォルトが auto になるわけではありません。
SDK との互換性のため、VAD オブジェクトは 1 つの JSON multipart パート、または chunking_strategy[type]、chunking_strategy[prefix_padding_ms]、chunking_strategy[silence_duration_ms]、chunking_strategy[threshold] としてエンコードできます。両方を混在させないでください。フィールド構造が受理されることは、このモデルで VAD が動作する証明ではありません。
任意のテキストフィールドは省略し、multipart の文字列 null を送らないでください。未知のフィールドやモデルに適用されないフィールドは破棄されます。特に diarized_json、話者参照の設定、logprobs、リアルタイムイベントは Whisper-1 の機能ではありません。スカラーフィールドの重複は無効です。
ファイル制限
文書に記載された音声形式は FLAC、MP3、MP4、MPEG、MPGA、M4A、OGG、WAV、WebM です。現在のアップロード上限は 26,214,400 バイト(25 MiB)です。OpenAI Audio API FAQ は、従来の Whisper-1 アップロードの最大リクエストサイズを 25 MiB と規定しています。multipart フィールドの余裕を残すため、ファイルは上限未満にしてください。ファイルには読み取り可能な音声と、正の測定可能な再生時間が必要です。拡張子だけでは有効な音声と証明できません。
ローカルで追加の 1 時間上限、固定サンプルレート、モノラル限定の制限は設けていません。ただし、ファイルサイズによって長い録音の分割が必要になる場合があります。分割した録音のつなぎ目を確認し、発話の欠落や重複を防いでください。
英語への翻訳
curl https://api.seedrouter.ai/v1/audio/translations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F response_format=text \
-F temperature=0翻訳のフィールドは file、model、prompt、response_format、temperature の 5 つで、型と範囲は上記と同じです。任意のプロンプトは英語にしてください。翻訳先の言語は選べません。このエンドポイントでは language、タイムスタンプ設定、チャンク分割設定、その他の文字起こし専用フィールドは破棄されます。英語入力の翻訳確認が成功しても、すべての入力言語での精度は証明できません。
ダウンロードした成果物のフィールド
| 形式 | 内容 |
|---|---|
json | text を含むオブジェクト。文字起こしには usage: {type: "duration", seconds: number} を含む場合もあります。 |
text | プレーンテキストの文字起こし。 |
srt | SRT タイムコード付きの番号付き字幕キュー。 |
vtt | WebVTT 字幕。 |
verbose_json | text、language、秒単位の duration。任意の segments に加え、文字起こしでは words と時間の usage を含む場合があります。 |
各単語には word、start、end があります。各セグメントには id、seek、start、end、text、tokens、temperature、avg_logprob、compression_ratio、no_speech_prob があります。start と end は秒単位です。セグメントは話者を識別しません。文字起こし専用の定数 task: "transcribe" を含む場合があります。翻訳の成果物では、文字起こし専用の words と usage を省略します。音声の測定値や文字起こしテキストを、期待する答えに似せるために書き換えることはありません。
課金
どちらの操作も入力音声の実測時間を使います。各録音の音声計量単位は round(ceil(seconds) × 1000 / 60) です。この単位数に最新の単価を掛けます。文字起こしテキストを数える単位ではありません。例えば 15 秒は 250 単位、15.1 秒は 267 単位です。ページと Playground は同じ最新料金を読み取ります。失敗したリクエストは課金されません。
検証状況
確認日は 2026 年 10 月 19 日です。ローカルのエンドツーエンドテストで、5 つすべての文字起こし形式と verbose_json の翻訳が完了し、所有者による結果のダウンロードと正確なアカウント引き落としも確認しました。単語とセグメント両方のタイムスタンプを要求した文字起こしも成功しました。FLAC、OGG、M4A、MP4、および 1 秒未満/小数秒の WAV アップロードは、別々の実環境互換性チェックに合格しました。
明示的な chunking_strategy=auto は拒否されました。WebM、MPEG と VAD、MPGA と stream=true に関する 3 件の送信は成功しませんでした。これらの失敗から、組み合わせのどの設定が拒否の原因かは確定できません。これらの形式とオプションは未検証です。明示的に要求した方式をサービスが黙って置き換えることはありません。翻訳テストは英語入力だったため、言語間の翻訳品質は未測定です。schema が受理されることを、すべての組み合わせが実環境テストを通過した証明としないでください。
エラーと復旧
無効なファイルとパラメータの組み合わせは、タスク作成前に拒否されます。API エラーには数値の code と読みやすい message があります。エラーコードをご覧ください。受理後はタスクの終了状態を確認してください。送信が不確かな場合は、再送信前に既存のタスクを探します。失敗したタスクは課金されません。
契約の参照元
OpenAI は、自社 API 上の Whisper を 2027 年 2 月 26 日に終了すると発表しました。この発表は本サービスの終了日を定めるものではありません。OpenAI 廃止予定の告知をご覧ください。
