{
  "aboutHtml": "<p>Universal-3.5 Pro は、録音された発話をテキストに変換する AssemblyAI の音声認識モデルです。Sync プロファイルでは、短い音声クリップから、1回の応答で完成した文字起こしが生成されます。音声メッセージ、プッシュ・トゥ・トーク入力、録音を終了すべき時点をアプリケーション側ですでに把握している個別の会話ターンに適しています。</p><p>音声は、長さを限定したクリップとして用意します。AssemblyAI の Sync の要件では、80 ミリ秒〜120 秒の長さを受け付け、最大ファイルサイズは 40 MB です。対応形式は WAV、または符号付き 16 ビット・リトルエンディアンの raw PCM です。音声はモノラルまたはステレオにでき、ステレオは内部でダウンミックスされます。対応サンプルレートは 8、16、22.05、24、32、44.1、48 kHz です。WAV ヘッダーにはサンプルレートとチャンネル数が含まれます。raw PCM では、文字起こし設定でこれらの値を別途指定する必要があります。</p><p>発話全体を収録し、話し始めと話し終わりを欠けさせないでください。独自の実用例として、商品名、注文識別子、依頼を含む短い商品サポートの音声メッセージを用意できます。これらの重要な詳細を文字起こしと照合できるよう、元のクリップを保存します。長い録音には、長時間の文字起こしに適したワークフローを用意してください。短いクリップの時間上限を、モデル全体の音声処理容量として扱わないようにします。</p><p>結果には、全文の文字起こし、単語ごとの信頼度を持つ単語一覧、0〜1 の全体の信頼度が含まれます。送信した音声の長さとリクエスト識別子も返されるため、テキストと元のクリップの対応を維持できます。単語の信頼度を使って、聞き直して確認すべき箇所を見つけます。特に、アプリケーションで重要な名前、数値、専門語彙を確認してください。</p><p>単語タイムスタンプは任意で、既定では無効です。要求すると、位置合わせできた各単語に、クリップ開始からのミリ秒単位の開始時刻と終了時刻を付けられます。メーカーのプロファイルでは、単語を位置合わせできない場合、推定の時刻を作るのではなく、その値を省略します。タイムスタンプの精度は英語音声で最も高くなります。単語のハイライト、検索可能な波形、字幕の位置合わせを用意するときは、時刻が欠けていることを明示的に保持し、完成した字幕トラックとして使う前に、テキストを録音と照合します。</p><p>文脈プロンプトでは、録音の内容を説明します。分野、シナリオ、アプリケーションがすでに把握している具体的な情報を記述でき、最大長は 6000 文字です。特定の機器に関するテクニカルサポートの会話など、音声に合った短い説明から始めます。このプロンプトは認識のための文脈を与えるものであり、話者のメッセージを別の文書に書き換える依頼ではありません。</p><p>別のキーターム一覧を使うと、特定の語彙が認識されやすくなります。Sync プロファイルは、最大 100 語、一覧全体で 8000 文字まで受け付けます。珍しい名前、略語、製品用語には正確な綴りを使い、通常十分に認識される単語は一覧に入れないでください。大きすぎる一覧や不要な語句は過剰な補正を引き起こすことがあるため、録音で重要な語に絞ります。文脈の説明と語彙一覧は併用できます。</p><p>過去の対話も、短い返答の解釈に役立ちます。以前の発話を古い順から新しい順に提供し、現在の音声を文字起こしの対象ターンとします。文書化されたコンテキストの上限は、500 ターン、または合計 16,000 文字です。これらの上限やモデルで利用可能なコンテキストを超える場合、最も古い項目から削除されます。短い回答に識別子や参照表現が含まれ、その意味が直前の質問から分かる場合に役立ちます。</p><p>言語選択は、想定する1つ以上の言語へ認識を誘導します。現在の Sync インターフェースは 32 の言語コードを受け付け、指定がない場合は英語を既定とします。複数言語が切り替わる音声では、想定言語を列挙してください。カスタムの文脈プロンプトを指定すると、管理された既定プロンプトが置き換わり、別途指定した言語コードによる誘導より優先されます。言語とシナリオの両方の文脈が必要な場合は、想定言語をそのプロンプト内に記述します。文字起こしを翻訳の指示として扱わず、実際に話された言語で保持してください。</p><p>このモデルは AssemblyAI の他の文字起こしワークフローにも登場しますが、Sync プロファイルの短いクリップ向けの要件と結果フィールドは、この特定のインターフェースに属します。メーカーの Dictation ワークフローには、別工程のテキスト整形が追加されています。文字起こしと、書き直したメッセージは別の成果物です。後の編集や要約で整形版を作る場合も、比較できるよう、認識された元の発話を保存してください。</p><p>有用な成果物には、音声メッセージの文字起こし、アシスタント向けの完成した会話ターン、短い音声の検索可能なテキスト、確認用インターフェース向けの時刻付き単語一覧があります。決め手になる単語を録音で確認し、位置合わせの欠落を保持し、クリップと返されたテキストのリンクを残します。認識結果は、次のアプリケーション工程に原音で裏付けられた文字起こしを提供します。依頼への回答やメッセージの編集は、周辺のワークフローが担います。</p>",
  "aboutText": "Universal-3.5 Pro は、録音された発話をテキストに変換する AssemblyAI の音声認識モデルです。Sync プロファイルでは、短い音声クリップから、1回の応答で完成した文字起こしが生成されます。音声メッセージ、プッシュ・トゥ・トーク入力、録音を終了すべき時点をアプリケーション側ですでに把握している個別の会話ターンに適しています。\n\n音声は、長さを限定したクリップとして用意します。AssemblyAI の Sync の要件では、80 ミリ秒〜120 秒の長さを受け付け、最大ファイルサイズは 40 MB です。対応形式は WAV、または符号付き 16 ビット・リトルエンディアンの raw PCM です。音声はモノラルまたはステレオにでき、ステレオは内部でダウンミックスされます。対応サンプルレートは 8、16、22.05、24、32、44.1、48 kHz です。WAV ヘッダーにはサンプルレートとチャンネル数が含まれます。raw PCM では、文字起こし設定でこれらの値を別途指定する必要があります。\n\n発話全体を収録し、話し始めと話し終わりを欠けさせないでください。独自の実用例として、商品名、注文識別子、依頼を含む短い商品サポートの音声メッセージを用意できます。これらの重要な詳細を文字起こしと照合できるよう、元のクリップを保存します。長い録音には、長時間の文字起こしに適したワークフローを用意してください。短いクリップの時間上限を、モデル全体の音声処理容量として扱わないようにします。\n\n結果には、全文の文字起こし、単語ごとの信頼度を持つ単語一覧、0〜1 の全体の信頼度が含まれます。送信した音声の長さとリクエスト識別子も返されるため、テキストと元のクリップの対応を維持できます。単語の信頼度を使って、聞き直して確認すべき箇所を見つけます。特に、アプリケーションで重要な名前、数値、専門語彙を確認してください。\n\n単語タイムスタンプは任意で、既定では無効です。要求すると、位置合わせできた各単語に、クリップ開始からのミリ秒単位の開始時刻と終了時刻を付けられます。メーカーのプロファイルでは、単語を位置合わせできない場合、推定の時刻を作るのではなく、その値を省略します。タイムスタンプの精度は英語音声で最も高くなります。単語のハイライト、検索可能な波形、字幕の位置合わせを用意するときは、時刻が欠けていることを明示的に保持し、完成した字幕トラックとして使う前に、テキストを録音と照合します。\n\n文脈プロンプトでは、録音の内容を説明します。分野、シナリオ、アプリケーションがすでに把握している具体的な情報を記述でき、最大長は 6000 文字です。特定の機器に関するテクニカルサポートの会話など、音声に合った短い説明から始めます。このプロンプトは認識のための文脈を与えるものであり、話者のメッセージを別の文書に書き換える依頼ではありません。\n\n別のキーターム一覧を使うと、特定の語彙が認識されやすくなります。Sync プロファイルは、最大 100 語、一覧全体で 8000 文字まで受け付けます。珍しい名前、略語、製品用語には正確な綴りを使い、通常十分に認識される単語は一覧に入れないでください。大きすぎる一覧や不要な語句は過剰な補正を引き起こすことがあるため、録音で重要な語に絞ります。文脈の説明と語彙一覧は併用できます。\n\n過去の対話も、短い返答の解釈に役立ちます。以前の発話を古い順から新しい順に提供し、現在の音声を文字起こしの対象ターンとします。文書化されたコンテキストの上限は、500 ターン、または合計 16,000 文字です。これらの上限やモデルで利用可能なコンテキストを超える場合、最も古い項目から削除されます。短い回答に識別子や参照表現が含まれ、その意味が直前の質問から分かる場合に役立ちます。\n\n言語選択は、想定する1つ以上の言語へ認識を誘導します。現在の Sync インターフェースは 32 の言語コードを受け付け、指定がない場合は英語を既定とします。複数言語が切り替わる音声では、想定言語を列挙してください。カスタムの文脈プロンプトを指定すると、管理された既定プロンプトが置き換わり、別途指定した言語コードによる誘導より優先されます。言語とシナリオの両方の文脈が必要な場合は、想定言語をそのプロンプト内に記述します。文字起こしを翻訳の指示として扱わず、実際に話された言語で保持してください。\n\nこのモデルは AssemblyAI の他の文字起こしワークフローにも登場しますが、Sync プロファイルの短いクリップ向けの要件と結果フィールドは、この特定のインターフェースに属します。メーカーの Dictation ワークフローには、別工程のテキスト整形が追加されています。文字起こしと、書き直したメッセージは別の成果物です。後の編集や要約で整形版を作る場合も、比較できるよう、認識された元の発話を保存してください。\n\n有用な成果物には、音声メッセージの文字起こし、アシスタント向けの完成した会話ターン、短い音声の検索可能なテキスト、確認用インターフェース向けの時刻付き単語一覧があります。決め手になる単語を録音で確認し、位置合わせの欠落を保持し、クリップと返されたテキストのリンクを残します。認識結果は、次のアプリケーション工程に原音で裏付けられた文字起こしを提供します。依頼への回答やメッセージの編集は、周辺のワークフローが担います。",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6089611194ba175f1f042a147bde6fba4c77125ba36898e1a654f72ebaf7c18c",
    "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\">•</span><h2 id=\"sheet-title\">AssemblyAI: Universal-3.5 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"閉じる\">×</button></div><div class=\"idline\"><span>AssemblyAI /</span><code>assemblyai/universal-3-5-pro</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|assemblyai%2Funiversal-3-5-pro\">認識</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\">Universal-3.5 Pro は、短い音声クリップを1回の応答で完成した文字起こしに変換する、AssemblyAI の音声認識モデルです。Sync プロファイルは、音声入力やプッシュ・トゥ・トークのワークフロー向けに、単語の信頼度、任意の単語タイムスタンプ、語彙ヒント、過去の対話コンテキストを備えています。</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>Universal-3.5 Pro は、録音された発話をテキストに変換する AssemblyAI の音声認識モデルです。Sync プロファイルでは、短い音声クリップから、1回の応答で完成した文字起こしが生成されます。音声メッセージ、プッシュ・トゥ・トーク入力、録音を終了すべき時点をアプリケーション側ですでに把握している個別の会話ターンに適しています。</p><p>音声は、長さを限定したクリップとして用意します。AssemblyAI の Sync の要件では、80 ミリ秒〜120 秒の長さを受け付け、最大ファイルサイズは 40 MB です。対応形式は WAV、または符号付き 16 ビット・リトルエンディアンの raw PCM です。音声はモノラルまたはステレオにでき、ステレオは内部でダウンミックスされます。対応サンプルレートは 8、16、22.05、24、32、44.1、48 kHz です。WAV ヘッダーにはサンプルレートとチャンネル数が含まれます。raw PCM では、文字起こし設定でこれらの値を別途指定する必要があります。</p><p>発話全体を収録し、話し始めと話し終わりを欠けさせないでください。独自の実用例として、商品名、注文識別子、依頼を含む短い商品サポートの音声メッセージを用意できます。これらの重要な詳細を文字起こしと照合できるよう、元のクリップを保存します。長い録音には、長時間の文字起こしに適したワークフローを用意してください。短いクリップの時間上限を、モデル全体の音声処理容量として扱わないようにします。</p><p>結果には、全文の文字起こし、単語ごとの信頼度を持つ単語一覧、0〜1 の全体の信頼度が含まれます。送信した音声の長さとリクエスト識別子も返されるため、テキストと元のクリップの対応を維持できます。単語の信頼度を使って、聞き直して確認すべき箇所を見つけます。特に、アプリケーションで重要な名前、数値、専門語彙を確認してください。</p><p>単語タイムスタンプは任意で、既定では無効です。要求すると、位置合わせできた各単語に、クリップ開始からのミリ秒単位の開始時刻と終了時刻を付けられます。メーカーのプロファイルでは、単語を位置合わせできない場合、推定の時刻を作るのではなく、その値を省略します。タイムスタンプの精度は英語音声で最も高くなります。単語のハイライト、検索可能な波形、字幕の位置合わせを用意するときは、時刻が欠けていることを明示的に保持し、完成した字幕トラックとして使う前に、テキストを録音と照合します。</p><p>文脈プロンプトでは、録音の内容を説明します。分野、シナリオ、アプリケーションがすでに把握している具体的な情報を記述でき、最大長は 6000 文字です。特定の機器に関するテクニカルサポートの会話など、音声に合った短い説明から始めます。このプロンプトは認識のための文脈を与えるものであり、話者のメッセージを別の文書に書き換える依頼ではありません。</p><p>別のキーターム一覧を使うと、特定の語彙が認識されやすくなります。Sync プロファイルは、最大 100 語、一覧全体で 8000 文字まで受け付けます。珍しい名前、略語、製品用語には正確な綴りを使い、通常十分に認識される単語は一覧に入れないでください。大きすぎる一覧や不要な語句は過剰な補正を引き起こすことがあるため、録音で重要な語に絞ります。文脈の説明と語彙一覧は併用できます。</p><p>過去の対話も、短い返答の解釈に役立ちます。以前の発話を古い順から新しい順に提供し、現在の音声を文字起こしの対象ターンとします。文書化されたコンテキストの上限は、500 ターン、または合計 16,000 文字です。これらの上限やモデルで利用可能なコンテキストを超える場合、最も古い項目から削除されます。短い回答に識別子や参照表現が含まれ、その意味が直前の質問から分かる場合に役立ちます。</p><p>言語選択は、想定する1つ以上の言語へ認識を誘導します。現在の Sync インターフェースは 32 の言語コードを受け付け、指定がない場合は英語を既定とします。複数言語が切り替わる音声では、想定言語を列挙してください。カスタムの文脈プロンプトを指定すると、管理された既定プロンプトが置き換わり、別途指定した言語コードによる誘導より優先されます。言語とシナリオの両方の文脈が必要な場合は、想定言語をそのプロンプト内に記述します。文字起こしを翻訳の指示として扱わず、実際に話された言語で保持してください。</p><p>このモデルは AssemblyAI の他の文字起こしワークフローにも登場しますが、Sync プロファイルの短いクリップ向けの要件と結果フィールドは、この特定のインターフェースに属します。メーカーの Dictation ワークフローには、別工程のテキスト整形が追加されています。文字起こしと、書き直したメッセージは別の成果物です。後の編集や要約で整形版を作る場合も、比較できるよう、認識された元の発話を保存してください。</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>assemblyai/universal-3-5-pro</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.00025</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-1073-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1073-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-1073-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1073-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;assemblyai/universal-3-5-pro&#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=assemblyai%2Funiversal-3-5-pro&amp;route=Ultra&amp;caller=assemblyai%2Funiversal-3-5-pro&amp;fmt=transcriptions\"><code>assemblyai/universal-3-5-pro</code></a></span></p><h4>メソッドパスのエイリアス</h4><p class=\"note-s\">上記に表示されたメソッドパスを使用してください。</p><h4>関連する呼び出し用ID</h4><p class=\"note-s\"><a href=\"#m=assemblyai%2Funiversal-3-5-pro&amp;route=Ultra&amp;caller=assemblyai%2Funiversal-3-5-pro&amp;fmt=transcriptions\"><code>assemblyai/universal-3-5-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "assemblyai/universal-3-5-pro",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "assemblyai/universal-3-5-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|assemblyai%2Funiversal-3-5-pro",
      "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": [
                  "assemblyai/universal-3-5-pro"
                ],
                "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": [
                    "assemblyai/universal-3-5-pro"
                  ],
                  "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": "assemblyai/universal-3-5-pro"
              },
              "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.00025",
                "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.00025",
                "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': 'assemblyai/universal-3-5-pro', '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.00025
          }
        },
        "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.00025",
                "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.00025",
                "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": "assemblyai/universal-3-5-pro",
        "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.00025",
            "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.00025",
            "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": "assemblyai/universal-3-5-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "864515c198ab5618ed0bb665f1b5ffbf258be74cf5ea1532cdb461903fd90339",
    "input_html_sha256": "bc7e05d2f0d489178bd09565a45dce68b523271cda04edad5840c406340dc1a6",
    "private_audit_sha256": "8ecf1898b8eb1be18d35472b741df02190bffdcbcf0a55fcacf98f7514f25515",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ja/assemblyai-universal-3-5-pro/",
    "description": "Universal-3.5 Pro は、短い音声クリップを1回の応答で完成した文字起こしに変換する、AssemblyAI の音声認識モデルです。Sync プロファイルは、音声入力やプッシュ・トゥ・トークのワークフロー向けに、単語の信頼度、任意の単語タイムスタンプ、語彙ヒント、過去の対話コンテキストを備えています。",
    "locale": "ja",
    "md_url": "https://ailoot.ai/models/ja/assemblyai-universal-3-5-pro/index.md",
    "title": "AssemblyAI: Universal-3.5 Pro — Ailoot",
    "url": "https://ailoot.ai/models/ja/assemblyai-universal-3-5-pro/"
  },
  "rawModel": {
    "about": "Universal-3.5 Pro は、録音された発話をテキストに変換する AssemblyAI の音声認識モデルです。Sync プロファイルでは、短い音声クリップから、1回の応答で完成した文字起こしが生成されます。音声メッセージ、プッシュ・トゥ・トーク入力、録音を終了すべき時点をアプリケーション側ですでに把握している個別の会話ターンに適しています。\n\n音声は、長さを限定したクリップとして用意します。AssemblyAI の Sync の要件では、80 ミリ秒〜120 秒の長さを受け付け、最大ファイルサイズは 40 MB です。対応形式は WAV、または符号付き 16 ビット・リトルエンディアンの raw PCM です。音声はモノラルまたはステレオにでき、ステレオは内部でダウンミックスされます。対応サンプルレートは 8、16、22.05、24、32、44.1、48 kHz です。WAV ヘッダーにはサンプルレートとチャンネル数が含まれます。raw PCM では、文字起こし設定でこれらの値を別途指定する必要があります。\n\n発話全体を収録し、話し始めと話し終わりを欠けさせないでください。独自の実用例として、商品名、注文識別子、依頼を含む短い商品サポートの音声メッセージを用意できます。これらの重要な詳細を文字起こしと照合できるよう、元のクリップを保存します。長い録音には、長時間の文字起こしに適したワークフローを用意してください。短いクリップの時間上限を、モデル全体の音声処理容量として扱わないようにします。\n\n結果には、全文の文字起こし、単語ごとの信頼度を持つ単語一覧、0〜1 の全体の信頼度が含まれます。送信した音声の長さとリクエスト識別子も返されるため、テキストと元のクリップの対応を維持できます。単語の信頼度を使って、聞き直して確認すべき箇所を見つけます。特に、アプリケーションで重要な名前、数値、専門語彙を確認してください。\n\n単語タイムスタンプは任意で、既定では無効です。要求すると、位置合わせできた各単語に、クリップ開始からのミリ秒単位の開始時刻と終了時刻を付けられます。メーカーのプロファイルでは、単語を位置合わせできない場合、推定の時刻を作るのではなく、その値を省略します。タイムスタンプの精度は英語音声で最も高くなります。単語のハイライト、検索可能な波形、字幕の位置合わせを用意するときは、時刻が欠けていることを明示的に保持し、完成した字幕トラックとして使う前に、テキストを録音と照合します。\n\n文脈プロンプトでは、録音の内容を説明します。分野、シナリオ、アプリケーションがすでに把握している具体的な情報を記述でき、最大長は 6000 文字です。特定の機器に関するテクニカルサポートの会話など、音声に合った短い説明から始めます。このプロンプトは認識のための文脈を与えるものであり、話者のメッセージを別の文書に書き換える依頼ではありません。\n\n別のキーターム一覧を使うと、特定の語彙が認識されやすくなります。Sync プロファイルは、最大 100 語、一覧全体で 8000 文字まで受け付けます。珍しい名前、略語、製品用語には正確な綴りを使い、通常十分に認識される単語は一覧に入れないでください。大きすぎる一覧や不要な語句は過剰な補正を引き起こすことがあるため、録音で重要な語に絞ります。文脈の説明と語彙一覧は併用できます。\n\n過去の対話も、短い返答の解釈に役立ちます。以前の発話を古い順から新しい順に提供し、現在の音声を文字起こしの対象ターンとします。文書化されたコンテキストの上限は、500 ターン、または合計 16,000 文字です。これらの上限やモデルで利用可能なコンテキストを超える場合、最も古い項目から削除されます。短い回答に識別子や参照表現が含まれ、その意味が直前の質問から分かる場合に役立ちます。\n\n言語選択は、想定する1つ以上の言語へ認識を誘導します。現在の Sync インターフェースは 32 の言語コードを受け付け、指定がない場合は英語を既定とします。複数言語が切り替わる音声では、想定言語を列挙してください。カスタムの文脈プロンプトを指定すると、管理された既定プロンプトが置き換わり、別途指定した言語コードによる誘導より優先されます。言語とシナリオの両方の文脈が必要な場合は、想定言語をそのプロンプト内に記述します。文字起こしを翻訳の指示として扱わず、実際に話された言語で保持してください。\n\nこのモデルは AssemblyAI の他の文字起こしワークフローにも登場しますが、Sync プロファイルの短いクリップ向けの要件と結果フィールドは、この特定のインターフェースに属します。メーカーの Dictation ワークフローには、別工程のテキスト整形が追加されています。文字起こしと、書き直したメッセージは別の成果物です。後の編集や要約で整形版を作る場合も、比較できるよう、認識された元の発話を保存してください。\n\n有用な成果物には、音声メッセージの文字起こし、アシスタント向けの完成した会話ターン、短い音声の検索可能なテキスト、確認用インターフェース向けの時刻付き単語一覧があります。決め手になる単語を録音で確認し、位置合わせの欠落を保持し、クリップと返されたテキストのリンクを残します。認識結果は、次のアプリケーション工程に原音で裏付けられた文字起こしを提供します。依頼への回答やメッセージの編集は、周辺のワークフローが担います。",
    "alias_of": null,
    "aliases": [],
    "author": "AssemblyAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00025",
            "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.00025",
            "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": "assemblyai/universal-3-5-pro",
    "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": [
                  "assemblyai/universal-3-5-pro"
                ],
                "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": [
                    "assemblyai/universal-3-5-pro"
                  ],
                  "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": "assemblyai/universal-3-5-pro"
              },
              "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.00025",
                "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.00025",
                "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': 'assemblyai/universal-3-5-pro', '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.00025
          }
        },
        "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.00025",
                "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.00025",
                "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": "assemblyai/universal-3-5-pro",
        "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.00025",
            "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.00025",
            "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": "assemblyai/universal-3-5-pro",
        "request_model_id": "assemblyai/universal-3-5-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "AssemblyAI: Universal-3.5 Pro",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Universal-3.5 Pro は、短い音声クリップを1回の応答で完成した文字起こしに変換する、AssemblyAI の音声認識モデルです。Sync プロファイルは、音声入力やプッシュ・トゥ・トークのワークフロー向けに、単語の信頼度、任意の単語タイムスタンプ、語彙ヒント、過去の対話コンテキストを備えています。"
  },
  "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": "Universal-3.5 Pro は、短い音声クリップを1回の応答で完成した文字起こしに変換する、AssemblyAI の音声認識モデルです。Sync プロファイルは、音声入力やプッシュ・トゥ・トークのワークフロー向けに、単語の信頼度、任意の単語タイムスタンプ、語彙ヒント、過去の対話コンテキストを備えています。",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "f4b6430539a9f0c72dda657d213b94a6da8435983b1f3fc99f490b7a06b2629b",
    "renderer_sha256": "b06e5309d3e585ab5fe0535c1a8bd6320bdc357ea8509c2389320e8fa40c36e5"
  },
  "sourceRevision": "74bd2fcb5f940f2831e939e961760ea68c889f5f0bde959b95c7613e11b7e5ff"
}
