{
  "aboutHtml": "<p>GPT Transcribe adalah model ucapan-ke-teks OpenAI untuk berkas audio lengkap, transkrip berkas yang dialirkan, dan giliran audio yang dikomit dalam sesi Realtime. Model ini menerima audio dengan konteks teks opsional dan mengembalikan teks yang dikenali. Produsen memosisikannya untuk transkripsi akurat atas rekaman ucapan dalam bahasa aslinya, termasuk kosakata bidang tertentu, rekaman multibahasa, dan alih kode. Hasil yang berguna adalah transkrip yang tetap terhubung dengan rekaman, beserta metadata bahasa yang terdeteksi jika model dapat membuat prediksi yang andal.</p><h4>Menyiapkan rekaman lengkap</h4><p>Alur transkripsi berkas OpenAI menerima unggahan hingga 25 MB. Referensi endpoint saat ini mencantumkan format masukan FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, dan WebM serta menyarankan metadata berkas yang memadai untuk mengenali formatnya, termasuk ekstensi nama berkas dan jenis konten yang sesuai. Untuk rekaman yang lebih besar, panduan menyarankan kompresi atau pemisahan menjadi berkas berukuran 25 MB atau kurang. Hindari memotong di tengah kalimat karena menghilangkan ucapan di sekitarnya dapat menurunkan akurasi pengenalan. Pertahankan urutan bagian dan posisinya dalam rekaman asli.</p><p>Untuk rapat, wawancara, atau presentasi yang direkam, berikan audio sebenarnya dan sebutkan topik serta istilah yang mungkin diucapkan. Hasil yang berguna adalah kata-kata yang dikenali, bukan ringkasan pembahasan berdasarkan dugaan. Simpan pengenal rekaman bersama teks yang dikembalikan agar orang yang memeriksa nama, angka, atau frasa yang meragukan dapat kembali ke sumber yang tepat. Transkrip kemudian dapat menjadi bahan untuk alur peringkasan, penerjemahan, atau penyuntingan yang terpisah.</p><h4>Konteks, petunjuk kata kunci, dan bahasa yang diharapkan</h4><p>Produsen membedakan tiga jenis panduan. Prompt memberikan konteks bebas tentang topik atau situasi rekaman. Kata kunci memberikan kata atau frasa literal yang diperkirakan ada dalam ucapan. Daftar languages menunjukkan bahasa lisan yang diharapkan. Untuk diskusi produk dwibahasa, jelaskan situasinya dalam prompt, cantumkan nama produk terkait sebagai kata kunci, dan berikan bahasa yang diharapkan. Semuanya merupakan petunjuk pengenalan, bukan instruksi untuk menyisipkan kosakata yang tidak diucapkan siapa pun.</p><p>GPT Transcribe menggunakan kolom jamak languages sebagai pengganti kolom tunggal language yang lebih lama; OpenAI menyatakan agar keduanya tidak dikirim bersamaan. Panduannya menerima kode ISO 639-1 yang didukung, kode ISO 639-3 tertentu, dan kode lokal bahasa Mandarin regional, sedangkan nilai yang tidak didukung atau salah format ditolak. Setiap kata kunci harus tetap dalam satu baris dan tidak boleh memuat tanda kurung sudut, karakter carriage return, atau line feed. Kata kunci yang tidak valid atau prompt yang terlalu panjang dapat menyebabkan seluruh permintaan ditolak. Jaga agar konteks tetap relevan dan periksa apakah nama yang dijadikan petunjuk benar-benar muncul dalam audio, alih-alih memperlakukan daftar petunjuk sebagai transkrip.</p><h4>Keluaran JSON dan prediksi bahasa yang terdeteksi</h4><p>Hasil berkas yang didokumentasikan berupa JSON yang memuat transkrip dan bahasa yang terdeteksi. Prediksi bahasa tersebut adalah keluaran model, bukan salinan petunjuk bahasa yang diberikan. Daftar bahasa kosong adalah hasil yang valid ketika model tidak dapat membuat prediksi yang andal; hasil itu tidak membuktikan bahwa rekamannya hening atau transkripsi gagal. Pisahkan teks yang dikenali dari metadata bahasa agar pemrosesan berikutnya dapat menggunakan masing-masing sesuai maknanya.</p><h4>Mengalirkan transkrip berkas</h4><p>Berkas lengkap dapat menghasilkan teks transkrip secara bertahap selama pemrosesan. OpenAI mendokumentasikan peristiwa transcript.text.delta untuk teks parsial dan transcript.text.done untuk transkrip berkas lengkap; peristiwa akhir juga menyertakan bahasa yang terdeteksi. Ini mengalirkan keluaran dari rekaman yang sudah diberikan. Cara ini berguna untuk menampilkan kemajuan pada unggahan panjang, sedangkan peristiwa akhir menetapkan teks yang harus disimpan sebagai hasil lengkap.</p><h4>Giliran yang dikomit dalam sesi Realtime</h4><p>GPT Transcribe juga memiliki alur Realtime khusus melalui WebSocket. Audio ditambahkan ke buffer masukan, lalu aplikasi secara eksplisit mengomit satu giliran audio. Transkripsi dimulai untuk potongan yang telah dikomit itu dan dapat mengeluarkan delta sebelum peristiwa penyelesaiannya, termasuk informasi bahasa yang terdeteksi. Model secara otomatis menggunakan giliran yang telah ditranskripsikan sebelumnya sebagai konteks dalam alur sesi produsen ini. Ini berbeda dari mengeluarkan teks takarir langsung secara terus-menerus saat audio mikrofon masuk; OpenAI menamai GPT Live Transcribe untuk alur berkelanjutan tersebut.</p><p>Untuk beberapa giliran, simpan pengenal item masukan bersama transkrip yang sesuai. OpenAI memperingatkan bahwa peristiwa penyelesaian dari giliran yang berbeda tidak harus tiba dalam urutan ucapan, jadi kaitkan setiap hasil akhir dengan masukan yang dikomit, alih-alih menyusun percakapan hanya berdasarkan waktu penyelesaian. Artefak yang berguna adalah transkrip berurutan yang dirangkai dari item akhir yang benar, dengan teks sementara diperlakukan sebagai kemajuan, bukan ujaran lengkap yang terpisah.</p><h4>Keluaran khusus dan batasan substantif</h4><p>Profil ini tidak menyediakan kontrak universal untuk takarir, stempel waktu, terjemahan, atau label pembicara. Panduan migrasi OpenAI membedakan kemampuan khusus tersebut: format takarir bawaan dan waktu per kata memerlukan model serta format yang kompatibel, sedangkan label pembicara menggunakan GPT-4o Transcribe Diarize. Hasil berkas GPT Transcribe berupa JSON, bukan pengganti langsung respons SRT, VTT, atau respons dengan stempel waktu terperinci. Kartu model yang tepat tidak memublikasikan batas numerik konteks atau keluaran maksimum, jadi jendela token model percakapan tidak boleh diasumsikan berlaku untuk transkripsi audio.</p><p>Periksa kosakata sulit, angka, aksen, kebisingan latar, dan pergantian bahasa terhadap rekaman. Pastikan petunjuk yang relevan meningkatkan pengenalan tanpa menyisipkan istilah yang tidak diucapkan dan bahwa transkrip akhir mencakup bagian akhir audio. Untuk hasil multibahasa, pertahankan kata-kata yang diucapkan sebelum menyiapkan versi terjemahan. Pemeriksaan ini menjadikan transkrip berguna sebagai bahan sumber sekaligus tetap membedakan dengan jelas petunjuk konteks, bahasa yang terdeteksi, dan ucapan yang dikenali.</p>",
  "aboutText": "GPT Transcribe adalah model ucapan-ke-teks OpenAI untuk berkas audio lengkap, transkrip berkas yang dialirkan, dan giliran audio yang dikomit dalam sesi Realtime. Model ini menerima audio dengan konteks teks opsional dan mengembalikan teks yang dikenali. Produsen memosisikannya untuk transkripsi akurat atas rekaman ucapan dalam bahasa aslinya, termasuk kosakata bidang tertentu, rekaman multibahasa, dan alih kode. Hasil yang berguna adalah transkrip yang tetap terhubung dengan rekaman, beserta metadata bahasa yang terdeteksi jika model dapat membuat prediksi yang andal.\n\n### Menyiapkan rekaman lengkap\n\nAlur transkripsi berkas OpenAI menerima unggahan hingga 25 MB. Referensi endpoint saat ini mencantumkan format masukan FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, dan WebM serta menyarankan metadata berkas yang memadai untuk mengenali formatnya, termasuk ekstensi nama berkas dan jenis konten yang sesuai. Untuk rekaman yang lebih besar, panduan menyarankan kompresi atau pemisahan menjadi berkas berukuran 25 MB atau kurang. Hindari memotong di tengah kalimat karena menghilangkan ucapan di sekitarnya dapat menurunkan akurasi pengenalan. Pertahankan urutan bagian dan posisinya dalam rekaman asli.\n\nUntuk rapat, wawancara, atau presentasi yang direkam, berikan audio sebenarnya dan sebutkan topik serta istilah yang mungkin diucapkan. Hasil yang berguna adalah kata-kata yang dikenali, bukan ringkasan pembahasan berdasarkan dugaan. Simpan pengenal rekaman bersama teks yang dikembalikan agar orang yang memeriksa nama, angka, atau frasa yang meragukan dapat kembali ke sumber yang tepat. Transkrip kemudian dapat menjadi bahan untuk alur peringkasan, penerjemahan, atau penyuntingan yang terpisah.\n\n### Konteks, petunjuk kata kunci, dan bahasa yang diharapkan\n\nProdusen membedakan tiga jenis panduan. Prompt memberikan konteks bebas tentang topik atau situasi rekaman. Kata kunci memberikan kata atau frasa literal yang diperkirakan ada dalam ucapan. Daftar languages menunjukkan bahasa lisan yang diharapkan. Untuk diskusi produk dwibahasa, jelaskan situasinya dalam prompt, cantumkan nama produk terkait sebagai kata kunci, dan berikan bahasa yang diharapkan. Semuanya merupakan petunjuk pengenalan, bukan instruksi untuk menyisipkan kosakata yang tidak diucapkan siapa pun.\n\nGPT Transcribe menggunakan kolom jamak languages sebagai pengganti kolom tunggal language yang lebih lama; OpenAI menyatakan agar keduanya tidak dikirim bersamaan. Panduannya menerima kode ISO 639-1 yang didukung, kode ISO 639-3 tertentu, dan kode lokal bahasa Mandarin regional, sedangkan nilai yang tidak didukung atau salah format ditolak. Setiap kata kunci harus tetap dalam satu baris dan tidak boleh memuat tanda kurung sudut, karakter carriage return, atau line feed. Kata kunci yang tidak valid atau prompt yang terlalu panjang dapat menyebabkan seluruh permintaan ditolak. Jaga agar konteks tetap relevan dan periksa apakah nama yang dijadikan petunjuk benar-benar muncul dalam audio, alih-alih memperlakukan daftar petunjuk sebagai transkrip.\n\n### Keluaran JSON dan prediksi bahasa yang terdeteksi\n\nHasil berkas yang didokumentasikan berupa JSON yang memuat transkrip dan bahasa yang terdeteksi. Prediksi bahasa tersebut adalah keluaran model, bukan salinan petunjuk bahasa yang diberikan. Daftar bahasa kosong adalah hasil yang valid ketika model tidak dapat membuat prediksi yang andal; hasil itu tidak membuktikan bahwa rekamannya hening atau transkripsi gagal. Pisahkan teks yang dikenali dari metadata bahasa agar pemrosesan berikutnya dapat menggunakan masing-masing sesuai maknanya.\n\n### Mengalirkan transkrip berkas\n\nBerkas lengkap dapat menghasilkan teks transkrip secara bertahap selama pemrosesan. OpenAI mendokumentasikan peristiwa transcript.text.delta untuk teks parsial dan transcript.text.done untuk transkrip berkas lengkap; peristiwa akhir juga menyertakan bahasa yang terdeteksi. Ini mengalirkan keluaran dari rekaman yang sudah diberikan. Cara ini berguna untuk menampilkan kemajuan pada unggahan panjang, sedangkan peristiwa akhir menetapkan teks yang harus disimpan sebagai hasil lengkap.\n\n### Giliran yang dikomit dalam sesi Realtime\n\nGPT Transcribe juga memiliki alur Realtime khusus melalui WebSocket. Audio ditambahkan ke buffer masukan, lalu aplikasi secara eksplisit mengomit satu giliran audio. Transkripsi dimulai untuk potongan yang telah dikomit itu dan dapat mengeluarkan delta sebelum peristiwa penyelesaiannya, termasuk informasi bahasa yang terdeteksi. Model secara otomatis menggunakan giliran yang telah ditranskripsikan sebelumnya sebagai konteks dalam alur sesi produsen ini. Ini berbeda dari mengeluarkan teks takarir langsung secara terus-menerus saat audio mikrofon masuk; OpenAI menamai GPT Live Transcribe untuk alur berkelanjutan tersebut.\n\nUntuk beberapa giliran, simpan pengenal item masukan bersama transkrip yang sesuai. OpenAI memperingatkan bahwa peristiwa penyelesaian dari giliran yang berbeda tidak harus tiba dalam urutan ucapan, jadi kaitkan setiap hasil akhir dengan masukan yang dikomit, alih-alih menyusun percakapan hanya berdasarkan waktu penyelesaian. Artefak yang berguna adalah transkrip berurutan yang dirangkai dari item akhir yang benar, dengan teks sementara diperlakukan sebagai kemajuan, bukan ujaran lengkap yang terpisah.\n\n### Keluaran khusus dan batasan substantif\n\nProfil ini tidak menyediakan kontrak universal untuk takarir, stempel waktu, terjemahan, atau label pembicara. Panduan migrasi OpenAI membedakan kemampuan khusus tersebut: format takarir bawaan dan waktu per kata memerlukan model serta format yang kompatibel, sedangkan label pembicara menggunakan GPT-4o Transcribe Diarize. Hasil berkas GPT Transcribe berupa JSON, bukan pengganti langsung respons SRT, VTT, atau respons dengan stempel waktu terperinci. Kartu model yang tepat tidak memublikasikan batas numerik konteks atau keluaran maksimum, jadi jendela token model percakapan tidak boleh diasumsikan berlaku untuk transkripsi audio.\n\nPeriksa kosakata sulit, angka, aksen, kebisingan latar, dan pergantian bahasa terhadap rekaman. Pastikan petunjuk yang relevan meningkatkan pengenalan tanpa menyisipkan istilah yang tidak diucapkan dan bahwa transkrip akhir mencakup bagian akhir audio. Untuk hasil multibahasa, pertahankan kata-kata yang diucapkan sebelum menyiapkan versi terjemahan. Pemeriksaan ini menjadikan transkrip berguna sebagai bahan sumber sekaligus tetap membedakan dengan jelas petunjuk konteks, bahasa yang terdeteksi, dan ucapan yang dikenali.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a35f0df88b0261f31781f5b0d05df1661bb4e76503a3c227509fd083d091ed35",
    "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: GPT Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-transcribe</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%2Fgpt-transcribe\">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\">GPT Transcribe mengubah rekaman ucapan menjadi teks dalam bahasa aslinya, dengan prompt kontekstual, petunjuk kata kunci literal, dan petunjuk beberapa bahasa. OpenAI mendokumentasikan transkripsi berkas lengkap, hasil berkas yang dialirkan, dan transkripsi setelah giliran audio Realtime dikomit.</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>GPT Transcribe adalah model ucapan-ke-teks OpenAI untuk berkas audio lengkap, transkrip berkas yang dialirkan, dan giliran audio yang dikomit dalam sesi Realtime. Model ini menerima audio dengan konteks teks opsional dan mengembalikan teks yang dikenali. Produsen memosisikannya untuk transkripsi akurat atas rekaman ucapan dalam bahasa aslinya, termasuk kosakata bidang tertentu, rekaman multibahasa, dan alih kode. Hasil yang berguna adalah transkrip yang tetap terhubung dengan rekaman, beserta metadata bahasa yang terdeteksi jika model dapat membuat prediksi yang andal.</p><h4>Menyiapkan rekaman lengkap</h4><p>Alur transkripsi berkas OpenAI menerima unggahan hingga 25 MB. Referensi endpoint saat ini mencantumkan format masukan FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, dan WebM serta menyarankan metadata berkas yang memadai untuk mengenali formatnya, termasuk ekstensi nama berkas dan jenis konten yang sesuai. Untuk rekaman yang lebih besar, panduan menyarankan kompresi atau pemisahan menjadi berkas berukuran 25 MB atau kurang. Hindari memotong di tengah kalimat karena menghilangkan ucapan di sekitarnya dapat menurunkan akurasi pengenalan. Pertahankan urutan bagian dan posisinya dalam rekaman asli.</p><p>Untuk rapat, wawancara, atau presentasi yang direkam, berikan audio sebenarnya dan sebutkan topik serta istilah yang mungkin diucapkan. Hasil yang berguna adalah kata-kata yang dikenali, bukan ringkasan pembahasan berdasarkan dugaan. Simpan pengenal rekaman bersama teks yang dikembalikan agar orang yang memeriksa nama, angka, atau frasa yang meragukan dapat kembali ke sumber yang tepat. Transkrip kemudian dapat menjadi bahan untuk alur peringkasan, penerjemahan, atau penyuntingan yang terpisah.</p><h4>Konteks, petunjuk kata kunci, dan bahasa yang diharapkan</h4><p>Produsen membedakan tiga jenis panduan. Prompt memberikan konteks bebas tentang topik atau situasi rekaman. Kata kunci memberikan kata atau frasa literal yang diperkirakan ada dalam ucapan. Daftar languages menunjukkan bahasa lisan yang diharapkan. Untuk diskusi produk dwibahasa, jelaskan situasinya dalam prompt, cantumkan nama produk terkait sebagai kata kunci, dan berikan bahasa yang diharapkan. Semuanya merupakan petunjuk pengenalan, bukan instruksi untuk menyisipkan kosakata yang tidak diucapkan siapa pun.</p><p>GPT Transcribe menggunakan kolom jamak languages sebagai pengganti kolom tunggal language yang lebih lama; OpenAI menyatakan agar keduanya tidak dikirim bersamaan. Panduannya menerima kode ISO 639-1 yang didukung, kode ISO 639-3 tertentu, dan kode lokal bahasa Mandarin regional, sedangkan nilai yang tidak didukung atau salah format ditolak. Setiap kata kunci harus tetap dalam satu baris dan tidak boleh memuat tanda kurung sudut, karakter carriage return, atau line feed. Kata kunci yang tidak valid atau prompt yang terlalu panjang dapat menyebabkan seluruh permintaan ditolak. Jaga agar konteks tetap relevan dan periksa apakah nama yang dijadikan petunjuk benar-benar muncul dalam audio, alih-alih memperlakukan daftar petunjuk sebagai transkrip.</p><h4>Keluaran JSON dan prediksi bahasa yang terdeteksi</h4><p>Hasil berkas yang didokumentasikan berupa JSON yang memuat transkrip dan bahasa yang terdeteksi. Prediksi bahasa tersebut adalah keluaran model, bukan salinan petunjuk bahasa yang diberikan. Daftar bahasa kosong adalah hasil yang valid ketika model tidak dapat membuat prediksi yang andal; hasil itu tidak membuktikan bahwa rekamannya hening atau transkripsi gagal. Pisahkan teks yang dikenali dari metadata bahasa agar pemrosesan berikutnya dapat menggunakan masing-masing sesuai maknanya.</p><h4>Mengalirkan transkrip berkas</h4><p>Berkas lengkap dapat menghasilkan teks transkrip secara bertahap selama pemrosesan. OpenAI mendokumentasikan peristiwa transcript.text.delta untuk teks parsial dan transcript.text.done untuk transkrip berkas lengkap; peristiwa akhir juga menyertakan bahasa yang terdeteksi. Ini mengalirkan keluaran dari rekaman yang sudah diberikan. Cara ini berguna untuk menampilkan kemajuan pada unggahan panjang, sedangkan peristiwa akhir menetapkan teks yang harus disimpan sebagai hasil lengkap.</p><h4>Giliran yang dikomit dalam sesi Realtime</h4><p>GPT Transcribe juga memiliki alur Realtime khusus melalui WebSocket. Audio ditambahkan ke buffer masukan, lalu aplikasi secara eksplisit mengomit satu giliran audio. Transkripsi dimulai untuk potongan yang telah dikomit itu dan dapat mengeluarkan delta sebelum peristiwa penyelesaiannya, termasuk informasi bahasa yang terdeteksi. Model secara otomatis menggunakan giliran yang telah ditranskripsikan sebelumnya sebagai konteks dalam alur sesi produsen ini. Ini berbeda dari mengeluarkan teks takarir langsung secara terus-menerus saat audio mikrofon masuk; OpenAI menamai GPT Live Transcribe untuk alur berkelanjutan tersebut.</p><p>Untuk beberapa giliran, simpan pengenal item masukan bersama transkrip yang sesuai. OpenAI memperingatkan bahwa peristiwa penyelesaian dari giliran yang berbeda tidak harus tiba dalam urutan ucapan, jadi kaitkan setiap hasil akhir dengan masukan yang dikomit, alih-alih menyusun percakapan hanya berdasarkan waktu penyelesaian. Artefak yang berguna adalah transkrip berurutan yang dirangkai dari item akhir yang benar, dengan teks sementara diperlakukan sebagai kemajuan, bukan ujaran lengkap yang terpisah.</p><h4>Keluaran khusus dan batasan substantif</h4><p>Profil ini tidak menyediakan kontrak universal untuk takarir, stempel waktu, terjemahan, atau label pembicara. Panduan migrasi OpenAI membedakan kemampuan khusus tersebut: format takarir bawaan dan waktu per kata memerlukan model serta format yang kompatibel, sedangkan label pembicara menggunakan GPT-4o Transcribe Diarize. Hasil berkas GPT Transcribe berupa JSON, bukan pengganti langsung respons SRT, VTT, atau respons dengan stempel waktu terperinci. Kartu model yang tepat tidak memublikasikan batas numerik konteks atau keluaran maksimum, jadi jendela token model percakapan tidak boleh diasumsikan berlaku untuk transkripsi audio.</p><p>Periksa kosakata sulit, angka, aksen, kebisingan latar, dan pergantian bahasa terhadap rekaman. Pastikan petunjuk yang relevan meningkatkan pengenalan tanpa menyisipkan istilah yang tidak diucapkan dan bahwa transkrip akhir mencakup bagian akhir audio. Untuk hasil multibahasa, pertahankan kata-kata yang diucapkan sebelum menyiapkan versi terjemahan. Pemeriksaan ini menjadikan transkrip berguna sebagai bahan sumber sekaligus tetap membedakan dengan jelas petunjuk konteks, bahasa yang terdeteksi, dan ucapan yang dikenali.</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/gpt-transcribe</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.00015</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-2158-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2158-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-2158-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2158-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;openai/gpt-transcribe&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">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%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</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%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "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/gpt-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "openai/gpt-transcribe"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "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.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'openai/gpt-transcribe', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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": 0.00015
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "openai/gpt-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "58ed185cdc51f2d951a3f5113d100a97166ccc107c02525d4bfa3142bdaf7d4d",
    "input_html_sha256": "fd93a6fdc3e7a16f463905fb7c5e7a73220dca49a0df07fa7e004668c3b84ee2",
    "private_audit_sha256": "78122ecb370eeb1584dbee193e63803470d6697368c80ed7b8ffaa71fe9df77f",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/openai-gpt-transcribe/",
    "description": "GPT Transcribe mengubah rekaman ucapan menjadi teks dalam bahasa aslinya, dengan prompt kontekstual, petunjuk kata kunci literal, dan petunjuk beberapa bahasa. OpenAI mendokumentasikan transkripsi berkas lengkap, hasil berkas yang dialirkan, dan transkripsi setelah giliran audio Realtime dikomit.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/openai-gpt-transcribe/index.md",
    "title": "OpenAI: GPT Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/id/openai-gpt-transcribe/"
  },
  "rawModel": {
    "about": "GPT Transcribe adalah model ucapan-ke-teks OpenAI untuk berkas audio lengkap, transkrip berkas yang dialirkan, dan giliran audio yang dikomit dalam sesi Realtime. Model ini menerima audio dengan konteks teks opsional dan mengembalikan teks yang dikenali. Produsen memosisikannya untuk transkripsi akurat atas rekaman ucapan dalam bahasa aslinya, termasuk kosakata bidang tertentu, rekaman multibahasa, dan alih kode. Hasil yang berguna adalah transkrip yang tetap terhubung dengan rekaman, beserta metadata bahasa yang terdeteksi jika model dapat membuat prediksi yang andal.\n\n### Menyiapkan rekaman lengkap\n\nAlur transkripsi berkas OpenAI menerima unggahan hingga 25 MB. Referensi endpoint saat ini mencantumkan format masukan FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, dan WebM serta menyarankan metadata berkas yang memadai untuk mengenali formatnya, termasuk ekstensi nama berkas dan jenis konten yang sesuai. Untuk rekaman yang lebih besar, panduan menyarankan kompresi atau pemisahan menjadi berkas berukuran 25 MB atau kurang. Hindari memotong di tengah kalimat karena menghilangkan ucapan di sekitarnya dapat menurunkan akurasi pengenalan. Pertahankan urutan bagian dan posisinya dalam rekaman asli.\n\nUntuk rapat, wawancara, atau presentasi yang direkam, berikan audio sebenarnya dan sebutkan topik serta istilah yang mungkin diucapkan. Hasil yang berguna adalah kata-kata yang dikenali, bukan ringkasan pembahasan berdasarkan dugaan. Simpan pengenal rekaman bersama teks yang dikembalikan agar orang yang memeriksa nama, angka, atau frasa yang meragukan dapat kembali ke sumber yang tepat. Transkrip kemudian dapat menjadi bahan untuk alur peringkasan, penerjemahan, atau penyuntingan yang terpisah.\n\n### Konteks, petunjuk kata kunci, dan bahasa yang diharapkan\n\nProdusen membedakan tiga jenis panduan. Prompt memberikan konteks bebas tentang topik atau situasi rekaman. Kata kunci memberikan kata atau frasa literal yang diperkirakan ada dalam ucapan. Daftar languages menunjukkan bahasa lisan yang diharapkan. Untuk diskusi produk dwibahasa, jelaskan situasinya dalam prompt, cantumkan nama produk terkait sebagai kata kunci, dan berikan bahasa yang diharapkan. Semuanya merupakan petunjuk pengenalan, bukan instruksi untuk menyisipkan kosakata yang tidak diucapkan siapa pun.\n\nGPT Transcribe menggunakan kolom jamak languages sebagai pengganti kolom tunggal language yang lebih lama; OpenAI menyatakan agar keduanya tidak dikirim bersamaan. Panduannya menerima kode ISO 639-1 yang didukung, kode ISO 639-3 tertentu, dan kode lokal bahasa Mandarin regional, sedangkan nilai yang tidak didukung atau salah format ditolak. Setiap kata kunci harus tetap dalam satu baris dan tidak boleh memuat tanda kurung sudut, karakter carriage return, atau line feed. Kata kunci yang tidak valid atau prompt yang terlalu panjang dapat menyebabkan seluruh permintaan ditolak. Jaga agar konteks tetap relevan dan periksa apakah nama yang dijadikan petunjuk benar-benar muncul dalam audio, alih-alih memperlakukan daftar petunjuk sebagai transkrip.\n\n### Keluaran JSON dan prediksi bahasa yang terdeteksi\n\nHasil berkas yang didokumentasikan berupa JSON yang memuat transkrip dan bahasa yang terdeteksi. Prediksi bahasa tersebut adalah keluaran model, bukan salinan petunjuk bahasa yang diberikan. Daftar bahasa kosong adalah hasil yang valid ketika model tidak dapat membuat prediksi yang andal; hasil itu tidak membuktikan bahwa rekamannya hening atau transkripsi gagal. Pisahkan teks yang dikenali dari metadata bahasa agar pemrosesan berikutnya dapat menggunakan masing-masing sesuai maknanya.\n\n### Mengalirkan transkrip berkas\n\nBerkas lengkap dapat menghasilkan teks transkrip secara bertahap selama pemrosesan. OpenAI mendokumentasikan peristiwa transcript.text.delta untuk teks parsial dan transcript.text.done untuk transkrip berkas lengkap; peristiwa akhir juga menyertakan bahasa yang terdeteksi. Ini mengalirkan keluaran dari rekaman yang sudah diberikan. Cara ini berguna untuk menampilkan kemajuan pada unggahan panjang, sedangkan peristiwa akhir menetapkan teks yang harus disimpan sebagai hasil lengkap.\n\n### Giliran yang dikomit dalam sesi Realtime\n\nGPT Transcribe juga memiliki alur Realtime khusus melalui WebSocket. Audio ditambahkan ke buffer masukan, lalu aplikasi secara eksplisit mengomit satu giliran audio. Transkripsi dimulai untuk potongan yang telah dikomit itu dan dapat mengeluarkan delta sebelum peristiwa penyelesaiannya, termasuk informasi bahasa yang terdeteksi. Model secara otomatis menggunakan giliran yang telah ditranskripsikan sebelumnya sebagai konteks dalam alur sesi produsen ini. Ini berbeda dari mengeluarkan teks takarir langsung secara terus-menerus saat audio mikrofon masuk; OpenAI menamai GPT Live Transcribe untuk alur berkelanjutan tersebut.\n\nUntuk beberapa giliran, simpan pengenal item masukan bersama transkrip yang sesuai. OpenAI memperingatkan bahwa peristiwa penyelesaian dari giliran yang berbeda tidak harus tiba dalam urutan ucapan, jadi kaitkan setiap hasil akhir dengan masukan yang dikomit, alih-alih menyusun percakapan hanya berdasarkan waktu penyelesaian. Artefak yang berguna adalah transkrip berurutan yang dirangkai dari item akhir yang benar, dengan teks sementara diperlakukan sebagai kemajuan, bukan ujaran lengkap yang terpisah.\n\n### Keluaran khusus dan batasan substantif\n\nProfil ini tidak menyediakan kontrak universal untuk takarir, stempel waktu, terjemahan, atau label pembicara. Panduan migrasi OpenAI membedakan kemampuan khusus tersebut: format takarir bawaan dan waktu per kata memerlukan model serta format yang kompatibel, sedangkan label pembicara menggunakan GPT-4o Transcribe Diarize. Hasil berkas GPT Transcribe berupa JSON, bukan pengganti langsung respons SRT, VTT, atau respons dengan stempel waktu terperinci. Kartu model yang tepat tidak memublikasikan batas numerik konteks atau keluaran maksimum, jadi jendela token model percakapan tidak boleh diasumsikan berlaku untuk transkripsi audio.\n\nPeriksa kosakata sulit, angka, aksen, kebisingan latar, dan pergantian bahasa terhadap rekaman. Pastikan petunjuk yang relevan meningkatkan pengenalan tanpa menyisipkan istilah yang tidak diucapkan dan bahwa transkrip akhir mencakup bagian akhir audio. Untuk hasil multibahasa, pertahankan kata-kata yang diucapkan sebelum menyiapkan versi terjemahan. Pemeriksaan ini menjadikan transkrip berguna sebagai bahan sumber sekaligus tetap membedakan dengan jelas petunjuk konteks, bahasa yang terdeteksi, dan ucapan yang dikenali.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Informasi lengkap harga konfigurasi tersedia di bagian detail."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "openai/gpt-transcribe",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "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/gpt-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "openai/gpt-transcribe"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "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.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'openai/gpt-transcribe', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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": 0.00015
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.00015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "openai/gpt-transcribe",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "GPT Transcribe mengubah rekaman ucapan menjadi teks dalam bahasa aslinya, dengan prompt kontekstual, petunjuk kata kunci literal, dan petunjuk beberapa bahasa. OpenAI mendokumentasikan transkripsi berkas lengkap, hasil berkas yang dialirkan, dan transkripsi setelah giliran audio Realtime dikomit."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "GPT Transcribe mengubah rekaman ucapan menjadi teks dalam bahasa aslinya, dengan prompt kontekstual, petunjuk kata kunci literal, dan petunjuk beberapa bahasa. OpenAI mendokumentasikan transkripsi berkas lengkap, hasil berkas yang dialirkan, dan transkripsi setelah giliran audio Realtime dikomit.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "8ab4e7d1928818db6f2fa13e84f4cf98ab6ec09c7f40db753db7b8abebd0683c",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "b0645089e468848752032ee8db7dd1f3f9d136efd1e3b87ca7a4d8847238698e"
}
