{
  "aboutHtml": "<p>Gemini 3.8 Flash-Lite TTS dirancang untuk banyak operasi ucapan: pembacaan teks, sintesis giliran bicara berurutan, dan skenario suara sehari-hari. Menurut Google, profilnya adalah latensi rendah dan pemrosesan massal yang efisien.</p><h4>Pemilihan suara</h4><p>Model mendukung <strong>101 bahasa</strong>, termasuk bahasa Rusia. Pilihannya mencakup <strong>30 suara siap pakai</strong>, pustaka yang diperluas, pembuatan karakter suara, dan peniruan suara dari contoh. Suara, gaya, dan teks yang diucapkan ditentukan secara terpisah, sehingga teks untuk dibacakan tidak perlu dicampur dengan deskripsi karakter pembacaan.</p><p>Flash-Lite menggunakan format kendali ucapan yang sama dengan Gemini 3.8 Flash TTS. Dalam percakapan, setiap giliran dikaitkan dengan pembicara tertentu. Jumlah suara siap pakai dalam satu permintaan multisuara dibatasi menjadi dua; suara yang dibuat dari deskripsi atau contoh digunakan dalam giliran ucapan tersendiri.</p><h4>Materi masukan</h4><p>Masukan berupa <strong>teks hingga 8 192 token</strong>, sedangkan keluaran berupa <strong>audio dengan batas 16 384 token</strong>. Pengaturan pengucapan mengendalikan gaya pembawaan, sedangkan peristiwa vokal singkat dan jeda ditentukan melalui tag audio khusus dalam teks. Ini merupakan sintesis ucapan dari teks giliran yang ditentukan, bukan pembuatan jawaban teks atas pertanyaan.</p><h4>Format dan pemrosesan</h4><p>Jawaban biasa menggunakan <strong>WAV</strong> secara default. Format streaming default adalah <strong>PCM tanpa header</strong>. Parameter audio awal adalah <strong>24 kHz, satu kanal, dan 16 bit</strong>. Produsen juga menyediakan PCM, mu-law, dan A-law. Penyimpanan konteks dalam cache dan pemrosesan batch didukung. Kemampuan format audio perlu dipertimbangkan secara terpisah dari cara sebenarnya memperoleh berkas melalui metode ucapan yang dipilih.</p><h4>Batasan model</h4><p>Versi ini tidak menyatakan Thinking, pemanggilan fungsi, eksekusi kode, pencarian berkas, grounding berbasis penelusuran, Google Maps, jawaban teks terstruktur, pembuatan gambar, atau penggunaan isi alamat web. Tujuannya adalah membacakan materi yang telah disiapkan dengan cepat.</p><p>Fokus pada latensi rendah tidak menetapkan tenggat penyelesaian setiap permintaan. Cakupan bahasa, cara pemilihan suara, dan pengaturan penyampaian menjelaskan kemampuan model itu sendiri dan tidak berarti semua pengaturan otomatis tersedia dalam setiap metode ucapan.</p>",
  "aboutText": "Gemini 3.8 Flash-Lite TTS dirancang untuk banyak operasi ucapan: pembacaan teks, sintesis giliran bicara berurutan, dan skenario suara sehari-hari. Menurut Google, profilnya adalah latensi rendah dan pemrosesan massal yang efisien.\n\n### Pemilihan suara\n\nModel mendukung **101 bahasa**, termasuk bahasa Rusia. Pilihannya mencakup **30 suara siap pakai**, pustaka yang diperluas, pembuatan karakter suara, dan peniruan suara dari contoh. Suara, gaya, dan teks yang diucapkan ditentukan secara terpisah, sehingga teks untuk dibacakan tidak perlu dicampur dengan deskripsi karakter pembacaan.\n\nFlash-Lite menggunakan format kendali ucapan yang sama dengan Gemini 3.8 Flash TTS. Dalam percakapan, setiap giliran dikaitkan dengan pembicara tertentu. Jumlah suara siap pakai dalam satu permintaan multisuara dibatasi menjadi dua; suara yang dibuat dari deskripsi atau contoh digunakan dalam giliran ucapan tersendiri.\n\n### Materi masukan\n\nMasukan berupa **teks hingga 8 192 token**, sedangkan keluaran berupa **audio dengan batas 16 384 token**. Pengaturan pengucapan mengendalikan gaya pembawaan, sedangkan peristiwa vokal singkat dan jeda ditentukan melalui tag audio khusus dalam teks. Ini merupakan sintesis ucapan dari teks giliran yang ditentukan, bukan pembuatan jawaban teks atas pertanyaan.\n\n### Format dan pemrosesan\n\nJawaban biasa menggunakan **WAV** secara default. Format streaming default adalah **PCM tanpa header**. Parameter audio awal adalah **24 kHz, satu kanal, dan 16 bit**. Produsen juga menyediakan PCM, mu-law, dan A-law. Penyimpanan konteks dalam cache dan pemrosesan batch didukung. Kemampuan format audio perlu dipertimbangkan secara terpisah dari cara sebenarnya memperoleh berkas melalui metode ucapan yang dipilih.\n\n### Batasan model\n\nVersi ini tidak menyatakan Thinking, pemanggilan fungsi, eksekusi kode, pencarian berkas, grounding berbasis penelusuran, Google Maps, jawaban teks terstruktur, pembuatan gambar, atau penggunaan isi alamat web. Tujuannya adalah membacakan materi yang telah disiapkan dengan cepat.\n\nFokus pada latensi rendah tidak menetapkan tenggat penyelesaian setiap permintaan. Cakupan bahasa, cara pemilihan suara, dan pengaturan penyampaian menjelaskan kemampuan model itu sendiri dan tidak berarti semua pengaturan otomatis tersedia dalam setiap metode ucapan.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "950ada5bb5ed3597f4f93ccc1c7fc0f01212560eb60b44ced5c00afa54117085",
    "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\">G</span><h2 id=\"sheet-title\">Gemini 3.8 Flash Lite Tts</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Google /</span><code>gemini-3.8-flash-lite-tts</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=\"Core|speech|/v1/audio/speech|gemini-3.8-flash-lite-tts\">Sintesis ucapan</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\">Model ucapan Google untuk pembacaan teks massal, giliran bicara berurutan, dan skenario suara dalam 101 bahasa.</p><dl class=\"card-io\" data-card-io><div><dt>Masukan yang diterima</dt><dd>Teks</dd></div><div><dt>Hasil</dt><dd>Audio</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>Gemini 3.8 Flash-Lite TTS dirancang untuk banyak operasi ucapan: pembacaan teks, sintesis giliran bicara berurutan, dan skenario suara sehari-hari. Menurut Google, profilnya adalah latensi rendah dan pemrosesan massal yang efisien.</p><h4>Pemilihan suara</h4><p>Model mendukung <strong>101 bahasa</strong>, termasuk bahasa Rusia. Pilihannya mencakup <strong>30 suara siap pakai</strong>, pustaka yang diperluas, pembuatan karakter suara, dan peniruan suara dari contoh. Suara, gaya, dan teks yang diucapkan ditentukan secara terpisah, sehingga teks untuk dibacakan tidak perlu dicampur dengan deskripsi karakter pembacaan.</p><p>Flash-Lite menggunakan format kendali ucapan yang sama dengan Gemini 3.8 Flash TTS. Dalam percakapan, setiap giliran dikaitkan dengan pembicara tertentu. Jumlah suara siap pakai dalam satu permintaan multisuara dibatasi menjadi dua; suara yang dibuat dari deskripsi atau contoh digunakan dalam giliran ucapan tersendiri.</p><h4>Materi masukan</h4><p>Masukan berupa <strong>teks hingga 8 192 token</strong>, sedangkan keluaran berupa <strong>audio dengan batas 16 384 token</strong>. Pengaturan pengucapan mengendalikan gaya pembawaan, sedangkan peristiwa vokal singkat dan jeda ditentukan melalui tag audio khusus dalam teks. Ini merupakan sintesis ucapan dari teks giliran yang ditentukan, bukan pembuatan jawaban teks atas pertanyaan.</p><h4>Format dan pemrosesan</h4><p>Jawaban biasa menggunakan <strong>WAV</strong> secara default. Format streaming default adalah <strong>PCM tanpa header</strong>. Parameter audio awal adalah <strong>24 kHz, satu kanal, dan 16 bit</strong>. Produsen juga menyediakan PCM, mu-law, dan A-law. Penyimpanan konteks dalam cache dan pemrosesan batch didukung. Kemampuan format audio perlu dipertimbangkan secara terpisah dari cara sebenarnya memperoleh berkas melalui metode ucapan yang dipilih.</p><h4>Batasan model</h4><p>Versi ini tidak menyatakan Thinking, pemanggilan fungsi, eksekusi kode, pencarian berkas, grounding berbasis penelusuran, Google Maps, jawaban teks terstruktur, pembuatan gambar, atau penggunaan isi alamat web. Tujuannya adalah membacakan materi yang telah disiapkan dengan cepat.</p><p>Fokus pada latensi rendah tidak menetapkan tenggat penyelesaian setiap permintaan. Cakupan bahasa, cara pemilihan suara, dan pengaturan penyampaian menjelaskan kemampuan model itu sendiri dan tidak berarti semua pengaturan otomatis tersedia dalam setiap metode ucapan.</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 · Sintesis ucapan</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Masukan</dt><dd><code>text</code></dd></div><div><dt>Keluaran</dt><dd><code>audio</code></dd></div><div><dt>Konteks</dt><dd>8.192 tokens</dd></div><div><dt>Keluaran maksimum</dt><dd>16.384 tokens</dd></div><div><dt>Format keluaran</dt><dd>byte audio asli atau tautan aset JSON</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 data-parameter-availability=\"source_interface\"><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>gemini-3.8-flash-lite-tts</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">input</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>Panjang minimum: 1</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">voice</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>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Arlo, Autonoe, Bodi, Brio, Callirrhoe, Charon, Cleo, Cruz, Daro, Despina, Elio, Enceladus, Enya, Enzo, Erinome, Fenrir, Finn, Fola, Gacrux, Gero, Hali, Iapetus, Jett, Jori, Kira, Knox, Koda, Kore, Laomedeia, Leda, Lora, Ludo, Lumi, Mako, Milo, Neno, Nika, Nyla, Olin, Orus, Puck, Pulcherrima, Rami, Rasalgethi, Riko, Rina, Sadachbia, Sadaltager, Sami, Schedar, Sola, Sulafat, Tari, Tavi, Tova, Umbriel, Varo, Veda, Vindemiatrix, Zali, Zeno, Zephyr, Zubenelgenubi, Zuri</div></td><td data-cell-label=\"Bawaan\" data-default=\"known\"><span class=\"card-cell-label\">Bawaan</span>Kore</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">response_format</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>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>, wav, json</div></td><td data-cell-label=\"Bawaan\" data-default=\"known\"><span class=\"card-cell-label\">Bawaan</span></td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">stream_format</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>Opsional</td><td data-cell-label=\"Nilai &amp; batasan\"><span class=\"card-cell-label\">Nilai &amp; batasan</span><div>audio</div></td><td data-cell-label=\"Bawaan\" data-default=\"unspecified\"><span class=\"card-cell-label\">Bawaan</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinasi bahan masukan</summary><p class=\"note-s\"><b>text_to_speech</b> · Wajib: input</p></details><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>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text</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>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>null</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 aktual yang dikembalikan atau catatan pustaka media</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><p class=\"note-s\">Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Paket</h3><h4>Tarif metode Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Sintesis ucapan</b><code>POST /v1/audio/speech</code></header><dl><div><dt>Masukan</dt><dd>US$0,0005 <em>/ 1K</em></dd></div><div><dt>Keluaran</dt><dd>US$0,006 <em>/ 1K</em></dd></div><div><dt>Pembacaan cache</dt><dd>US$0,000125 <em>/ 1K</em></dd></div></dl></section><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 · Sintesis ucapan</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-344-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-344-panel-0\" aria-selected=\"true\" tabindex=\"0\">Contoh ucapan</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-344-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-344-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;gemini-3.8-flash-lite-tts&quot;, &quot;input&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=text\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\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 speech.wav\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 · Sintesis ucapan</h4><p class=\"note-s\">byte audio asli atau tautan aset JSON</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>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\">Satu keluaran secara bawaan berupa byte audio native dengan Content-Type aktual; response_format=json atau beberapa keluaran mengembalikan semua tautan yang dimiliki. Konversi sesuai permintaan ke MP3/Opus/AAC/FLAC/PCM dan keluaran SSE tidak tersedia.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asli perlu diperiksa</h5><p class=\"note-s\">Simpan operation_id/X-Client-Request-ID asli untuk rekonsiliasi tanpa pengiriman ulang; tidak ada rute polling khusus audio.</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\">binary native audio</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>bytes</td></tr><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>string</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">actual_count</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer</td></tr><tr><th data-cell-label=\"Kolom\" scope=\"row\"><span class=\"card-cell-label\">Kolom</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>owned audio asset link</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>Bidang wajib, representasi materi, atau nilai parameter tidak valid</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.</td></tr><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span><code>server_error</code></th><td data-cell-label=\"Kondisi\"><span class=\"card-cell-label\">Kondisi</span>Respons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksa</td><td data-cell-label=\"Langkah berikutnya\"><span class=\"card-cell-label\">Langkah berikutnya</span>Simpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan 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=\"Core\"><b>Ailoot</b> <a href=\"#m=gemini-3.8-flash-lite-tts&amp;route=Core&amp;caller=gemini-3.8-flash-lite-tts&amp;fmt=speech\"><code>gemini-3.8-flash-lite-tts</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=gemini-3.8-flash-lite-tts&amp;route=Core&amp;caller=gemini-3.8-flash-lite-tts&amp;fmt=speech\"><code>gemini-3.8-flash-lite-tts</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gemini-3.8-flash-lite-tts",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "gemini-3.8-flash-lite-tts",
        "route_label": "Core"
      },
      "method_key": "Core|speech|/v1/audio/speech|gemini-3.8-flash-lite-tts",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": 0.125,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "A single output defaults to native audio bytes with actualContent-Type; response_format=json or multiple outputs returns all owned links. No requested MP3/Opus/AAC/FLAC/PCM conversion or SSE.",
            "errors": [
              {
                "code": null,
                "condition": "Bidang wajib, representasi materi, atau nilai parameter tidak valid",
                "http_status": 400,
                "recovery": "Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Respons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksa",
                "http_status": null,
                "recovery": "Simpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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 URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Simpan operation_id/X-Client-Request-ID asli untuk rekonsiliasi tanpa pengiriman ulang; tidak ada rute polling khusus audio."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Satu keluaran secara bawaan berupa byte audio native dengan Content-Type aktual; response_format=json atau beberapa keluaran mengembalikan semua tautan yang dimiliki. Konversi sesuai permintaan ke MP3/Opus/AAC/FLAC/PCM dan keluaran SSE tidak tersedia.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary native audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "actual_count",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned audio asset link"
                }
              ],
              "format": "byte audio asli atau tautan aset JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.8-flash-lite-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "Kore",
                "default_known": true,
                "enum": [
                  "Achernar",
                  "Achird",
                  "Algenib",
                  "Algieba",
                  "Alnilam",
                  "Aoede",
                  "Arlo",
                  "Autonoe",
                  "Bodi",
                  "Brio",
                  "Callirrhoe",
                  "Charon",
                  "Cleo",
                  "Cruz",
                  "Daro",
                  "Despina",
                  "Elio",
                  "Enceladus",
                  "Enya",
                  "Enzo",
                  "Erinome",
                  "Fenrir",
                  "Finn",
                  "Fola",
                  "Gacrux",
                  "Gero",
                  "Hali",
                  "Iapetus",
                  "Jett",
                  "Jori",
                  "Kira",
                  "Knox",
                  "Koda",
                  "Kore",
                  "Laomedeia",
                  "Leda",
                  "Lora",
                  "Ludo",
                  "Lumi",
                  "Mako",
                  "Milo",
                  "Neno",
                  "Nika",
                  "Nyla",
                  "Olin",
                  "Orus",
                  "Puck",
                  "Pulcherrima",
                  "Rami",
                  "Rasalgethi",
                  "Riko",
                  "Rina",
                  "Sadachbia",
                  "Sadaltager",
                  "Sami",
                  "Schedar",
                  "Sola",
                  "Sulafat",
                  "Tari",
                  "Tavi",
                  "Tova",
                  "Umbriel",
                  "Varo",
                  "Veda",
                  "Vindemiatrix",
                  "Zali",
                  "Zeno",
                  "Zephyr",
                  "Zubenelgenubi",
                  "Zuri"
                ],
                "enum_known": true,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "",
                "default_known": true,
                "enum": [
                  "",
                  "wav",
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "audio"
                ],
                "enum_known": true,
                "name": "stream_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "SSE",
              "mp3/opus/aac/flac/pcm requestedtranscoding"
            ]
          },
          "hints": [
            "Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id aktual yang dikembalikan atau catatan pustaka media",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "audio"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 8192,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"gemini-3.8-flash-lite-tts\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.wav\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.5,
        "input": [
          "text"
        ],
        "label": "Sintesis ucapan",
        "max_out": 16384,
        "max_tool_calls": null,
        "out": 6,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.5,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 6,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              },
              {
                "amount": 0.125,
                "amount_unit": "usd_per_million_tokens",
                "key": "cache_read",
                "label": "Cache read",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.8-flash-lite-tts",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "gemini-3.8-flash-lite-tts",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "06820c4979674b53bd2b292027363b5aa16a3492e8ae23073c7b0401f64f5e26",
    "input_html_sha256": "0eb30cd5d919e5d812f62c8c665851fc2993659b2d64d61f3f512c3e3bb55b94",
    "private_audit_sha256": "113c958964f0ff4aecd8659659822ae9d22831bfa13ed7bc016f48101431b738",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/id/gemini-3-8-flash-lite-tts/",
    "description": "Model ucapan Google untuk pembacaan teks massal, giliran bicara berurutan, dan skenario suara dalam 101 bahasa.",
    "locale": "id",
    "md_url": "https://ailoot.ai/models/id/gemini-3-8-flash-lite-tts/index.md",
    "title": "Gemini 3.8 Flash Lite Tts — Ailoot",
    "url": "https://ailoot.ai/models/id/gemini-3-8-flash-lite-tts/"
  },
  "rawModel": {
    "about": "Gemini 3.8 Flash-Lite TTS dirancang untuk banyak operasi ucapan: pembacaan teks, sintesis giliran bicara berurutan, dan skenario suara sehari-hari. Menurut Google, profilnya adalah latensi rendah dan pemrosesan massal yang efisien.\n\n### Pemilihan suara\n\nModel mendukung **101 bahasa**, termasuk bahasa Rusia. Pilihannya mencakup **30 suara siap pakai**, pustaka yang diperluas, pembuatan karakter suara, dan peniruan suara dari contoh. Suara, gaya, dan teks yang diucapkan ditentukan secara terpisah, sehingga teks untuk dibacakan tidak perlu dicampur dengan deskripsi karakter pembacaan.\n\nFlash-Lite menggunakan format kendali ucapan yang sama dengan Gemini 3.8 Flash TTS. Dalam percakapan, setiap giliran dikaitkan dengan pembicara tertentu. Jumlah suara siap pakai dalam satu permintaan multisuara dibatasi menjadi dua; suara yang dibuat dari deskripsi atau contoh digunakan dalam giliran ucapan tersendiri.\n\n### Materi masukan\n\nMasukan berupa **teks hingga 8 192 token**, sedangkan keluaran berupa **audio dengan batas 16 384 token**. Pengaturan pengucapan mengendalikan gaya pembawaan, sedangkan peristiwa vokal singkat dan jeda ditentukan melalui tag audio khusus dalam teks. Ini merupakan sintesis ucapan dari teks giliran yang ditentukan, bukan pembuatan jawaban teks atas pertanyaan.\n\n### Format dan pemrosesan\n\nJawaban biasa menggunakan **WAV** secara default. Format streaming default adalah **PCM tanpa header**. Parameter audio awal adalah **24 kHz, satu kanal, dan 16 bit**. Produsen juga menyediakan PCM, mu-law, dan A-law. Penyimpanan konteks dalam cache dan pemrosesan batch didukung. Kemampuan format audio perlu dipertimbangkan secara terpisah dari cara sebenarnya memperoleh berkas melalui metode ucapan yang dipilih.\n\n### Batasan model\n\nVersi ini tidak menyatakan Thinking, pemanggilan fungsi, eksekusi kode, pencarian berkas, grounding berbasis penelusuran, Google Maps, jawaban teks terstruktur, pembuatan gambar, atau penggunaan isi alamat web. Tujuannya adalah membacakan materi yang telah disiapkan dengan cepat.\n\nFokus pada latensi rendah tidak menetapkan tenggat penyelesaian setiap permintaan. Cakupan bahasa, cara pemilihan suara, dan pengaturan penyampaian menjelaskan kemampuan model itu sendiri dan tidak berarti semua pengaturan otomatis tersedia dalam setiap metode ucapan.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "ctx": 8192,
    "formats": [
      "speech"
    ],
    "id": "gemini-3.8-flash-lite-tts",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": 16384,
    "methods": [
      {
        "cache_read": 0.125,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "A single output defaults to native audio bytes with actualContent-Type; response_format=json or multiple outputs returns all owned links. No requested MP3/Opus/AAC/FLAC/PCM conversion or SSE.",
            "errors": [
              {
                "code": null,
                "condition": "Bidang wajib, representasi materi, atau nilai parameter tidak valid",
                "http_status": 400,
                "recovery": "Perbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Respons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksa",
                "http_status": null,
                "recovery": "Simpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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 URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Simpan operation_id/X-Client-Request-ID asli untuk rekonsiliasi tanpa pengiriman ulang; tidak ada rute polling khusus audio."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Satu keluaran secara bawaan berupa byte audio native dengan Content-Type aktual; response_format=json atau beberapa keluaran mengembalikan semua tautan yang dimiliki. Konversi sesuai permintaan ke MP3/Opus/AAC/FLAC/PCM dan keluaran SSE tidak tersedia.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary native audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "actual_count",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned audio asset link"
                }
              ],
              "format": "byte audio asli atau tautan aset JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.8-flash-lite-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "Kore",
                "default_known": true,
                "enum": [
                  "Achernar",
                  "Achird",
                  "Algenib",
                  "Algieba",
                  "Alnilam",
                  "Aoede",
                  "Arlo",
                  "Autonoe",
                  "Bodi",
                  "Brio",
                  "Callirrhoe",
                  "Charon",
                  "Cleo",
                  "Cruz",
                  "Daro",
                  "Despina",
                  "Elio",
                  "Enceladus",
                  "Enya",
                  "Enzo",
                  "Erinome",
                  "Fenrir",
                  "Finn",
                  "Fola",
                  "Gacrux",
                  "Gero",
                  "Hali",
                  "Iapetus",
                  "Jett",
                  "Jori",
                  "Kira",
                  "Knox",
                  "Koda",
                  "Kore",
                  "Laomedeia",
                  "Leda",
                  "Lora",
                  "Ludo",
                  "Lumi",
                  "Mako",
                  "Milo",
                  "Neno",
                  "Nika",
                  "Nyla",
                  "Olin",
                  "Orus",
                  "Puck",
                  "Pulcherrima",
                  "Rami",
                  "Rasalgethi",
                  "Riko",
                  "Rina",
                  "Sadachbia",
                  "Sadaltager",
                  "Sami",
                  "Schedar",
                  "Sola",
                  "Sulafat",
                  "Tari",
                  "Tavi",
                  "Tova",
                  "Umbriel",
                  "Varo",
                  "Veda",
                  "Vindemiatrix",
                  "Zali",
                  "Zeno",
                  "Zephyr",
                  "Zubenelgenubi",
                  "Zuri"
                ],
                "enum_known": true,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "",
                "default_known": true,
                "enum": [
                  "",
                  "wav",
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "audio"
                ],
                "enum_known": true,
                "name": "stream_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "SSE",
              "mp3/opus/aac/flac/pcm requestedtranscoding"
            ]
          },
          "hints": [
            "Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id aktual yang dikembalikan atau catatan pustaka media",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "audio"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 8192,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"gemini-3.8-flash-lite-tts\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.wav\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.5,
        "input": [
          "text"
        ],
        "label": "Sintesis ucapan",
        "max_out": 16384,
        "max_tool_calls": null,
        "out": 6,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.5,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 6,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              },
              {
                "amount": 0.125,
                "amount_unit": "usd_per_million_tokens",
                "key": "cache_read",
                "label": "Cache read",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.8-flash-lite-tts",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "gemini-3.8-flash-lite-tts",
        "request_model_id": "gemini-3.8-flash-lite-tts",
        "route_label": "Core"
      }
    ],
    "name": "Gemini 3.8 Flash Lite Tts",
    "price": {
      "in": 0.5,
      "in_label": null,
      "out": 6,
      "out_label": null,
      "sort_in": 0.5,
      "sort_out": 6,
      "varies": false
    },
    "short": "Model ucapan Google untuk pembacaan teks massal, giliran bicara berurutan, dan skenario suara dalam 101 bahasa."
  },
  "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": "Model ucapan Google untuk pembacaan teks massal, giliran bicara berurutan, dan skenario suara dalam 101 bahasa.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "a3a1f0ff784764e70ae4dd1a58ff3ee6aaed30b31c60b5269d342b213ba5743a",
    "renderer_sha256": "2a0471475a29000c23db326ca1e315df73dee7524f6bc2907818ee3458813f2d"
  },
  "sourceRevision": "551841a7a27de31c3a86cd87383f7f5c72cc53be2ae28c96c46485e14f528c05"
}
