{
  "aboutHtml": "<p>Whisper large-v3-turbo, juga disebut Turbo, adalah model transkripsi OpenAI yang dioptimalkan dan diturunkan dari Whisper large-v3. Dekodernya dikurangi dari 32 lapisan menjadi empat, sementara enkodernya tetap memiliki 32 lapisan. Model yang dirilis memiliki sekitar 809 juta parameter. Tujuan pembuatnya adalah pengenalan ucapan yang lebih cepat dengan sedikit kompromi akurasi, bukan mode generasi audio yang berbeda. Ucapan yang direkam menjadi masukan dan teks hasil pengenalan menjadi keluaran.</p><p>Pengumuman peluncurannya membedakan penyiapan Turbo dari model Whisper lain yang didistilasi secara terpisah: Turbo disetel lebih lanjut selama dua epoch tambahan pada data transkripsi multibahasa, tanpa data penerjemahan. Perbedaan ini penting secara operasional. Repositori OpenAI menyatakan bahwa Turbo tidak dilatih untuk menerjemahkan ucapan non-Inggris ke bahasa Inggris dan dapat mengembalikan bahasa asli meskipun tugas penerjemahan diminta. Gunakan edisi ini untuk transkrip dalam bahasa yang sama; kebutuhan penerjemahan memerlukan model lain yang sesuai atau langkah terpisah setelah transkripsi.</p><p>Deteksi bahasa sumber dan pemilihan bahasa secara eksplisit tetap merupakan pilihan transkripsi yang berguna. Jika bahasa rekaman sudah diketahui, tentukan dalam arahan; jika belum, alur kerja yang didokumentasikan dapat mendeteksinya. Pertahankan nama, jumlah, dan kata yang diucapkan sebelum meminta penyuntingan apa pun. Catatan rapat, transkrip wawancara, atau teks kuliah kemudian dapat dicari, dianotasi, atau diringkas pada operasi berikutnya. Tugas pengenalan Turbo tidak boleh disamakan dengan sintesis suara, peniruan pembicara, atau penilaian semantik terhadap orang dalam rekaman.</p><p>Pemuat audio OpenAI mendekode berkas masukan menjadi sampel mono pada 16 kHz, dan model menggunakan jendela akustik 30 detik dengan 128 bin frekuensi Mel. Rekaman yang lebih panjang memerlukan inferensi berdurasi panjang. Pemrosesan berurutan bergerak melalui jendela secara berurutan; pendekatan berbasis potongan mentranskripsikan bagian yang tumpang tindih dan menyambungkan batasnya. Kartu model menyajikan pendekatan kedua sebagai pilihan yang berguna ketika memproses satu berkas panjang dengan waktu penyelesaian sebagai prioritas utama, sedangkan pemrosesan berurutan merupakan alternatif yang mengutamakan akurasi. Jendela maupun nama model tidak menetapkan ukuran berkas maksimum yang tetap untuk unggahan pada layanan yang dihosting.</p><p>Konfigurasi Turbo yang tepat mencantumkan 448 posisi dekoder untuk satu urutan dekode. Alur inferensi yang didokumentasikan dapat menyertakan waktu segmen atau kata bersama transkrip; penanda waktu mendukung navigasi dan pemformatan takarir berikutnya. Ini tidak otomatis menambahkan format berkas takarir atau label pembicara yang andal. Nyatakan apakah yang dibutuhkan adalah transkrip biasa atau segmen dengan penanda waktu, dan simpan rekaman asli untuk memeriksa bagian yang diperselisihkan. Pemrosesan berdurasi panjang dan pemformatan akhir terpisah dari identitas checkpoint.</p><p>Turbo mengurangi pekerjaan dekode, tetapi waktu yang sebenarnya diperlukan bergantung pada perangkat keras, panjang rekaman, bahasa, kecepatan bicara, dan pilihan inferensi. Pembuatnya mencatat penurunan kualitas yang lebih besar untuk beberapa bahasa, termasuk bahasa Thai dan Kanton, bukan perilaku yang seragam di semua bahasa. Bandingkan cuplikan yang representatif dalam bahasa sasaran sebelum menganggap kompromi yang mengutamakan kecepatan ini sesuai untuk semua materi. Untuk tugas pemrosesan arsip, sertakan kosakata sulit, jeda, serta bagian bising atau tumpang tindih dalam sampel tinjauan, bukan hanya kalimat pembuka yang bersih.</p><p>Kartu yang diterbitkan memuat keterbatasan penting pengenalan Whisper: teks prediksi dapat menyertakan kata yang tidak diucapkan, dan teks berulang dapat muncul. Hasil bervariasi antarbahasa, aksen, dan dialek, terutama ketika cakupan pelatihan terbatas. Kartu itu tidak menetapkan diarisasi atau klasifikasi pembicara pada model dasar sebagai kemampuan standar yang tangguh. Tinjauan praktis berfokus pada kesetiaan terhadap sumber: nama dan angka penting, ucapan yang terlewat, teks tak terduga saat hening, dan pengulangan. Transkrip yang terbaca tetap merupakan hasil yang perlu dibandingkan dengan rekaman, bukan jaminan pengenalan yang tepat.</p><p>Artefak akhir yang berguna adalah transkrip dalam bahasa sumber beserta penanda waktu yang diminta dan tautan yang jelas ke rekamannya. Pisahkan versi hasil pengenalan dari versi publikasi yang disunting agar perubahan dapat ditelusuri. Pertahankan nama large-v3-turbo ketika membandingkan edisi: model ini bukan large-v3 penuh dan tidak boleh diam-diam mewarisi tugas penerjemahan bahasa Inggris dari large-v3. Identitas berbobot terbuka ini juga tidak membawa batas unggahan, format wadah respons, atau janji streaming langsung dari layanan whisper-1 yang dihosting. Pilih Turbo ketika kompromi transkripsi yang didokumentasikan sesuai dengan materi yang sebenarnya dan waktu penyelesaian yang diinginkan.</p>",
  "aboutText": "Whisper large-v3-turbo, juga disebut Turbo, adalah model transkripsi OpenAI yang dioptimalkan dan diturunkan dari Whisper large-v3. Dekodernya dikurangi dari 32 lapisan menjadi empat, sementara enkodernya tetap memiliki 32 lapisan. Model yang dirilis memiliki sekitar 809 juta parameter. Tujuan pembuatnya adalah pengenalan ucapan yang lebih cepat dengan sedikit kompromi akurasi, bukan mode generasi audio yang berbeda. Ucapan yang direkam menjadi masukan dan teks hasil pengenalan menjadi keluaran.\n\nPengumuman peluncurannya membedakan penyiapan Turbo dari model Whisper lain yang didistilasi secara terpisah: Turbo disetel lebih lanjut selama dua epoch tambahan pada data transkripsi multibahasa, tanpa data penerjemahan. Perbedaan ini penting secara operasional. Repositori OpenAI menyatakan bahwa Turbo tidak dilatih untuk menerjemahkan ucapan non-Inggris ke bahasa Inggris dan dapat mengembalikan bahasa asli meskipun tugas penerjemahan diminta. Gunakan edisi ini untuk transkrip dalam bahasa yang sama; kebutuhan penerjemahan memerlukan model lain yang sesuai atau langkah terpisah setelah transkripsi.\n\nDeteksi bahasa sumber dan pemilihan bahasa secara eksplisit tetap merupakan pilihan transkripsi yang berguna. Jika bahasa rekaman sudah diketahui, tentukan dalam arahan; jika belum, alur kerja yang didokumentasikan dapat mendeteksinya. Pertahankan nama, jumlah, dan kata yang diucapkan sebelum meminta penyuntingan apa pun. Catatan rapat, transkrip wawancara, atau teks kuliah kemudian dapat dicari, dianotasi, atau diringkas pada operasi berikutnya. Tugas pengenalan Turbo tidak boleh disamakan dengan sintesis suara, peniruan pembicara, atau penilaian semantik terhadap orang dalam rekaman.\n\nPemuat audio OpenAI mendekode berkas masukan menjadi sampel mono pada 16 kHz, dan model menggunakan jendela akustik 30 detik dengan 128 bin frekuensi Mel. Rekaman yang lebih panjang memerlukan inferensi berdurasi panjang. Pemrosesan berurutan bergerak melalui jendela secara berurutan; pendekatan berbasis potongan mentranskripsikan bagian yang tumpang tindih dan menyambungkan batasnya. Kartu model menyajikan pendekatan kedua sebagai pilihan yang berguna ketika memproses satu berkas panjang dengan waktu penyelesaian sebagai prioritas utama, sedangkan pemrosesan berurutan merupakan alternatif yang mengutamakan akurasi. Jendela maupun nama model tidak menetapkan ukuran berkas maksimum yang tetap untuk unggahan pada layanan yang dihosting.\n\nKonfigurasi Turbo yang tepat mencantumkan 448 posisi dekoder untuk satu urutan dekode. Alur inferensi yang didokumentasikan dapat menyertakan waktu segmen atau kata bersama transkrip; penanda waktu mendukung navigasi dan pemformatan takarir berikutnya. Ini tidak otomatis menambahkan format berkas takarir atau label pembicara yang andal. Nyatakan apakah yang dibutuhkan adalah transkrip biasa atau segmen dengan penanda waktu, dan simpan rekaman asli untuk memeriksa bagian yang diperselisihkan. Pemrosesan berdurasi panjang dan pemformatan akhir terpisah dari identitas checkpoint.\n\nTurbo mengurangi pekerjaan dekode, tetapi waktu yang sebenarnya diperlukan bergantung pada perangkat keras, panjang rekaman, bahasa, kecepatan bicara, dan pilihan inferensi. Pembuatnya mencatat penurunan kualitas yang lebih besar untuk beberapa bahasa, termasuk bahasa Thai dan Kanton, bukan perilaku yang seragam di semua bahasa. Bandingkan cuplikan yang representatif dalam bahasa sasaran sebelum menganggap kompromi yang mengutamakan kecepatan ini sesuai untuk semua materi. Untuk tugas pemrosesan arsip, sertakan kosakata sulit, jeda, serta bagian bising atau tumpang tindih dalam sampel tinjauan, bukan hanya kalimat pembuka yang bersih.\n\nKartu yang diterbitkan memuat keterbatasan penting pengenalan Whisper: teks prediksi dapat menyertakan kata yang tidak diucapkan, dan teks berulang dapat muncul. Hasil bervariasi antarbahasa, aksen, dan dialek, terutama ketika cakupan pelatihan terbatas. Kartu itu tidak menetapkan diarisasi atau klasifikasi pembicara pada model dasar sebagai kemampuan standar yang tangguh. Tinjauan praktis berfokus pada kesetiaan terhadap sumber: nama dan angka penting, ucapan yang terlewat, teks tak terduga saat hening, dan pengulangan. Transkrip yang terbaca tetap merupakan hasil yang perlu dibandingkan dengan rekaman, bukan jaminan pengenalan yang tepat.\n\nArtefak akhir yang berguna adalah transkrip dalam bahasa sumber beserta penanda waktu yang diminta dan tautan yang jelas ke rekamannya. Pisahkan versi hasil pengenalan dari versi publikasi yang disunting agar perubahan dapat ditelusuri. Pertahankan nama large-v3-turbo ketika membandingkan edisi: model ini bukan large-v3 penuh dan tidak boleh diam-diam mewarisi tugas penerjemahan bahasa Inggris dari large-v3. Identitas berbobot terbuka ini juga tidak membawa batas unggahan, format wadah respons, atau janji streaming langsung dari layanan whisper-1 yang dihosting. Pilih Turbo ketika kompromi transkripsi yang didokumentasikan sesuai dengan materi yang sebenarnya dan waktu penyelesaian yang diinginkan.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ec896c0e17a63e7717b71edc3f05ab31b88526e95efce7cd46657d6346948d21",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "id",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: Whisper Large V3 Turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/whisper-large-v3-turbo</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bagian kartu model\"><button type=\"button\" data-card-jump=\"overview\">Mulai</button><button type=\"button\" data-card-jump=\"methods\">Masukan &amp; metode</button><button type=\"button\" data-card-jump=\"pricing\">Paket</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode 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%2Fwhisper-large-v3-turbo\">Transkripsi</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\">Mulai</h3><p class=\"mdesc-full\">Whisper large-v3-turbo adalah edisi transkripsi OpenAI dengan bobot terbuka yang lebih cepat, diturunkan dari large-v3, dengan empat lapisan dekoder dan 809 juta parameter. Model ini ditujukan untuk transkripsi ucapan multibahasa; dokumentasi resmi pembuatnya mengecualikan penerjemahan ucapan ke bahasa Inggris dari tugas pelatihan Turbo.</p><dl class=\"card-io\" data-card-io><div><dt>Masukan yang diterima</dt><dd>Audio</dd></div><div><dt>Hasil</dt><dd>Teks</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>Whisper large-v3-turbo, juga disebut Turbo, adalah model transkripsi OpenAI yang dioptimalkan dan diturunkan dari Whisper large-v3. Dekodernya dikurangi dari 32 lapisan menjadi empat, sementara enkodernya tetap memiliki 32 lapisan. Model yang dirilis memiliki sekitar 809 juta parameter. Tujuan pembuatnya adalah pengenalan ucapan yang lebih cepat dengan sedikit kompromi akurasi, bukan mode generasi audio yang berbeda. Ucapan yang direkam menjadi masukan dan teks hasil pengenalan menjadi keluaran.</p><p>Pengumuman peluncurannya membedakan penyiapan Turbo dari model Whisper lain yang didistilasi secara terpisah: Turbo disetel lebih lanjut selama dua epoch tambahan pada data transkripsi multibahasa, tanpa data penerjemahan. Perbedaan ini penting secara operasional. Repositori OpenAI menyatakan bahwa Turbo tidak dilatih untuk menerjemahkan ucapan non-Inggris ke bahasa Inggris dan dapat mengembalikan bahasa asli meskipun tugas penerjemahan diminta. Gunakan edisi ini untuk transkrip dalam bahasa yang sama; kebutuhan penerjemahan memerlukan model lain yang sesuai atau langkah terpisah setelah transkripsi.</p><p>Deteksi bahasa sumber dan pemilihan bahasa secara eksplisit tetap merupakan pilihan transkripsi yang berguna. Jika bahasa rekaman sudah diketahui, tentukan dalam arahan; jika belum, alur kerja yang didokumentasikan dapat mendeteksinya. Pertahankan nama, jumlah, dan kata yang diucapkan sebelum meminta penyuntingan apa pun. Catatan rapat, transkrip wawancara, atau teks kuliah kemudian dapat dicari, dianotasi, atau diringkas pada operasi berikutnya. Tugas pengenalan Turbo tidak boleh disamakan dengan sintesis suara, peniruan pembicara, atau penilaian semantik terhadap orang dalam rekaman.</p><p>Pemuat audio OpenAI mendekode berkas masukan menjadi sampel mono pada 16 kHz, dan model menggunakan jendela akustik 30 detik dengan 128 bin frekuensi Mel. Rekaman yang lebih panjang memerlukan inferensi berdurasi panjang. Pemrosesan berurutan bergerak melalui jendela secara berurutan; pendekatan berbasis potongan mentranskripsikan bagian yang tumpang tindih dan menyambungkan batasnya. Kartu model menyajikan pendekatan kedua sebagai pilihan yang berguna ketika memproses satu berkas panjang dengan waktu penyelesaian sebagai prioritas utama, sedangkan pemrosesan berurutan merupakan alternatif yang mengutamakan akurasi. Jendela maupun nama model tidak menetapkan ukuran berkas maksimum yang tetap untuk unggahan pada layanan yang dihosting.</p><p>Konfigurasi Turbo yang tepat mencantumkan 448 posisi dekoder untuk satu urutan dekode. Alur inferensi yang didokumentasikan dapat menyertakan waktu segmen atau kata bersama transkrip; penanda waktu mendukung navigasi dan pemformatan takarir berikutnya. Ini tidak otomatis menambahkan format berkas takarir atau label pembicara yang andal. Nyatakan apakah yang dibutuhkan adalah transkrip biasa atau segmen dengan penanda waktu, dan simpan rekaman asli untuk memeriksa bagian yang diperselisihkan. Pemrosesan berdurasi panjang dan pemformatan akhir terpisah dari identitas checkpoint.</p><p>Turbo mengurangi pekerjaan dekode, tetapi waktu yang sebenarnya diperlukan bergantung pada perangkat keras, panjang rekaman, bahasa, kecepatan bicara, dan pilihan inferensi. Pembuatnya mencatat penurunan kualitas yang lebih besar untuk beberapa bahasa, termasuk bahasa Thai dan Kanton, bukan perilaku yang seragam di semua bahasa. Bandingkan cuplikan yang representatif dalam bahasa sasaran sebelum menganggap kompromi yang mengutamakan kecepatan ini sesuai untuk semua materi. Untuk tugas pemrosesan arsip, sertakan kosakata sulit, jeda, serta bagian bising atau tumpang tindih dalam sampel tinjauan, bukan hanya kalimat pembuka yang bersih.</p><p>Kartu yang diterbitkan memuat keterbatasan penting pengenalan Whisper: teks prediksi dapat menyertakan kata yang tidak diucapkan, dan teks berulang dapat muncul. Hasil bervariasi antarbahasa, aksen, dan dialek, terutama ketika cakupan pelatihan terbatas. Kartu itu tidak menetapkan diarisasi atau klasifikasi pembicara pada model dasar sebagai kemampuan standar yang tangguh. Tinjauan praktis berfokus pada kesetiaan terhadap sumber: nama dan angka penting, ucapan yang terlewat, teks tak terduga saat hening, dan pengulangan. Transkrip yang terbaca tetap merupakan hasil yang perlu dibandingkan dengan rekaman, bukan jaminan pengenalan yang tepat.</p><p>Artefak akhir yang berguna adalah transkrip dalam bahasa sumber beserta penanda waktu yang diminta dan tautan yang jelas ke rekamannya. Pisahkan versi hasil pengenalan dari versi publikasi yang disunting agar perubahan dapat ditelusuri. Pertahankan nama large-v3-turbo ketika membandingkan edisi: model ini bukan large-v3 penuh dan tidak boleh diam-diam mewarisi tugas penerjemahan bahasa Inggris dari large-v3. Identitas berbobot terbuka ini juga tidak membawa batas unggahan, format wadah respons, atau janji streaming langsung dari layanan whisper-1 yang dihosting. Pilih Turbo ketika kompromi transkripsi yang didokumentasikan sesuai dengan materi yang sebenarnya dan waktu penyelesaian yang diinginkan.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · masukan &amp; metode</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transkripsi</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Masukan</dt><dd><code>audio</code></dd></div><div><dt>Keluaran</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kolom</th><th>Jenis</th><th>Persyaratan</th><th>Nilai &amp; batasan</th><th>Bawaan</th></tr></thead><tbody><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Wajib</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>openai/whisper-large-v3-turbo</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Persyaratan\"><span class=\"card-cell-label\">Persyaratan</span>Wajib</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parameter metode dan siklus hidup</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>Contoh ini membaca berkas PCM WAV Anda yang benar-benar ada dan tidak kosong, mengodekan seluruh byte berkas sebagai base64, lalu mengirim input_audio.format dengan nilai wav.</td></tr></tbody></table></div><p>Siklus hidup: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id persis dari catatan media milik Ailoot yang sudah ada</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\">Paket</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.</p><dl data-price-conditions><dt>Mode Fast</dt><dd>Tidak ditentukan <span class=\"note-s\">Saat mode fast dipilih</span></dd><dt>Mode Flex</dt><dd>Tidak ditentukan <span class=\"note-s\">Saat mode flex dipilih</span></dd><dt>Upaya penalaran maksimum</dt><dd>Tidak ditentukan <span class=\"note-s\">Saat upaya penalaran maksimum menggunakan penyesuaian default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarif Ailoot</h4><h4>Harga menurut konfigurasi</h4><p class=\"note-s\">Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadwal tarif</th><th>Satuan penagihan</th><th>Biaya</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Tarif dasar token</th><td data-cell-label=\"Jadwal tarif\"><span class=\"card-cell-label\">Jadwal tarif</span>Tarif dasar</td><td data-cell-label=\"Satuan penagihan\"><span class=\"card-cell-label\">Satuan penagihan</span>—</td><td data-cell-label=\"Biaya\"><span class=\"card-cell-label\">Biaya</span><div><span>Masukan · Token masukan</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Keluaran · Token keluaran</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Pembacaan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Penulisan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Masukan · Penulisan cache, 1 jam</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>detik audio masukan</th><td data-cell-label=\"Jadwal tarif\"><span class=\"card-cell-label\">Jadwal tarif</span>—</td><td data-cell-label=\"Satuan penagihan\"><span class=\"card-cell-label\">Satuan penagihan</span>per detik audio masukan</td><td data-cell-label=\"Biaya\"><span class=\"card-cell-label\">Biaya</span><div><span>Masukan · detik audio masukan</span> <b>$0.00000666</b> <span class=\"price-unit\">per detik audio masukan</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. <a href=\"/docs/id/billing/reserve/\">Cara kerja cadangan dan penyelesaian tagihan →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Transkripsi</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kode\"><button class=\"cg-tab\" id=\"model-code-2186-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2186-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · berkas WAV yang sebenarnya dan hasil asli secara lengkap</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kode\"><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-2186-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2186-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/whisper-large-v3-turbo&#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\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · Transkripsi</h4><p class=\"note-s\">Isi respons asli secara utuh, status, dan header yang diteruskan. Handler ini tidak menambahkan struktur JSON universal, bidang teks, atau pembungkus tugas.</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>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.</p><p class=\"note-s\">Simpan respons dan header secara lengkap, setiap keluaran aktual, identifikator asli yang dikembalikan, dan semua kolom usage. Pulihkan operasi asli tanpa mengirim ulang permintaan pembuatan.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asli perlu diperiksa</h5><p class=\"note-s\">Simpan X-Client-Request-ID aktual dan respons secara utuh. Baca aset asli yang dimiliki beserta URL konten bertanda tangan yang persis; jangan pernah kirim ulang pembuatan yang statusnya belum pasti.</p></div><details class=\"card-about\" data-output-fields><summary>Kolom respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kolom</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Kesalahan dan langkah berikutnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Kondisi</th><th>Langkah berikutnya</th></tr></thead><tbody><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Isi JSON atau ID model kanonis eksplisit tidak valid.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons dan perbaiki bidang permintaan yang ditunjukkan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Kunci API Ailoot tidak valid.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Gunakan kunci API Ailoot Anda yang diotorisasi.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>403 · <code>permission_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Grup kunci tidak mengizinkan metode ini.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan rincian kesalahan yang dikembalikan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Metode yang dipilih tidak memiliki rute yang diizinkan.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan rincian kesalahan yang dikembalikan.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Tarif yang diterima tidak dapat memperoleh jumlah atau batas masukan yang diwajibkan.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons; gunakan representasi masukan yang diwajibkan oleh tarif yang diterima.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>503 · <code></code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Penyimpanan, rute, harga metode, atau pencadangan dana yang diperlukan tidak tersedia.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan respons asli secara utuh. Pencadangan dana yang belum pasti tidak mengizinkan pengiriman ulang.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>502 · <code>server_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Hasil awal, penggunaan, atau penyelesaian tagihan perlu diperiksa.</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan ID permintaan aktual dan respons asli. Baca catatan yang dimiliki yang sudah ada; jangan kirim ulang pembuatan.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fwhisper-large-v3-turbo&amp;route=Ultra&amp;caller=openai%2Fwhisper-large-v3-turbo&amp;fmt=transcriptions\"><code>openai/whisper-large-v3-turbo</code></a></span></p><h4>Alias jalur metode</h4><p class=\"note-s\">Gunakan jalur metode yang ditampilkan di atas.</p><h4>ID pemanggil terkait</h4><p class=\"note-s\"><a href=\"#m=openai%2Fwhisper-large-v3-turbo&amp;route=Ultra&amp;caller=openai%2Fwhisper-large-v3-turbo&amp;fmt=transcriptions\"><code>openai/whisper-large-v3-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/whisper-large-v3-turbo",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/whisper-large-v3-turbo",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fwhisper-large-v3-turbo",
      "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": "Isi JSON atau ID model kanonis eksplisit tidak valid.",
                "http_status": 400,
                "recovery": "Simpan respons dan perbaiki bidang permintaan yang ditunjukkan.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kunci API Ailoot tidak valid.",
                "http_status": 401,
                "recovery": "Gunakan kunci API Ailoot Anda yang diotorisasi.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grup kunci tidak mengizinkan metode ini.",
                "http_status": 403,
                "recovery": "Simpan rincian kesalahan yang dikembalikan.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Metode yang dipilih tidak memiliki rute yang diizinkan.",
                "http_status": 404,
                "recovery": "Simpan rincian kesalahan yang dikembalikan.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Tarif yang diterima tidak dapat memperoleh jumlah atau batas masukan yang diwajibkan.",
                "http_status": 422,
                "recovery": "Simpan respons; gunakan representasi masukan yang diwajibkan oleh tarif yang diterima.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Penyimpanan, rute, harga metode, atau pencadangan dana yang diperlukan tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons asli secara utuh. Pencadangan dana yang belum pasti tidak mengizinkan pengiriman ulang.",
                "type": null
              },
              {
                "code": null,
                "condition": "Hasil awal, penggunaan, atau penyelesaian tagihan perlu diperiksa.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Simpan ID permintaan aktual dan respons asli. Baca catatan yang dimiliki yang sudah ada; jangan kirim ulang pembuatan.",
                "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": "Simpan X-Client-Request-ID aktual dan respons secara utuh. Baca aset asli yang dimiliki beserta URL konten bertanda tangan yang persis; jangan pernah kirim ulang pembuatan yang statusnya belum pasti."
            },
            "outputs": {
              "all_results": "Simpan respons dan header secara lengkap, setiap keluaran aktual, identifikator asli yang dikembalikan, dan semua kolom usage. Pulihkan operasi asli tanpa mengirim ulang permintaan pembuatan.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Isi respons asli secara utuh, status, dan header yang diteruskan. Handler ini tidak menambahkan struktur JSON universal, bidang teks, atau pembungkus tugas."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/whisper-large-v3-turbo"
                ],
                "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/whisper-large-v3-turbo"
                  ],
                  "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/whisper-large-v3-turbo"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Contoh ini membaca berkas PCM WAV Anda yang benar-benar ada dan tidak kosong, mengodekan seluruh byte berkas sebagai base64, lalu mengirim input_audio.format dengan nilai 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 persis dari catatan media milik Ailoot yang sudah ada",
                "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.00000666",
                "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.00000666",
                "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/whisper-large-v3-turbo', '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": "Transkripsi",
        "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": 6.66e-06
          }
        },
        "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.00000666",
                "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.00000666",
                "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/whisper-large-v3-turbo",
        "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.00000666",
            "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.00000666",
            "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/whisper-large-v3-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "50e87ad0258c2bf4096b0c3049c66507f62837aaef7919c72556d0ec7eb9b320",
    "input_html_sha256": "972ec87a31e6446d169769203d86f775800ec405ca66670514653de1f5333cb3",
    "private_audit_sha256": "c340a3a18d8edf3b7adf215f3d6da55cd9b9f59b02b6d3d1b60b4703fdce8039",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/openai-whisper-large-v3-turbo/",
    "description": "Whisper large-v3-turbo adalah edisi transkripsi OpenAI dengan bobot terbuka yang lebih cepat, diturunkan dari large-v3, dengan empat lapisan dekoder dan 809 juta parameter. Model ini ditujukan untuk transkripsi ucapan multibahasa; dokumentasi resmi pembuatnya mengecualikan penerjemahan ucapan ke bahasa Inggris dari tugas pelatihan Turbo.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/openai-whisper-large-v3-turbo/index.md",
    "title": "OpenAI: Whisper Large V3 Turbo — Ailoot",
    "url": "https://ailoot.ai/models/id/openai-whisper-large-v3-turbo/"
  },
  "rawModel": {
    "about": "Whisper large-v3-turbo, juga disebut Turbo, adalah model transkripsi OpenAI yang dioptimalkan dan diturunkan dari Whisper large-v3. Dekodernya dikurangi dari 32 lapisan menjadi empat, sementara enkodernya tetap memiliki 32 lapisan. Model yang dirilis memiliki sekitar 809 juta parameter. Tujuan pembuatnya adalah pengenalan ucapan yang lebih cepat dengan sedikit kompromi akurasi, bukan mode generasi audio yang berbeda. Ucapan yang direkam menjadi masukan dan teks hasil pengenalan menjadi keluaran.\n\nPengumuman peluncurannya membedakan penyiapan Turbo dari model Whisper lain yang didistilasi secara terpisah: Turbo disetel lebih lanjut selama dua epoch tambahan pada data transkripsi multibahasa, tanpa data penerjemahan. Perbedaan ini penting secara operasional. Repositori OpenAI menyatakan bahwa Turbo tidak dilatih untuk menerjemahkan ucapan non-Inggris ke bahasa Inggris dan dapat mengembalikan bahasa asli meskipun tugas penerjemahan diminta. Gunakan edisi ini untuk transkrip dalam bahasa yang sama; kebutuhan penerjemahan memerlukan model lain yang sesuai atau langkah terpisah setelah transkripsi.\n\nDeteksi bahasa sumber dan pemilihan bahasa secara eksplisit tetap merupakan pilihan transkripsi yang berguna. Jika bahasa rekaman sudah diketahui, tentukan dalam arahan; jika belum, alur kerja yang didokumentasikan dapat mendeteksinya. Pertahankan nama, jumlah, dan kata yang diucapkan sebelum meminta penyuntingan apa pun. Catatan rapat, transkrip wawancara, atau teks kuliah kemudian dapat dicari, dianotasi, atau diringkas pada operasi berikutnya. Tugas pengenalan Turbo tidak boleh disamakan dengan sintesis suara, peniruan pembicara, atau penilaian semantik terhadap orang dalam rekaman.\n\nPemuat audio OpenAI mendekode berkas masukan menjadi sampel mono pada 16 kHz, dan model menggunakan jendela akustik 30 detik dengan 128 bin frekuensi Mel. Rekaman yang lebih panjang memerlukan inferensi berdurasi panjang. Pemrosesan berurutan bergerak melalui jendela secara berurutan; pendekatan berbasis potongan mentranskripsikan bagian yang tumpang tindih dan menyambungkan batasnya. Kartu model menyajikan pendekatan kedua sebagai pilihan yang berguna ketika memproses satu berkas panjang dengan waktu penyelesaian sebagai prioritas utama, sedangkan pemrosesan berurutan merupakan alternatif yang mengutamakan akurasi. Jendela maupun nama model tidak menetapkan ukuran berkas maksimum yang tetap untuk unggahan pada layanan yang dihosting.\n\nKonfigurasi Turbo yang tepat mencantumkan 448 posisi dekoder untuk satu urutan dekode. Alur inferensi yang didokumentasikan dapat menyertakan waktu segmen atau kata bersama transkrip; penanda waktu mendukung navigasi dan pemformatan takarir berikutnya. Ini tidak otomatis menambahkan format berkas takarir atau label pembicara yang andal. Nyatakan apakah yang dibutuhkan adalah transkrip biasa atau segmen dengan penanda waktu, dan simpan rekaman asli untuk memeriksa bagian yang diperselisihkan. Pemrosesan berdurasi panjang dan pemformatan akhir terpisah dari identitas checkpoint.\n\nTurbo mengurangi pekerjaan dekode, tetapi waktu yang sebenarnya diperlukan bergantung pada perangkat keras, panjang rekaman, bahasa, kecepatan bicara, dan pilihan inferensi. Pembuatnya mencatat penurunan kualitas yang lebih besar untuk beberapa bahasa, termasuk bahasa Thai dan Kanton, bukan perilaku yang seragam di semua bahasa. Bandingkan cuplikan yang representatif dalam bahasa sasaran sebelum menganggap kompromi yang mengutamakan kecepatan ini sesuai untuk semua materi. Untuk tugas pemrosesan arsip, sertakan kosakata sulit, jeda, serta bagian bising atau tumpang tindih dalam sampel tinjauan, bukan hanya kalimat pembuka yang bersih.\n\nKartu yang diterbitkan memuat keterbatasan penting pengenalan Whisper: teks prediksi dapat menyertakan kata yang tidak diucapkan, dan teks berulang dapat muncul. Hasil bervariasi antarbahasa, aksen, dan dialek, terutama ketika cakupan pelatihan terbatas. Kartu itu tidak menetapkan diarisasi atau klasifikasi pembicara pada model dasar sebagai kemampuan standar yang tangguh. Tinjauan praktis berfokus pada kesetiaan terhadap sumber: nama dan angka penting, ucapan yang terlewat, teks tak terduga saat hening, dan pengulangan. Transkrip yang terbaca tetap merupakan hasil yang perlu dibandingkan dengan rekaman, bukan jaminan pengenalan yang tepat.\n\nArtefak akhir yang berguna adalah transkrip dalam bahasa sumber beserta penanda waktu yang diminta dan tautan yang jelas ke rekamannya. Pisahkan versi hasil pengenalan dari versi publikasi yang disunting agar perubahan dapat ditelusuri. Pertahankan nama large-v3-turbo ketika membandingkan edisi: model ini bukan large-v3 penuh dan tidak boleh diam-diam mewarisi tugas penerjemahan bahasa Inggris dari large-v3. Identitas berbobot terbuka ini juga tidak membawa batas unggahan, format wadah respons, atau janji streaming langsung dari layanan whisper-1 yang dihosting. Pilih Turbo ketika kompromi transkripsi yang didokumentasikan sesuai dengan materi yang sebenarnya dan waktu penyelesaian yang diinginkan.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00000666",
            "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.00000666",
            "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": "Informasi lengkap harga konfigurasi tersedia di bagian detail."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "openai/whisper-large-v3-turbo",
    "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": "Isi JSON atau ID model kanonis eksplisit tidak valid.",
                "http_status": 400,
                "recovery": "Simpan respons dan perbaiki bidang permintaan yang ditunjukkan.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kunci API Ailoot tidak valid.",
                "http_status": 401,
                "recovery": "Gunakan kunci API Ailoot Anda yang diotorisasi.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grup kunci tidak mengizinkan metode ini.",
                "http_status": 403,
                "recovery": "Simpan rincian kesalahan yang dikembalikan.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Metode yang dipilih tidak memiliki rute yang diizinkan.",
                "http_status": 404,
                "recovery": "Simpan rincian kesalahan yang dikembalikan.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Tarif yang diterima tidak dapat memperoleh jumlah atau batas masukan yang diwajibkan.",
                "http_status": 422,
                "recovery": "Simpan respons; gunakan representasi masukan yang diwajibkan oleh tarif yang diterima.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Penyimpanan, rute, harga metode, atau pencadangan dana yang diperlukan tidak tersedia.",
                "http_status": 503,
                "recovery": "Simpan respons asli secara utuh. Pencadangan dana yang belum pasti tidak mengizinkan pengiriman ulang.",
                "type": null
              },
              {
                "code": null,
                "condition": "Hasil awal, penggunaan, atau penyelesaian tagihan perlu diperiksa.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Simpan ID permintaan aktual dan respons asli. Baca catatan yang dimiliki yang sudah ada; jangan kirim ulang pembuatan.",
                "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": "Simpan X-Client-Request-ID aktual dan respons secara utuh. Baca aset asli yang dimiliki beserta URL konten bertanda tangan yang persis; jangan pernah kirim ulang pembuatan yang statusnya belum pasti."
            },
            "outputs": {
              "all_results": "Simpan respons dan header secara lengkap, setiap keluaran aktual, identifikator asli yang dikembalikan, dan semua kolom usage. Pulihkan operasi asli tanpa mengirim ulang permintaan pembuatan.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Isi respons asli secara utuh, status, dan header yang diteruskan. Handler ini tidak menambahkan struktur JSON universal, bidang teks, atau pembungkus tugas."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/whisper-large-v3-turbo"
                ],
                "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/whisper-large-v3-turbo"
                  ],
                  "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/whisper-large-v3-turbo"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Contoh ini membaca berkas PCM WAV Anda yang benar-benar ada dan tidak kosong, mengodekan seluruh byte berkas sebagai base64, lalu mengirim input_audio.format dengan nilai 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 persis dari catatan media milik Ailoot yang sudah ada",
                "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.00000666",
                "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.00000666",
                "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/whisper-large-v3-turbo', '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": "Transkripsi",
        "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": 6.66e-06
          }
        },
        "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.00000666",
                "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.00000666",
                "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/whisper-large-v3-turbo",
        "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.00000666",
            "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.00000666",
            "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/whisper-large-v3-turbo",
        "request_model_id": "openai/whisper-large-v3-turbo",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: Whisper Large V3 Turbo",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Whisper large-v3-turbo adalah edisi transkripsi OpenAI dengan bobot terbuka yang lebih cepat, diturunkan dari large-v3, dengan empat lapisan dekoder dan 809 juta parameter. Model ini ditujukan untuk transkripsi ucapan multibahasa; dokumentasi resmi pembuatnya mengecualikan penerjemahan ucapan ke bahasa Inggris dari tugas pelatihan Turbo."
  },
  "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": "Whisper large-v3-turbo adalah edisi transkripsi OpenAI dengan bobot terbuka yang lebih cepat, diturunkan dari large-v3, dengan empat lapisan dekoder dan 809 juta parameter. Model ini ditujukan untuk transkripsi ucapan multibahasa; dokumentasi resmi pembuatnya mengecualikan penerjemahan ucapan ke bahasa Inggris dari tugas pelatihan Turbo.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "46cbad3785c688ef6bbc65b148c93cea07828b20ecc5f42505d48a831571a0cb",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "e27d57a0ebd9eebfbb16572ecf4943d68ba0ddec8ad4e4d9db94a8143d5126e7"
}
