{
  "aboutHtml": "<p>GPT Transcribeは、完成した音声ファイル、ストリーミングするファイルの文字起こし結果、Realtimeセッションでコミットした音声ターンに向けた、OpenAIの音声認識モデルです。任意のテキストの背景情報とともに音声を受け取り、認識したテキストを返します。メーカーは、専門用語、複数言語の録音、発話中の言語切り替えを含め、録音した発話を元の言語で正確に文字起こしする用途に位置付けています。有用な出力は、録音との対応を保つ文字起こし結果です。モデルが信頼できる予測を行える場合は、検出した言語のメタデータも含まれます。</p><h4>完成した録音を準備する</h4><p>OpenAIのファイルの文字起こしの流れは、最大25 MBのアップロードを受け付けます。現在のエンドポイントのリファレンスは、FLAC、MP3、MP4、MPEG、MPGA、M4A、OGG、WAV、WebMの入力形式を挙げています。また、適切なファイル名の拡張子とコンテンツタイプなど、形式を特定するのに十分なファイルのメタデータを推奨しています。大きな録音では、圧縮するか、25 MB以下のファイルに分割することをガイドは推奨しています。前後の発話を除くと認識の精度が下がる場合があるため、文の途中で切らないでください。分割した音声の順序を保ち、元の録音内での位置を保持します。</p><p>会議、インタビュー、録音したプレゼンテーションでは、実際の音声を提供し、話題と発話されそうな用語を示してください。有用な結果は、話し合いから推測した要約ではなく、認識された言葉です。返されたテキストとともに録音の識別子を保持し、名前、数字、不確かな語句を確認する人が、正しい原資料に戻れるようにしてください。文字起こし結果は、その後の別の要約、翻訳、編集作業の資料にできます。</p><h4>背景、キーワードのヒント、想定する言語</h4><p>メーカーは、三種類の手掛かりを分けています。プロンプトは、録音の話題や場面について自由な形式の背景情報を与えます。キーワードは、発話に含まれると想定する実際の単語や語句を指定します。languagesのリストは、想定する発話言語を示します。二言語を使う製品の話し合いでは、プロンプトに場面を記述し、関連する製品名をキーワードとして挙げ、想定する言語を提供してください。これらは認識のヒントであり、誰も発話していない語句を挿入する指示ではありません。</p><p>GPT Transcribeは、従来の単数形のlanguageフィールドではなく、複数形のlanguagesフィールドを使います。OpenAIは、両方を送信しないよう指示しています。ガイドは、対応するISO 639-1コード、一部のISO 639-3コード、中国語の地域別ロケールコードを受け付け、未対応の値や形式が不正な値は拒否されると説明しています。各キーワードは一行に収め、山括弧、キャリッジリターン、改行を含めないでください。不正なキーワードや長すぎるプロンプトにより、リクエスト全体が拒否される場合があります。関連する背景に絞り、ヒントのリストを文字起こし結果として扱わず、指定した名前が音声内で実際に発話されているかを確認してください。</p><h4>JSON出力と検出した言語の予測</h4><p>文書化されたファイルの結果は、文字起こしと検出した言語を含むJSONです。言語の予測はモデルの出力であり、提供した言語のヒントのコピーではありません。モデルが信頼できる予測を行えない場合、空の言語リストも有効な結果です。録音が無音だったことや、文字起こしに失敗したことを示すものではありません。後の処理でそれぞれの意味に沿って使えるよう、認識したテキストと言語のメタデータを分けて保持してください。</p><h4>ファイルの文字起こし結果をストリーミングする</h4><p>完成したファイルでは、処理中に文字起こしのテキストを順次出力できます。OpenAIは、途中のテキストのtranscript.text.deltaイベントと、ファイル全体の文字起こし結果のtranscript.text.doneイベントを文書化しています。最終イベントには、検出した言語も含まれます。これは、すでに提供した録音の出力をストリーミングするものです。長いアップロードの進行状況を表示するのに役立ち、最終イベントが、完了した結果として保持するテキストを確定します。</p><h4>Realtimeセッションでコミットしたターン</h4><p>GPT Transcribeには、WebSocketを使う専用のRealtimeの流れもあります。入力バッファに音声を追加した後、アプリケーションが音声ターンを明示的にコミットします。そのコミットしたチャンクの文字起こしが始まり、完了イベントの前に差分を出力する場合があります。検出した言語の情報も含まれます。このメーカーのセッションの流れでは、モデルが、前の文字起こし済みのターンを自動的に背景情報として使います。これは、マイク音声が届くたびにライブ字幕のテキストを連続して出力する流れとは別です。OpenAIは、その連続的な流れにGPT Live Transcribeという名称を使っています。</p><p>複数のターンでは、対応する文字起こし結果とともに入力項目の識別子を保持してください。OpenAIは、異なるターンの完了イベントが発話順に届くとは限らないと注意しています。会話を完了時刻だけで並べず、各最終結果をコミットした入力に対応付けてください。有用な成果物は、正しい最終項目から組み立てた、順序の整った文字起こし結果です。途中のテキストは、別の完了した発話ではなく、進行状況として扱います。</p><h4>専用の出力と内容上の制限</h4><p>この仕様は、字幕、タイムスタンプ、翻訳、話者ラベルについて、一律の契約を提供するものではありません。OpenAIの移行ガイドは、これらの専用機能を区別しています。ネイティブの字幕形式と単語の時刻情報には対応するモデルと形式が必要であり、話者ラベルにはGPT-4o Transcribe Diarizeを使います。GPT Transcribeのファイルの結果はJSONであり、SRT、VTT、詳細なタイムスタンプを含む応答をそのまま置き換えるものではありません。このモデルのモデルカードは、数値によるコンテキストや最大出力の枠を公開していないため、音声の文字起こしにチャットモデルのトークンウィンドウを仮定しないでください。</p><p>難しい用語、数字、アクセント、背景の雑音、言語の切り替えを録音に照らして確認してください。関連するヒントが、発話されていない用語を加えずに認識を改善したか、最終的な文字起こしに音声の末尾まで含まれるかを確認します。複数言語の結果では、翻訳版を準備する前に、発話された言葉を保持してください。これらの確認により、背景のヒント、検出した言語、認識した発話を明確に区別しながら、文字起こし結果を原資料として使えます。</p>",
  "aboutText": "GPT Transcribeは、完成した音声ファイル、ストリーミングするファイルの文字起こし結果、Realtimeセッションでコミットした音声ターンに向けた、OpenAIの音声認識モデルです。任意のテキストの背景情報とともに音声を受け取り、認識したテキストを返します。メーカーは、専門用語、複数言語の録音、発話中の言語切り替えを含め、録音した発話を元の言語で正確に文字起こしする用途に位置付けています。有用な出力は、録音との対応を保つ文字起こし結果です。モデルが信頼できる予測を行える場合は、検出した言語のメタデータも含まれます。\n\n### 完成した録音を準備する\n\nOpenAIのファイルの文字起こしの流れは、最大25 MBのアップロードを受け付けます。現在のエンドポイントのリファレンスは、FLAC、MP3、MP4、MPEG、MPGA、M4A、OGG、WAV、WebMの入力形式を挙げています。また、適切なファイル名の拡張子とコンテンツタイプなど、形式を特定するのに十分なファイルのメタデータを推奨しています。大きな録音では、圧縮するか、25 MB以下のファイルに分割することをガイドは推奨しています。前後の発話を除くと認識の精度が下がる場合があるため、文の途中で切らないでください。分割した音声の順序を保ち、元の録音内での位置を保持します。\n\n会議、インタビュー、録音したプレゼンテーションでは、実際の音声を提供し、話題と発話されそうな用語を示してください。有用な結果は、話し合いから推測した要約ではなく、認識された言葉です。返されたテキストとともに録音の識別子を保持し、名前、数字、不確かな語句を確認する人が、正しい原資料に戻れるようにしてください。文字起こし結果は、その後の別の要約、翻訳、編集作業の資料にできます。\n\n### 背景、キーワードのヒント、想定する言語\n\nメーカーは、三種類の手掛かりを分けています。プロンプトは、録音の話題や場面について自由な形式の背景情報を与えます。キーワードは、発話に含まれると想定する実際の単語や語句を指定します。languagesのリストは、想定する発話言語を示します。二言語を使う製品の話し合いでは、プロンプトに場面を記述し、関連する製品名をキーワードとして挙げ、想定する言語を提供してください。これらは認識のヒントであり、誰も発話していない語句を挿入する指示ではありません。\n\nGPT Transcribeは、従来の単数形のlanguageフィールドではなく、複数形のlanguagesフィールドを使います。OpenAIは、両方を送信しないよう指示しています。ガイドは、対応するISO 639-1コード、一部のISO 639-3コード、中国語の地域別ロケールコードを受け付け、未対応の値や形式が不正な値は拒否されると説明しています。各キーワードは一行に収め、山括弧、キャリッジリターン、改行を含めないでください。不正なキーワードや長すぎるプロンプトにより、リクエスト全体が拒否される場合があります。関連する背景に絞り、ヒントのリストを文字起こし結果として扱わず、指定した名前が音声内で実際に発話されているかを確認してください。\n\n### JSON出力と検出した言語の予測\n\n文書化されたファイルの結果は、文字起こしと検出した言語を含むJSONです。言語の予測はモデルの出力であり、提供した言語のヒントのコピーではありません。モデルが信頼できる予測を行えない場合、空の言語リストも有効な結果です。録音が無音だったことや、文字起こしに失敗したことを示すものではありません。後の処理でそれぞれの意味に沿って使えるよう、認識したテキストと言語のメタデータを分けて保持してください。\n\n### ファイルの文字起こし結果をストリーミングする\n\n完成したファイルでは、処理中に文字起こしのテキストを順次出力できます。OpenAIは、途中のテキストのtranscript.text.deltaイベントと、ファイル全体の文字起こし結果のtranscript.text.doneイベントを文書化しています。最終イベントには、検出した言語も含まれます。これは、すでに提供した録音の出力をストリーミングするものです。長いアップロードの進行状況を表示するのに役立ち、最終イベントが、完了した結果として保持するテキストを確定します。\n\n### Realtimeセッションでコミットしたターン\n\nGPT Transcribeには、WebSocketを使う専用のRealtimeの流れもあります。入力バッファに音声を追加した後、アプリケーションが音声ターンを明示的にコミットします。そのコミットしたチャンクの文字起こしが始まり、完了イベントの前に差分を出力する場合があります。検出した言語の情報も含まれます。このメーカーのセッションの流れでは、モデルが、前の文字起こし済みのターンを自動的に背景情報として使います。これは、マイク音声が届くたびにライブ字幕のテキストを連続して出力する流れとは別です。OpenAIは、その連続的な流れにGPT Live Transcribeという名称を使っています。\n\n複数のターンでは、対応する文字起こし結果とともに入力項目の識別子を保持してください。OpenAIは、異なるターンの完了イベントが発話順に届くとは限らないと注意しています。会話を完了時刻だけで並べず、各最終結果をコミットした入力に対応付けてください。有用な成果物は、正しい最終項目から組み立てた、順序の整った文字起こし結果です。途中のテキストは、別の完了した発話ではなく、進行状況として扱います。\n\n### 専用の出力と内容上の制限\n\nこの仕様は、字幕、タイムスタンプ、翻訳、話者ラベルについて、一律の契約を提供するものではありません。OpenAIの移行ガイドは、これらの専用機能を区別しています。ネイティブの字幕形式と単語の時刻情報には対応するモデルと形式が必要であり、話者ラベルにはGPT-4o Transcribe Diarizeを使います。GPT Transcribeのファイルの結果はJSONであり、SRT、VTT、詳細なタイムスタンプを含む応答をそのまま置き換えるものではありません。このモデルのモデルカードは、数値によるコンテキストや最大出力の枠を公開していないため、音声の文字起こしにチャットモデルのトークンウィンドウを仮定しないでください。\n\n難しい用語、数字、アクセント、背景の雑音、言語の切り替えを録音に照らして確認してください。関連するヒントが、発話されていない用語を加えずに認識を改善したか、最終的な文字起こしに音声の末尾まで含まれるかを確認します。複数言語の結果では、翻訳版を準備する前に、発話された言葉を保持してください。これらの確認により、背景のヒント、検出した言語、認識した発話を明確に区別しながら、文字起こし結果を原資料として使えます。",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "971d89ea795aca039e51707d464bbc17add6d36199f3ad1963b153819999c7b7",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ja",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"閉じる\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-transcribe</code><button type=\"button\" id=\"copy-id\">IDをコピー</button></div><nav class=\"card-jump-nav\" aria-label=\"モデルカードのセクション\"><button type=\"button\" data-card-jump=\"overview\">はじめに</button><button type=\"button\" data-card-jump=\"methods\">入力とメソッド</button><button type=\"button\" data-card-jump=\"pricing\">料金</button><button type=\"button\" data-card-jump=\"examples\">例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">エイリアス</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"APIメソッド\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe\">認識</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">はじめに</h3><p class=\"mdesc-full\">GPT Transcribeは、録音した音声を元の言語のテキストに変換します。背景を伝えるプロンプト、実際の語句を指定するキーワードのヒント、複数の言語のヒントを使えます。OpenAIは、完成したファイルの文字起こし、ファイルの結果のストリーミング、Realtimeでコミットした音声ターンの文字起こしを文書化しています。</p><dl class=\"card-io\" data-card-io><div><dt>対応する入力</dt><dd>音声</dd></div><div><dt>結果</dt><dd>テキスト</dd></div></dl><details class=\"card-about\"><summary>モデルについて</summary><p class=\"note-s\" data-model-method-boundary>この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。</p><div class=\"mabout\" id=\"m-about\"><p>GPT Transcribeは、完成した音声ファイル、ストリーミングするファイルの文字起こし結果、Realtimeセッションでコミットした音声ターンに向けた、OpenAIの音声認識モデルです。任意のテキストの背景情報とともに音声を受け取り、認識したテキストを返します。メーカーは、専門用語、複数言語の録音、発話中の言語切り替えを含め、録音した発話を元の言語で正確に文字起こしする用途に位置付けています。有用な出力は、録音との対応を保つ文字起こし結果です。モデルが信頼できる予測を行える場合は、検出した言語のメタデータも含まれます。</p><h4>完成した録音を準備する</h4><p>OpenAIのファイルの文字起こしの流れは、最大25 MBのアップロードを受け付けます。現在のエンドポイントのリファレンスは、FLAC、MP3、MP4、MPEG、MPGA、M4A、OGG、WAV、WebMの入力形式を挙げています。また、適切なファイル名の拡張子とコンテンツタイプなど、形式を特定するのに十分なファイルのメタデータを推奨しています。大きな録音では、圧縮するか、25 MB以下のファイルに分割することをガイドは推奨しています。前後の発話を除くと認識の精度が下がる場合があるため、文の途中で切らないでください。分割した音声の順序を保ち、元の録音内での位置を保持します。</p><p>会議、インタビュー、録音したプレゼンテーションでは、実際の音声を提供し、話題と発話されそうな用語を示してください。有用な結果は、話し合いから推測した要約ではなく、認識された言葉です。返されたテキストとともに録音の識別子を保持し、名前、数字、不確かな語句を確認する人が、正しい原資料に戻れるようにしてください。文字起こし結果は、その後の別の要約、翻訳、編集作業の資料にできます。</p><h4>背景、キーワードのヒント、想定する言語</h4><p>メーカーは、三種類の手掛かりを分けています。プロンプトは、録音の話題や場面について自由な形式の背景情報を与えます。キーワードは、発話に含まれると想定する実際の単語や語句を指定します。languagesのリストは、想定する発話言語を示します。二言語を使う製品の話し合いでは、プロンプトに場面を記述し、関連する製品名をキーワードとして挙げ、想定する言語を提供してください。これらは認識のヒントであり、誰も発話していない語句を挿入する指示ではありません。</p><p>GPT Transcribeは、従来の単数形のlanguageフィールドではなく、複数形のlanguagesフィールドを使います。OpenAIは、両方を送信しないよう指示しています。ガイドは、対応するISO 639-1コード、一部のISO 639-3コード、中国語の地域別ロケールコードを受け付け、未対応の値や形式が不正な値は拒否されると説明しています。各キーワードは一行に収め、山括弧、キャリッジリターン、改行を含めないでください。不正なキーワードや長すぎるプロンプトにより、リクエスト全体が拒否される場合があります。関連する背景に絞り、ヒントのリストを文字起こし結果として扱わず、指定した名前が音声内で実際に発話されているかを確認してください。</p><h4>JSON出力と検出した言語の予測</h4><p>文書化されたファイルの結果は、文字起こしと検出した言語を含むJSONです。言語の予測はモデルの出力であり、提供した言語のヒントのコピーではありません。モデルが信頼できる予測を行えない場合、空の言語リストも有効な結果です。録音が無音だったことや、文字起こしに失敗したことを示すものではありません。後の処理でそれぞれの意味に沿って使えるよう、認識したテキストと言語のメタデータを分けて保持してください。</p><h4>ファイルの文字起こし結果をストリーミングする</h4><p>完成したファイルでは、処理中に文字起こしのテキストを順次出力できます。OpenAIは、途中のテキストのtranscript.text.deltaイベントと、ファイル全体の文字起こし結果のtranscript.text.doneイベントを文書化しています。最終イベントには、検出した言語も含まれます。これは、すでに提供した録音の出力をストリーミングするものです。長いアップロードの進行状況を表示するのに役立ち、最終イベントが、完了した結果として保持するテキストを確定します。</p><h4>Realtimeセッションでコミットしたターン</h4><p>GPT Transcribeには、WebSocketを使う専用のRealtimeの流れもあります。入力バッファに音声を追加した後、アプリケーションが音声ターンを明示的にコミットします。そのコミットしたチャンクの文字起こしが始まり、完了イベントの前に差分を出力する場合があります。検出した言語の情報も含まれます。このメーカーのセッションの流れでは、モデルが、前の文字起こし済みのターンを自動的に背景情報として使います。これは、マイク音声が届くたびにライブ字幕のテキストを連続して出力する流れとは別です。OpenAIは、その連続的な流れにGPT Live Transcribeという名称を使っています。</p><p>複数のターンでは、対応する文字起こし結果とともに入力項目の識別子を保持してください。OpenAIは、異なるターンの完了イベントが発話順に届くとは限らないと注意しています。会話を完了時刻だけで並べず、各最終結果をコミットした入力に対応付けてください。有用な成果物は、正しい最終項目から組み立てた、順序の整った文字起こし結果です。途中のテキストは、別の完了した発話ではなく、進行状況として扱います。</p><h4>専用の出力と内容上の制限</h4><p>この仕様は、字幕、タイムスタンプ、翻訳、話者ラベルについて、一律の契約を提供するものではありません。OpenAIの移行ガイドは、これらの専用機能を区別しています。ネイティブの字幕形式と単語の時刻情報には対応するモデルと形式が必要であり、話者ラベルにはGPT-4o Transcribe Diarizeを使います。GPT Transcribeのファイルの結果はJSONであり、SRT、VTT、詳細なタイムスタンプを含む応答をそのまま置き換えるものではありません。このモデルのモデルカードは、数値によるコンテキストや最大出力の枠を公開していないため、音声の文字起こしにチャットモデルのトークンウィンドウを仮定しないでください。</p><p>難しい用語、数字、アクセント、背景の雑音、言語の切り替えを録音に照らして確認してください。関連するヒントが、発話されていない用語を加えずに認識を改善したか、最終的な文字起こしに音声の末尾まで含まれるかを確認します。複数言語の結果では、翻訳版を準備する前に、発話された言葉を保持してください。これらの確認により、背景のヒント、検出した言語、認識した発話を明確に区別しながら、文字起こし結果を原資料として使えます。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailootで利用可能 · 入力とメソッド</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · 文字起こし</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>入力の種類</dt><dd><code>audio</code></dd></div><div><dt>出力の種類</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>フィールド</th><th>種類</th><th>要件</th><th>値と制限</th><th>デフォルト</th></tr></thead><tbody><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>必須</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>openai/gpt-transcribe</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>object</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>必須</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>メソッドのパラメータとライフサイクル</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>パラメータ</th><th>仕様</th></tr></thead><tbody><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>content_type</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>application/json</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>required</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>model, input_audio</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>material_types</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>audio</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>material_conditions</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>この例では、実際の空でないPCM WAVファイルを読み込み、ファイル全体のバイト列をbase64にエンコードして、input_audio.formatをwavとして送信します。</td></tr></tbody></table></div><p>ライフサイクル: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · 既存の所有メディアレコードにある正確なtask_id</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">料金</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。</p><dl data-price-conditions><dt>高速モード</dt><dd>未指定 <span class=\"note-s\">高速モードが選択されている場合</span></dd><dt>Flex モード</dt><dd>未指定 <span class=\"note-s\">flex モードが選択されている場合</span></dd><dt>最大推論量</dt><dd>未指定 <span class=\"note-s\">推論量が最大で、調整に既定値（default）を使用する場合</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailootの料金</h4><h4>設定別の価格</h4><p class=\"note-s\">各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>料金表</th><th>課金単位</th><th>料金</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>基本トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>基本料金</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>—</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>入力 · 入力トークン</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>出力 · 出力トークン</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ読み取り</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ書き込み</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ書き込み、1時間</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>入力音声の秒</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>入力音声1秒あたり</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>入力 · 入力音声の秒</span> <b>$0.00015</b> <span class=\"price-unit\">入力音声1秒あたり</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。<a href=\"/docs/ja/billing/reserve/\">金額の確保と精算の仕組み →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">リクエスト例</h3><h4>Ailoot Ultra · 文字起こし</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"コードの種類\"><button class=\"cg-tab\" id=\"model-code-2158-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2158-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · 実際の WAV ファイルと元の結果全体</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"コードをコピー\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2158-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2158-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;openai/gpt-transcribe&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">結果を受け取って保存</h3><h4>Ailoot Ultra · 文字起こし</h4><p class=\"note-s\">元のレスポンス本文全体、ステータス、および転送されたヘッダー。このハンドラーは共通のJSON構造、テキストフィールド、タスクの外側の構造を追加しません。</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>完了した結果をすべて保存</h5><p class=\"note-s\">返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。</p><p class=\"note-s\">レスポンスとヘッダーの全体、実際の出力すべて、最初に返された識別子、使用量フィールドすべてを保存してください。作成リクエストを再送せずに、元の操作を復旧してください。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>元のレスポンスを確認する場合</h5><p class=\"note-s\">実際のX-Client-Request-IDと完全なレスポンスを保持してください。元の所有アセットと、その正確な署名付きコンテンツURLを読み取ってください。結果が不確かな作成リクエストは、決して再送信しないでください。</p></div><details class=\"card-about\" data-output-fields><summary>レスポンスのフィールド</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>フィールド</th><th>種類</th></tr></thead><tbody><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span></td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>エラーと次の手順</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>レスポンス</th><th>条件</th><th>次の手順</th></tr></thead><tbody><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>JSON本文、または明示された正規モデルIDが無効です。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>レスポンスを保持し、指摘されたリクエストフィールドを修正してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>401 · <code>authentication_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>Ailoot APIキーが無効です。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>利用権限のあるAiloot APIキーを使用してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>403 · <code>permission_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>このキーのグループでは、このメソッドの利用が許可されていません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>返されたエラーの詳細を保持してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>404 · <code>not_found_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>選択したメソッドには、利用が許可されたルートがありません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>返されたエラーの詳細を保持してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>受諾済みの料金体系に必要な入力量、またはその上限を取得できません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>レスポンスを保持し、受諾済みの料金体系で必要とされる入力表現を使用してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>503 · <code></code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>必要な保存領域、ルート、メソッド料金、または料金の仮押さえを利用できません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>元のレスポンス全体を保持してください。料金の仮押さえ状態が不明でも、再送信が認められるわけではありません。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>502 · <code>server_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>元の結果、使用量、または精算を確認する必要があります。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>実際のリクエストIDと元のレスポンスを保持してください。既存の所有レコードを読み取ってください。作成リクエストを再送信しないでください。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">エイリアス</h3><h4>モデルのエイリアス</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></span></p><h4>メソッドパスのエイリアス</h4><p class=\"note-s\">上記に表示されたメソッドパスを使用してください。</p><h4>関連する呼び出し用ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON本文、または明示された正規モデルIDが無効です。",
                "http_status": 400,
                "recovery": "レスポンスを保持し、指摘されたリクエストフィールドを修正してください。",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot APIキーが無効です。",
                "http_status": 401,
                "recovery": "利用権限のあるAiloot APIキーを使用してください。",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "このキーのグループでは、このメソッドの利用が許可されていません。",
                "http_status": 403,
                "recovery": "返されたエラーの詳細を保持してください。",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "選択したメソッドには、利用が許可されたルートがありません。",
                "http_status": 404,
                "recovery": "返されたエラーの詳細を保持してください。",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "受諾済みの料金体系に必要な入力量、またはその上限を取得できません。",
                "http_status": 422,
                "recovery": "レスポンスを保持し、受諾済みの料金体系で必要とされる入力表現を使用してください。",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "必要な保存領域、ルート、メソッド料金、または料金の仮押さえを利用できません。",
                "http_status": 503,
                "recovery": "元のレスポンス全体を保持してください。料金の仮押さえ状態が不明でも、再送信が認められるわけではありません。",
                "type": null
              },
              {
                "code": null,
                "condition": "元の結果、使用量、または精算を確認する必要があります。",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "実際のリクエストIDと元のレスポンスを保持してください。既存の所有レコードを読み取ってください。作成リクエストを再送信しないでください。",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "実際のX-Client-Request-IDと完全なレスポンスを保持してください。元の所有アセットと、その正確な署名付きコンテンツURLを読み取ってください。結果が不確かな作成リクエストは、決して再送信しないでください。"
            },
            "outputs": {
              "all_results": "レスポンスとヘッダーの全体、実際の出力すべて、最初に返された識別子、使用量フィールドすべてを保存してください。作成リクエストを再送せずに、元の操作を復旧してください。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "元のレスポンス本文全体、ステータス、および転送されたヘッダー。このハンドラーは共通のJSON構造、テキストフィールド、タスクの外側の構造を追加しません。"
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/gpt-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "openai/gpt-transcribe"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "この例では、実際の空でないPCM WAVファイルを読み込み、ファイル全体のバイト列をbase64にエンコードして、input_audio.formatをwavとして送信します。"
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "既存の所有メディアレコードにある正確なtask_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'openai/gpt-transcribe', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "文字起こし",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.00015
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "openai/gpt-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b446f9f5a70b0ad0c1357f0a0471b4b40c11533f22b32ad31afdc38b2e09618e",
    "input_html_sha256": "e74c88f71f42a4b5af4e2917db1e4df2aa4d4fc6a723fab6c141f2611e432731",
    "private_audit_sha256": "e1c59ceb525d466488fb361bea7fb93b2da38a896ed063654d5f567d4fee11e4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ja/openai-gpt-transcribe/",
    "description": "GPT Transcribeは、録音した音声を元の言語のテキストに変換します。背景を伝えるプロンプト、実際の語句を指定するキーワードのヒント、複数の言語のヒントを使えます。OpenAIは、完成したファイルの文字起こし、ファイルの結果のストリーミング、Realtimeでコミットした音声ターンの文字起こしを文書化しています。",
    "locale": "ja",
    "md_url": "https://ailoot.ai/models/ja/openai-gpt-transcribe/index.md",
    "title": "OpenAI: GPT Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/ja/openai-gpt-transcribe/"
  },
  "rawModel": {
    "about": "GPT Transcribeは、完成した音声ファイル、ストリーミングするファイルの文字起こし結果、Realtimeセッションでコミットした音声ターンに向けた、OpenAIの音声認識モデルです。任意のテキストの背景情報とともに音声を受け取り、認識したテキストを返します。メーカーは、専門用語、複数言語の録音、発話中の言語切り替えを含め、録音した発話を元の言語で正確に文字起こしする用途に位置付けています。有用な出力は、録音との対応を保つ文字起こし結果です。モデルが信頼できる予測を行える場合は、検出した言語のメタデータも含まれます。\n\n### 完成した録音を準備する\n\nOpenAIのファイルの文字起こしの流れは、最大25 MBのアップロードを受け付けます。現在のエンドポイントのリファレンスは、FLAC、MP3、MP4、MPEG、MPGA、M4A、OGG、WAV、WebMの入力形式を挙げています。また、適切なファイル名の拡張子とコンテンツタイプなど、形式を特定するのに十分なファイルのメタデータを推奨しています。大きな録音では、圧縮するか、25 MB以下のファイルに分割することをガイドは推奨しています。前後の発話を除くと認識の精度が下がる場合があるため、文の途中で切らないでください。分割した音声の順序を保ち、元の録音内での位置を保持します。\n\n会議、インタビュー、録音したプレゼンテーションでは、実際の音声を提供し、話題と発話されそうな用語を示してください。有用な結果は、話し合いから推測した要約ではなく、認識された言葉です。返されたテキストとともに録音の識別子を保持し、名前、数字、不確かな語句を確認する人が、正しい原資料に戻れるようにしてください。文字起こし結果は、その後の別の要約、翻訳、編集作業の資料にできます。\n\n### 背景、キーワードのヒント、想定する言語\n\nメーカーは、三種類の手掛かりを分けています。プロンプトは、録音の話題や場面について自由な形式の背景情報を与えます。キーワードは、発話に含まれると想定する実際の単語や語句を指定します。languagesのリストは、想定する発話言語を示します。二言語を使う製品の話し合いでは、プロンプトに場面を記述し、関連する製品名をキーワードとして挙げ、想定する言語を提供してください。これらは認識のヒントであり、誰も発話していない語句を挿入する指示ではありません。\n\nGPT Transcribeは、従来の単数形のlanguageフィールドではなく、複数形のlanguagesフィールドを使います。OpenAIは、両方を送信しないよう指示しています。ガイドは、対応するISO 639-1コード、一部のISO 639-3コード、中国語の地域別ロケールコードを受け付け、未対応の値や形式が不正な値は拒否されると説明しています。各キーワードは一行に収め、山括弧、キャリッジリターン、改行を含めないでください。不正なキーワードや長すぎるプロンプトにより、リクエスト全体が拒否される場合があります。関連する背景に絞り、ヒントのリストを文字起こし結果として扱わず、指定した名前が音声内で実際に発話されているかを確認してください。\n\n### JSON出力と検出した言語の予測\n\n文書化されたファイルの結果は、文字起こしと検出した言語を含むJSONです。言語の予測はモデルの出力であり、提供した言語のヒントのコピーではありません。モデルが信頼できる予測を行えない場合、空の言語リストも有効な結果です。録音が無音だったことや、文字起こしに失敗したことを示すものではありません。後の処理でそれぞれの意味に沿って使えるよう、認識したテキストと言語のメタデータを分けて保持してください。\n\n### ファイルの文字起こし結果をストリーミングする\n\n完成したファイルでは、処理中に文字起こしのテキストを順次出力できます。OpenAIは、途中のテキストのtranscript.text.deltaイベントと、ファイル全体の文字起こし結果のtranscript.text.doneイベントを文書化しています。最終イベントには、検出した言語も含まれます。これは、すでに提供した録音の出力をストリーミングするものです。長いアップロードの進行状況を表示するのに役立ち、最終イベントが、完了した結果として保持するテキストを確定します。\n\n### Realtimeセッションでコミットしたターン\n\nGPT Transcribeには、WebSocketを使う専用のRealtimeの流れもあります。入力バッファに音声を追加した後、アプリケーションが音声ターンを明示的にコミットします。そのコミットしたチャンクの文字起こしが始まり、完了イベントの前に差分を出力する場合があります。検出した言語の情報も含まれます。このメーカーのセッションの流れでは、モデルが、前の文字起こし済みのターンを自動的に背景情報として使います。これは、マイク音声が届くたびにライブ字幕のテキストを連続して出力する流れとは別です。OpenAIは、その連続的な流れにGPT Live Transcribeという名称を使っています。\n\n複数のターンでは、対応する文字起こし結果とともに入力項目の識別子を保持してください。OpenAIは、異なるターンの完了イベントが発話順に届くとは限らないと注意しています。会話を完了時刻だけで並べず、各最終結果をコミットした入力に対応付けてください。有用な成果物は、正しい最終項目から組み立てた、順序の整った文字起こし結果です。途中のテキストは、別の完了した発話ではなく、進行状況として扱います。\n\n### 専用の出力と内容上の制限\n\nこの仕様は、字幕、タイムスタンプ、翻訳、話者ラベルについて、一律の契約を提供するものではありません。OpenAIの移行ガイドは、これらの専用機能を区別しています。ネイティブの字幕形式と単語の時刻情報には対応するモデルと形式が必要であり、話者ラベルにはGPT-4o Transcribe Diarizeを使います。GPT Transcribeのファイルの結果はJSONであり、SRT、VTT、詳細なタイムスタンプを含む応答をそのまま置き換えるものではありません。このモデルのモデルカードは、数値によるコンテキストや最大出力の枠を公開していないため、音声の文字起こしにチャットモデルのトークンウィンドウを仮定しないでください。\n\n難しい用語、数字、アクセント、背景の雑音、言語の切り替えを録音に照らして確認してください。関連するヒントが、発話されていない用語を加えずに認識を改善したか、最終的な文字起こしに音声の末尾まで含まれるかを確認します。複数言語の結果では、翻訳版を準備する前に、発話された言葉を保持してください。これらの確認により、背景のヒント、検出した言語、認識した発話を明確に区別しながら、文字起こし結果を原資料として使えます。",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "構成の料金情報はすべて詳細で確認できます。"
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "openai/gpt-transcribe",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON本文、または明示された正規モデルIDが無効です。",
                "http_status": 400,
                "recovery": "レスポンスを保持し、指摘されたリクエストフィールドを修正してください。",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot APIキーが無効です。",
                "http_status": 401,
                "recovery": "利用権限のあるAiloot APIキーを使用してください。",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "このキーのグループでは、このメソッドの利用が許可されていません。",
                "http_status": 403,
                "recovery": "返されたエラーの詳細を保持してください。",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "選択したメソッドには、利用が許可されたルートがありません。",
                "http_status": 404,
                "recovery": "返されたエラーの詳細を保持してください。",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "受諾済みの料金体系に必要な入力量、またはその上限を取得できません。",
                "http_status": 422,
                "recovery": "レスポンスを保持し、受諾済みの料金体系で必要とされる入力表現を使用してください。",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "必要な保存領域、ルート、メソッド料金、または料金の仮押さえを利用できません。",
                "http_status": 503,
                "recovery": "元のレスポンス全体を保持してください。料金の仮押さえ状態が不明でも、再送信が認められるわけではありません。",
                "type": null
              },
              {
                "code": null,
                "condition": "元の結果、使用量、または精算を確認する必要があります。",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "実際のリクエストIDと元のレスポンスを保持してください。既存の所有レコードを読み取ってください。作成リクエストを再送信しないでください。",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "実際のX-Client-Request-IDと完全なレスポンスを保持してください。元の所有アセットと、その正確な署名付きコンテンツURLを読み取ってください。結果が不確かな作成リクエストは、決して再送信しないでください。"
            },
            "outputs": {
              "all_results": "レスポンスとヘッダーの全体、実際の出力すべて、最初に返された識別子、使用量フィールドすべてを保存してください。作成リクエストを再送せずに、元の操作を復旧してください。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "元のレスポンス本文全体、ステータス、および転送されたヘッダー。このハンドラーは共通のJSON構造、テキストフィールド、タスクの外側の構造を追加しません。"
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/gpt-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "openai/gpt-transcribe"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "この例では、実際の空でないPCM WAVファイルを読み込み、ファイル全体のバイト列をbase64にエンコードして、input_audio.formatをwavとして送信します。"
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "既存の所有メディアレコードにある正確なtask_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'openai/gpt-transcribe', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "文字起こし",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.00015
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "openai/gpt-transcribe",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "GPT Transcribeは、録音した音声を元の言語のテキストに変換します。背景を伝えるプロンプト、実際の語句を指定するキーワードのヒント、複数の言語のヒントを使えます。OpenAIは、完成したファイルの文字起こし、ファイルの結果のストリーミング、Realtimeでコミットした音声ターンの文字起こしを文書化しています。"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "GPT Transcribeは、録音した音声を元の言語のテキストに変換します。背景を伝えるプロンプト、実際の語句を指定するキーワードのヒント、複数の言語のヒントを使えます。OpenAIは、完成したファイルの文字起こし、ファイルの結果のストリーミング、Realtimeでコミットした音声ターンの文字起こしを文書化しています。",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "77a85c38726e3d10edaf387b7c885e9e516eb7b4112ed7b285d6d554fbd07369",
    "renderer_sha256": "b06e5309d3e585ab5fe0535c1a8bd6320bdc357ea8509c2389320e8fa40c36e5"
  },
  "sourceRevision": "4e7dc976c68619d800b1132411098a2be7fb39ecfb3b6c301338eaf15b7a5a1a"
}
