{
  "aboutHtml": "<p>Flux TTS ialah keluarga teks ke pertuturan Deepgram untuk perbualan langsung dan kandungan pertuturan tetap. Ciri utamanya ialah kesinambungan perbualan: model penstriman mengekalkan prosodi merentas giliran, supaya penyampaian dapat mengekalkan nada yang konsisten apabila interaksi berterusan. Ia menerima teks bertulis dan mengembalikan audio pertuturan. Flux TTS dan model pengecaman pertuturan bernama Flux yang berasingan menjalankan bahagian yang berbeza dalam perbualan suara.</p><h4>Pilih suara bahasa Inggeris</h4><p>Katalog Flux yang didokumenkan bertutur dalam bahasa Inggeris, dengan loghat Amerika, British, Ireland, Australia, India, Singapura dan Filipina. Penerangan suara membantu memilih penutur untuk khidmat pelanggan, menu telefon, narasi atau perbualan santai. Contohnya, pengeluar menyenaraikan Haley sebagai suara Amerika yang tenang dan Jack sebagai suara British yang profesional. Pilih suara berdasarkan khalayak dan jenis teks yang akan dibacanya, kemudian kekalkannya sepanjang karya atau perbualan. Pertuturan bahasa lain memerlukan pilihan model yang didokumenkan secara berasingan.</p><h4>Giliran langsung dan sampukan</h4><p>Dalam aliran kerja penstriman pengeluar, teks boleh tiba semasa aplikasi menggubah respons dan audio dikembalikan secara beransur-ansur. Sesuatu giliran mempunyai peristiwa mula dan selesai sendiri; menamatkan giliran menyelesaikan sintesis yang masih berbaki. Konteks merentas giliran mengekalkan prosodi dalam sesi tersebut. Ini berguna untuk pembantu pertuturan yang mula-mula menerangkan pilihan kemudian menjawab permintaan penjelasan tanpa mengubah perwatakan suaranya.</p><p>Sampukan membatalkan giliran aktif dan mengembalikan bahagian yang telah dituturkan serta teks yang masih berbaki. Perbezaan itu membantu aplikasi meneruskan daripada perkara yang benar-benar didengar oleh pendengar. Untuk interaksi praktikal, sediakan jawapan ringkas dengan arahan penting dahulu, diikuti penerangan. Jika pendengar menyampuk selepas arahan pertama itu, respons seterusnya boleh menangani soalan baharu dan bukannya menganggap seluruh penerangan telah disampaikan.</p><h4>Audio tetap dan format output</h4><p>Sintesis kelompok menerima satu blok teks lengkap dan mengembalikan audionya dalam satu respons. Ia menggunakan katalog suara yang sama seperti penstriman dan sesuai untuk arahan telefon yang dirakam, pemberitahuan atau narasi yang disediakan lebih awal. Permintaan kelompok adalah bebas antara satu sama lain; keadaan giliran penstriman dan peristiwa sampukan tidak terpakai pada klip tetap.</p><p>Output penstriman ialah audio mentah tanpa bekas fail: PCM 16 bit, mu-law atau A-law. Pengeluar mendokumenkan kadar pensampelan PCM 8, 16, 24, 32, 44.1 dan 48 kHz; mu-law dan A-law menggunakan 8 atau 16 kHz. Output kelompok turut menyokong MP3, Opus, FLAC dan AAC. Pilih pengekodan dan bekas yang boleh ditafsirkan oleh pemain atau saluran telefon sasaran dan bukannya menganggap aliran sampel mentah sebagai fail audio biasa.</p><h4>Kawalan penyampaian dan batasan</h4><p>Pengeluar mendokumenkan julat kadar pertuturan 0.5 hingga 1.5 dengan kenaikan 0.05. Perubahan kelajuan penstriman berkuat kuasa pada sempadan segmen. Kawalan ekspresiviti beta yang berasingan mengubah penyampaian daripada tenang kepada penuh semangat. SSML biasa dan tag pesaing yang dikenali dibuang dan bukannya digunakan sebagai arahan ekspresif; kawalan natif Flux mempunyai maknanya sendiri.</p><p>Jeda sebaris adalah untuk sintesis kelompok, dengan tempoh 500–3,000 ms dalam kenaikan 100 ms dan paling banyak lapan penanda bagi setiap permintaan. Teks mesti memisahkan jeda yang bersebelahan, dan kelajuan dihadkan kepada 1.15 apabila jeda digunakan. Penggantian sebutan menggunakan IPA dan berada dalam Early Access; pengeluar menyatakan bahawa sebutan yang diminta boleh berbeza antara penjanaan. Sebutan tidak boleh digabungkan dengan kelajuan bukan lalai atau dengan kawalan jeda. Untuk skrip yang mengandungi nama khusus, dengar istilah tersebut dengan suara pilihan dan nyatakan perkataan yang perlu dituturkan dengan jelas.</p><p>Sesi penstriman yang didokumenkan oleh Deepgram berlangsung sehingga satu jam dan ditutup selepas enam puluh saat tanpa mesej masuk melainkan dikekalkan aktif melalui mekanisme sambungan yang disokong. Had sesi itu berkaitan dengan aliran kerja sintesis langsung. Hasil yang berguna ialah suara yang dipilih dengan tujuan jelas, teks yang mesra pendengar dan audio yang sesuai untuk destinasinya, dengan aplikasi langsung menjejaki perkara yang benar-benar dituturkan apabila sesuatu giliran disampuk.</p>",
  "aboutText": "Flux TTS ialah keluarga teks ke pertuturan Deepgram untuk perbualan langsung dan kandungan pertuturan tetap. Ciri utamanya ialah kesinambungan perbualan: model penstriman mengekalkan prosodi merentas giliran, supaya penyampaian dapat mengekalkan nada yang konsisten apabila interaksi berterusan. Ia menerima teks bertulis dan mengembalikan audio pertuturan. Flux TTS dan model pengecaman pertuturan bernama Flux yang berasingan menjalankan bahagian yang berbeza dalam perbualan suara.\n\n### Pilih suara bahasa Inggeris\n\nKatalog Flux yang didokumenkan bertutur dalam bahasa Inggeris, dengan loghat Amerika, British, Ireland, Australia, India, Singapura dan Filipina. Penerangan suara membantu memilih penutur untuk khidmat pelanggan, menu telefon, narasi atau perbualan santai. Contohnya, pengeluar menyenaraikan Haley sebagai suara Amerika yang tenang dan Jack sebagai suara British yang profesional. Pilih suara berdasarkan khalayak dan jenis teks yang akan dibacanya, kemudian kekalkannya sepanjang karya atau perbualan. Pertuturan bahasa lain memerlukan pilihan model yang didokumenkan secara berasingan.\n\n### Giliran langsung dan sampukan\n\nDalam aliran kerja penstriman pengeluar, teks boleh tiba semasa aplikasi menggubah respons dan audio dikembalikan secara beransur-ansur. Sesuatu giliran mempunyai peristiwa mula dan selesai sendiri; menamatkan giliran menyelesaikan sintesis yang masih berbaki. Konteks merentas giliran mengekalkan prosodi dalam sesi tersebut. Ini berguna untuk pembantu pertuturan yang mula-mula menerangkan pilihan kemudian menjawab permintaan penjelasan tanpa mengubah perwatakan suaranya.\n\nSampukan membatalkan giliran aktif dan mengembalikan bahagian yang telah dituturkan serta teks yang masih berbaki. Perbezaan itu membantu aplikasi meneruskan daripada perkara yang benar-benar didengar oleh pendengar. Untuk interaksi praktikal, sediakan jawapan ringkas dengan arahan penting dahulu, diikuti penerangan. Jika pendengar menyampuk selepas arahan pertama itu, respons seterusnya boleh menangani soalan baharu dan bukannya menganggap seluruh penerangan telah disampaikan.\n\n### Audio tetap dan format output\n\nSintesis kelompok menerima satu blok teks lengkap dan mengembalikan audionya dalam satu respons. Ia menggunakan katalog suara yang sama seperti penstriman dan sesuai untuk arahan telefon yang dirakam, pemberitahuan atau narasi yang disediakan lebih awal. Permintaan kelompok adalah bebas antara satu sama lain; keadaan giliran penstriman dan peristiwa sampukan tidak terpakai pada klip tetap.\n\nOutput penstriman ialah audio mentah tanpa bekas fail: PCM 16 bit, mu-law atau A-law. Pengeluar mendokumenkan kadar pensampelan PCM 8, 16, 24, 32, 44.1 dan 48 kHz; mu-law dan A-law menggunakan 8 atau 16 kHz. Output kelompok turut menyokong MP3, Opus, FLAC dan AAC. Pilih pengekodan dan bekas yang boleh ditafsirkan oleh pemain atau saluran telefon sasaran dan bukannya menganggap aliran sampel mentah sebagai fail audio biasa.\n\n### Kawalan penyampaian dan batasan\n\nPengeluar mendokumenkan julat kadar pertuturan 0.5 hingga 1.5 dengan kenaikan 0.05. Perubahan kelajuan penstriman berkuat kuasa pada sempadan segmen. Kawalan ekspresiviti beta yang berasingan mengubah penyampaian daripada tenang kepada penuh semangat. SSML biasa dan tag pesaing yang dikenali dibuang dan bukannya digunakan sebagai arahan ekspresif; kawalan natif Flux mempunyai maknanya sendiri.\n\nJeda sebaris adalah untuk sintesis kelompok, dengan tempoh 500–3,000 ms dalam kenaikan 100 ms dan paling banyak lapan penanda bagi setiap permintaan. Teks mesti memisahkan jeda yang bersebelahan, dan kelajuan dihadkan kepada 1.15 apabila jeda digunakan. Penggantian sebutan menggunakan IPA dan berada dalam Early Access; pengeluar menyatakan bahawa sebutan yang diminta boleh berbeza antara penjanaan. Sebutan tidak boleh digabungkan dengan kelajuan bukan lalai atau dengan kawalan jeda. Untuk skrip yang mengandungi nama khusus, dengar istilah tersebut dengan suara pilihan dan nyatakan perkataan yang perlu dituturkan dengan jelas.\n\nSesi penstriman yang didokumenkan oleh Deepgram berlangsung sehingga satu jam dan ditutup selepas enam puluh saat tanpa mesej masuk melainkan dikekalkan aktif melalui mekanisme sambungan yang disokong. Had sesi itu berkaitan dengan aliran kerja sintesis langsung. Hasil yang berguna ialah suara yang dipilih dengan tujuan jelas, teks yang mesra pendengar dan audio yang sesuai untuk destinasinya, dengan aplikasi langsung menjejaki perkara yang benar-benar dituturkan apabila sesuatu giliran disampuk.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "fcf016b586bbc5d902baeb111d4ec34397e9eb5cc6f8f2a4dff400f0e2a00cfe",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ms",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Deepgram: Flux TTS</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Deepgram /</span><code>deepgram/flux-tts</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bahagian kad model\"><button type=\"button\" data-card-jump=\"overview\">Pengenalan</button><button type=\"button\" data-card-jump=\"methods\">Input &amp; kaedah</button><button type=\"button\" data-card-jump=\"pricing\">Pelan harga</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=\"Kaedah 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|speech|/v1/audio/speech|deepgram%2Fflux-tts\">Penjanaan suara</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\">Pengenalan</h3><p class=\"mdesc-full\">Deepgram Flux TTS menukar teks bahasa Inggeris kepada pertuturan perbualan dengan nada yang dikekalkan merentas giliran. Mod penstrimannya mengendalikan sampukan; sintesis kelompok menghasilkan audio yang boleh digunakan semula dengan katalog suara yang sama.</p><dl class=\"card-io\" data-card-io><div><dt>Input 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>Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>Flux TTS ialah keluarga teks ke pertuturan Deepgram untuk perbualan langsung dan kandungan pertuturan tetap. Ciri utamanya ialah kesinambungan perbualan: model penstriman mengekalkan prosodi merentas giliran, supaya penyampaian dapat mengekalkan nada yang konsisten apabila interaksi berterusan. Ia menerima teks bertulis dan mengembalikan audio pertuturan. Flux TTS dan model pengecaman pertuturan bernama Flux yang berasingan menjalankan bahagian yang berbeza dalam perbualan suara.</p><h4>Pilih suara bahasa Inggeris</h4><p>Katalog Flux yang didokumenkan bertutur dalam bahasa Inggeris, dengan loghat Amerika, British, Ireland, Australia, India, Singapura dan Filipina. Penerangan suara membantu memilih penutur untuk khidmat pelanggan, menu telefon, narasi atau perbualan santai. Contohnya, pengeluar menyenaraikan Haley sebagai suara Amerika yang tenang dan Jack sebagai suara British yang profesional. Pilih suara berdasarkan khalayak dan jenis teks yang akan dibacanya, kemudian kekalkannya sepanjang karya atau perbualan. Pertuturan bahasa lain memerlukan pilihan model yang didokumenkan secara berasingan.</p><h4>Giliran langsung dan sampukan</h4><p>Dalam aliran kerja penstriman pengeluar, teks boleh tiba semasa aplikasi menggubah respons dan audio dikembalikan secara beransur-ansur. Sesuatu giliran mempunyai peristiwa mula dan selesai sendiri; menamatkan giliran menyelesaikan sintesis yang masih berbaki. Konteks merentas giliran mengekalkan prosodi dalam sesi tersebut. Ini berguna untuk pembantu pertuturan yang mula-mula menerangkan pilihan kemudian menjawab permintaan penjelasan tanpa mengubah perwatakan suaranya.</p><p>Sampukan membatalkan giliran aktif dan mengembalikan bahagian yang telah dituturkan serta teks yang masih berbaki. Perbezaan itu membantu aplikasi meneruskan daripada perkara yang benar-benar didengar oleh pendengar. Untuk interaksi praktikal, sediakan jawapan ringkas dengan arahan penting dahulu, diikuti penerangan. Jika pendengar menyampuk selepas arahan pertama itu, respons seterusnya boleh menangani soalan baharu dan bukannya menganggap seluruh penerangan telah disampaikan.</p><h4>Audio tetap dan format output</h4><p>Sintesis kelompok menerima satu blok teks lengkap dan mengembalikan audionya dalam satu respons. Ia menggunakan katalog suara yang sama seperti penstriman dan sesuai untuk arahan telefon yang dirakam, pemberitahuan atau narasi yang disediakan lebih awal. Permintaan kelompok adalah bebas antara satu sama lain; keadaan giliran penstriman dan peristiwa sampukan tidak terpakai pada klip tetap.</p><p>Output penstriman ialah audio mentah tanpa bekas fail: PCM 16 bit, mu-law atau A-law. Pengeluar mendokumenkan kadar pensampelan PCM 8, 16, 24, 32, 44.1 dan 48 kHz; mu-law dan A-law menggunakan 8 atau 16 kHz. Output kelompok turut menyokong MP3, Opus, FLAC dan AAC. Pilih pengekodan dan bekas yang boleh ditafsirkan oleh pemain atau saluran telefon sasaran dan bukannya menganggap aliran sampel mentah sebagai fail audio biasa.</p><h4>Kawalan penyampaian dan batasan</h4><p>Pengeluar mendokumenkan julat kadar pertuturan 0.5 hingga 1.5 dengan kenaikan 0.05. Perubahan kelajuan penstriman berkuat kuasa pada sempadan segmen. Kawalan ekspresiviti beta yang berasingan mengubah penyampaian daripada tenang kepada penuh semangat. SSML biasa dan tag pesaing yang dikenali dibuang dan bukannya digunakan sebagai arahan ekspresif; kawalan natif Flux mempunyai maknanya sendiri.</p><p>Jeda sebaris adalah untuk sintesis kelompok, dengan tempoh 500–3,000 ms dalam kenaikan 100 ms dan paling banyak lapan penanda bagi setiap permintaan. Teks mesti memisahkan jeda yang bersebelahan, dan kelajuan dihadkan kepada 1.15 apabila jeda digunakan. Penggantian sebutan menggunakan IPA dan berada dalam Early Access; pengeluar menyatakan bahawa sebutan yang diminta boleh berbeza antara penjanaan. Sebutan tidak boleh digabungkan dengan kelajuan bukan lalai atau dengan kawalan jeda. Untuk skrip yang mengandungi nama khusus, dengar istilah tersebut dengan suara pilihan dan nyatakan perkataan yang perlu dituturkan dengan jelas.</p><p>Sesi penstriman yang didokumenkan oleh Deepgram berlangsung sehingga satu jam dan ditutup selepas enam puluh saat tanpa mesej masuk melainkan dikekalkan aktif melalui mekanisme sambungan yang disokong. Had sesi itu berkaitan dengan aliran kerja sintesis langsung. Hasil yang berguna ialah suara yang dipilih dengan tujuan jelas, teks yang mesra pendengar dan audio yang sesuai untuk destinasinya, dengan aplikasi langsung menjejaki perkara yang benar-benar dituturkan apabila sesuatu giliran disampuk.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · input &amp; kaedah</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Penjanaan suara</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Input</dt><dd><code>text</code></dd></div><div><dt>Output</dt><dd><code>audio</code></dd></div><div><dt>Format output</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Medan</th><th>Jenis</th><th>Keperluan</th><th>Nilai &amp; had</th><th>Lalai</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</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=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>deepgram/flux-tts</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</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=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Panjang minimum: 1</div><div>Unit: aksara Unicode</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</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=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>flux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</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=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>mp3</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Gabungan bahan input</summary><p class=\"note-s\"><b>text_to_speech</b> · Diperlukan: input</p></details><details class=\"note-s\" data-method-contract><summary>Parameter kaedah dan kitar hayat</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, voice, response_format</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>voice_ids</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>flux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>response_format</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>mp3</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_characters</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>other_options</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>teks UTF-8 tepat; kiraan aksara Unicode tanpa penormalan</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>text</td></tr></tbody></table></div><p>Kitar hayat: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id sebenar yang dikembalikan atau rekod 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\">Pilih suara yang tepat daripada profil model ini.</p><p class=\"note-s\">Aksara input dan saat audio ialah ukuran penggunaan yang berbeza.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.</p><dl data-price-conditions><dt>Mod pantas</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod pantas dipilih</span></dd><dt>Mod flex</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod flex dipilih</span></dd><dt>Usaha penaakulan maksimum</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila usaha penaakulan maksimum menggunakan pelarasan default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Kadar Ailoot</h4><h4>Harga mengikut konfigurasi</h4><p class=\"note-s\">Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadual kadar</th><th>Unit pengebilan</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Kadar asas token</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>Kadar asas</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Token input</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token output</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Bacaan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · 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>aksara input</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap aksara masukan</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · aksara input</span> <b>$0.00009</b> <span class=\"price-unit\">bagi setiap aksara masukan</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Butiran tarif rujukan</h4><p class=\"note-s\">Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Deepgram: Flux TTS</summary><h4>Harga mengikut konfigurasi</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Syarat pengebilan</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Deepgram: Flux TTS · Konfigurasi lalai</th><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>Konfigurasi lalai</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Aksara input</span> <b>USD 0.00009</b> <span class=\"price-unit\">bagi setiap aksara masukan</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. <a href=\"/docs/ms/billing/reserve/\">Cara rizab dan penyelesaian caj berfungsi →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Penjanaan suara</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1198-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1198-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-1198-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1198-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;deepgram/flux-tts&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;flux-alexis-en&quot;, &quot;flux-bree-en&quot;, &quot;flux-brittany-en&quot;, &quot;flux-brooke-en&quot;, &quot;flux-bruce-en&quot;, &quot;flux-cliff-en&quot;, &quot;flux-cole-en&quot;, &quot;flux-colin-en&quot;, &quot;flux-conor-en&quot;, &quot;flux-donovan-en&quot;, &quot;flux-drew-en&quot;, &quot;flux-elise-en&quot;, &quot;flux-gemma-en&quot;, &quot;flux-haley-en&quot;, &quot;flux-hannah-en&quot;, &quot;flux-heather-en&quot;, &quot;flux-jack-en&quot;, &quot;flux-kai-en&quot;, &quot;flux-kelsey-en&quot;, &quot;flux-kit-en&quot;, &quot;flux-maeve-en&quot;, &quot;flux-marcelo-en&quot;, &quot;flux-marcus-en&quot;, &quot;flux-meena-en&quot;, &quot;flux-meghan-en&quot;, &quot;flux-miles-en&quot;, &quot;flux-naveen-en&quot;, &quot;flux-paige-en&quot;, &quot;flux-priya-en&quot;, &quot;flux-rufus-en&quot;, &quot;flux-sean-en&quot;, &quot;flux-sharon-en&quot;, &quot;flux-sienna-en&quot;, &quot;flux-tanner-en&quot;, &quot;flux-wade-en&quot;, &quot;flux-wes-en&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\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.mp3\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 · Penjanaan suara</h4><p class=\"note-s\">mp3</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><details class=\"card-about\"><summary>Pembacaan kandungan lain</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1199-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1199-panel-0\" aria-selected=\"true\" tabindex=\"0\">Pustaka media</button><button class=\"cg-tab\" id=\"model-code-1199-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1199-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Status tugas</button><button class=\"cg-tab\" id=\"model-code-1199-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1199-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Butiran aset</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-1199-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1199-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1199-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1199-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1199-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1199-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.</p><p class=\"note-s\">Simpan hasil binari dan pengepala yang lengkap. Jika JSON atau berbilang output dikembalikan, simpan setiap item data dan dapatkan setiap URL aset bertandatangan yang sebenar.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asal perlu disemak</h5><p class=\"note-s\">Simpan operation_id/X-Client-Request-ID asal untuk penyelarasan rekod tanpa penghantaran semula; tiada laluan khusus untuk meninjau status audio.</p></div><details class=\"card-about\" data-output-fields><summary>Medan respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Medan</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">binary 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=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ralat dan langkah seterusnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Syarat</th><th>Langkah seterusnya</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=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Medan wajib, perwakilan bahan atau nilai parameter tidak sah</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.</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=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Respons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Simpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.</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=deepgram%2Fflux-tts&amp;route=Ultra&amp;caller=deepgram%2Fflux-tts&amp;fmt=speech\"><code>deepgram/flux-tts</code></a></span></p><h4>Alias laluan kaedah</h4><p class=\"note-s\">Gunakan laluan kaedah yang dipaparkan di atas.</p><h4>ID pemanggil berkaitan</h4><p class=\"note-s\"><a href=\"#m=deepgram%2Fflux-tts&amp;route=Ultra&amp;caller=deepgram%2Fflux-tts&amp;fmt=speech\"><code>deepgram/flux-tts</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "deepgram/flux-tts",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "deepgram/flux-tts",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|deepgram%2Fflux-tts",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Respons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan",
                "http_status": null,
                "recovery": "Simpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.",
                "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 asal untuk penyelarasan rekod tanpa penghantaran semula; tiada laluan khusus untuk meninjau status 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": "Simpan hasil binari dan pengepala yang lengkap. Jika JSON atau berbilang output dikembalikan, simpan setiap item data dan dapatkan setiap URL aset bertandatangan yang sebenar.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "deepgram/flux-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "aksara Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "flux-alexis-en",
                  "flux-bree-en",
                  "flux-brittany-en",
                  "flux-brooke-en",
                  "flux-bruce-en",
                  "flux-cliff-en",
                  "flux-cole-en",
                  "flux-colin-en",
                  "flux-conor-en",
                  "flux-donovan-en",
                  "flux-drew-en",
                  "flux-elise-en",
                  "flux-gemma-en",
                  "flux-haley-en",
                  "flux-hannah-en",
                  "flux-heather-en",
                  "flux-jack-en",
                  "flux-kai-en",
                  "flux-kelsey-en",
                  "flux-kit-en",
                  "flux-maeve-en",
                  "flux-marcelo-en",
                  "flux-marcus-en",
                  "flux-meena-en",
                  "flux-meghan-en",
                  "flux-miles-en",
                  "flux-naveen-en",
                  "flux-paige-en",
                  "flux-priya-en",
                  "flux-rufus-en",
                  "flux-sean-en",
                  "flux-sharon-en",
                  "flux-sienna-en",
                  "flux-tanner-en",
                  "flux-wade-en",
                  "flux-wes-en"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Pilih suara yang tepat daripada profil model ini.",
            "Aksara input dan saat audio ialah ukuran penggunaan yang berbeza."
          ],
          "input": {
            "content_type": "application/json",
            "input": "teks UTF-8 tepat; kiraan aksara Unicode tanpa penormalan",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "flux-alexis-en",
              "flux-bree-en",
              "flux-brittany-en",
              "flux-brooke-en",
              "flux-bruce-en",
              "flux-cliff-en",
              "flux-cole-en",
              "flux-colin-en",
              "flux-conor-en",
              "flux-donovan-en",
              "flux-drew-en",
              "flux-elise-en",
              "flux-gemma-en",
              "flux-haley-en",
              "flux-hannah-en",
              "flux-heather-en",
              "flux-jack-en",
              "flux-kai-en",
              "flux-kelsey-en",
              "flux-kit-en",
              "flux-maeve-en",
              "flux-marcelo-en",
              "flux-marcus-en",
              "flux-meena-en",
              "flux-meghan-en",
              "flux-miles-en",
              "flux-naveen-en",
              "flux-paige-en",
              "flux-priya-en",
              "flux-rufus-en",
              "flux-sean-en",
              "flux-sharon-en",
              "flux-sienna-en",
              "flux-tanner-en",
              "flux-wade-en",
              "flux-wes-en"
            ]
          },
          "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 sebenar yang dikembalikan atau rekod 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."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00009",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00009",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "e22bd17cd01d6df3f6fa",
            "label": "Deepgram: Flux TTS",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Konfigurasi lalai"
                },
                "label": "Deepgram: Flux TTS · Konfigurasi lalai",
                "units": [
                  {
                    "amount": "0.000090",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "6972212d8526f21493ca93b5",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"deepgram/flux-tts\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"flux-alexis-en\", \"flux-bree-en\", \"flux-brittany-en\", \"flux-brooke-en\", \"flux-bruce-en\", \"flux-cliff-en\", \"flux-cole-en\", \"flux-colin-en\", \"flux-conor-en\", \"flux-donovan-en\", \"flux-drew-en\", \"flux-elise-en\", \"flux-gemma-en\", \"flux-haley-en\", \"flux-hannah-en\", \"flux-heather-en\", \"flux-jack-en\", \"flux-kai-en\", \"flux-kelsey-en\", \"flux-kit-en\", \"flux-maeve-en\", \"flux-marcelo-en\", \"flux-marcus-en\", \"flux-meena-en\", \"flux-meghan-en\", \"flux-miles-en\", \"flux-naveen-en\", \"flux-paige-en\", \"flux-priya-en\", \"flux-rufus-en\", \"flux-sean-en\", \"flux-sharon-en\", \"flux-sienna-en\", \"flux-tanner-en\", \"flux-wade-en\", \"flux-wes-en\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\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.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 9e-05
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00009",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00009",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "deepgram/flux-tts",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.00009",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00009",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    }
  ],
  "model_id": "deepgram/flux-tts",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "3a487154de0c7fe27b298125d71f13bda8a7aeaa9a46ea64f23701575263a8a4",
    "input_html_sha256": "6ea83de0abe24dbc4f0b6bbc9fef69bd6f7c7635f031e5fcdd532efd893d25bc",
    "private_audit_sha256": "255746e78057258c0ad41f0d205bdf3d90e98b7edb79b8b8a459314aa5c30375",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ms/deepgram-flux-tts/",
    "description": "Deepgram Flux TTS menukar teks bahasa Inggeris kepada pertuturan perbualan dengan nada yang dikekalkan merentas giliran. Mod penstrimannya mengendalikan sampukan; sintesis kelompok menghasilkan audio yang boleh digunakan semula dengan katalog suara yang sama.",
    "locale": "ms",
    "md_url": "https://ailoot.ai/models/ms/deepgram-flux-tts/index.md",
    "title": "Deepgram: Flux TTS — Ailoot",
    "url": "https://ailoot.ai/models/ms/deepgram-flux-tts/"
  },
  "rawModel": {
    "about": "Flux TTS ialah keluarga teks ke pertuturan Deepgram untuk perbualan langsung dan kandungan pertuturan tetap. Ciri utamanya ialah kesinambungan perbualan: model penstriman mengekalkan prosodi merentas giliran, supaya penyampaian dapat mengekalkan nada yang konsisten apabila interaksi berterusan. Ia menerima teks bertulis dan mengembalikan audio pertuturan. Flux TTS dan model pengecaman pertuturan bernama Flux yang berasingan menjalankan bahagian yang berbeza dalam perbualan suara.\n\n### Pilih suara bahasa Inggeris\n\nKatalog Flux yang didokumenkan bertutur dalam bahasa Inggeris, dengan loghat Amerika, British, Ireland, Australia, India, Singapura dan Filipina. Penerangan suara membantu memilih penutur untuk khidmat pelanggan, menu telefon, narasi atau perbualan santai. Contohnya, pengeluar menyenaraikan Haley sebagai suara Amerika yang tenang dan Jack sebagai suara British yang profesional. Pilih suara berdasarkan khalayak dan jenis teks yang akan dibacanya, kemudian kekalkannya sepanjang karya atau perbualan. Pertuturan bahasa lain memerlukan pilihan model yang didokumenkan secara berasingan.\n\n### Giliran langsung dan sampukan\n\nDalam aliran kerja penstriman pengeluar, teks boleh tiba semasa aplikasi menggubah respons dan audio dikembalikan secara beransur-ansur. Sesuatu giliran mempunyai peristiwa mula dan selesai sendiri; menamatkan giliran menyelesaikan sintesis yang masih berbaki. Konteks merentas giliran mengekalkan prosodi dalam sesi tersebut. Ini berguna untuk pembantu pertuturan yang mula-mula menerangkan pilihan kemudian menjawab permintaan penjelasan tanpa mengubah perwatakan suaranya.\n\nSampukan membatalkan giliran aktif dan mengembalikan bahagian yang telah dituturkan serta teks yang masih berbaki. Perbezaan itu membantu aplikasi meneruskan daripada perkara yang benar-benar didengar oleh pendengar. Untuk interaksi praktikal, sediakan jawapan ringkas dengan arahan penting dahulu, diikuti penerangan. Jika pendengar menyampuk selepas arahan pertama itu, respons seterusnya boleh menangani soalan baharu dan bukannya menganggap seluruh penerangan telah disampaikan.\n\n### Audio tetap dan format output\n\nSintesis kelompok menerima satu blok teks lengkap dan mengembalikan audionya dalam satu respons. Ia menggunakan katalog suara yang sama seperti penstriman dan sesuai untuk arahan telefon yang dirakam, pemberitahuan atau narasi yang disediakan lebih awal. Permintaan kelompok adalah bebas antara satu sama lain; keadaan giliran penstriman dan peristiwa sampukan tidak terpakai pada klip tetap.\n\nOutput penstriman ialah audio mentah tanpa bekas fail: PCM 16 bit, mu-law atau A-law. Pengeluar mendokumenkan kadar pensampelan PCM 8, 16, 24, 32, 44.1 dan 48 kHz; mu-law dan A-law menggunakan 8 atau 16 kHz. Output kelompok turut menyokong MP3, Opus, FLAC dan AAC. Pilih pengekodan dan bekas yang boleh ditafsirkan oleh pemain atau saluran telefon sasaran dan bukannya menganggap aliran sampel mentah sebagai fail audio biasa.\n\n### Kawalan penyampaian dan batasan\n\nPengeluar mendokumenkan julat kadar pertuturan 0.5 hingga 1.5 dengan kenaikan 0.05. Perubahan kelajuan penstriman berkuat kuasa pada sempadan segmen. Kawalan ekspresiviti beta yang berasingan mengubah penyampaian daripada tenang kepada penuh semangat. SSML biasa dan tag pesaing yang dikenali dibuang dan bukannya digunakan sebagai arahan ekspresif; kawalan natif Flux mempunyai maknanya sendiri.\n\nJeda sebaris adalah untuk sintesis kelompok, dengan tempoh 500–3,000 ms dalam kenaikan 100 ms dan paling banyak lapan penanda bagi setiap permintaan. Teks mesti memisahkan jeda yang bersebelahan, dan kelajuan dihadkan kepada 1.15 apabila jeda digunakan. Penggantian sebutan menggunakan IPA dan berada dalam Early Access; pengeluar menyatakan bahawa sebutan yang diminta boleh berbeza antara penjanaan. Sebutan tidak boleh digabungkan dengan kelajuan bukan lalai atau dengan kawalan jeda. Untuk skrip yang mengandungi nama khusus, dengar istilah tersebut dengan suara pilihan dan nyatakan perkataan yang perlu dituturkan dengan jelas.\n\nSesi penstriman yang didokumenkan oleh Deepgram berlangsung sehingga satu jam dan ditutup selepas enam puluh saat tanpa mesej masuk melainkan dikekalkan aktif melalui mekanisme sambungan yang disokong. Had sesi itu berkaitan dengan aliran kerja sintesis langsung. Hasil yang berguna ialah suara yang dipilih dengan tujuan jelas, teks yang mesra pendengar dan audio yang sesuai untuk destinasinya, dengan aplikasi langsung menjejaki perkara yang benar-benar dituturkan apabila sesuatu giliran disampuk.",
    "alias_of": null,
    "aliases": [],
    "author": "Deepgram",
    "available": null,
    "canonical_model": "deepgram/flux-tts",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00009",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00009",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ],
        "summary": "Maklumat lengkap tentang harga konfigurasi terdapat dalam butiran."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "deepgram/flux-tts",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Respons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan",
                "http_status": null,
                "recovery": "Simpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.",
                "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 asal untuk penyelarasan rekod tanpa penghantaran semula; tiada laluan khusus untuk meninjau status 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": "Simpan hasil binari dan pengepala yang lengkap. Jika JSON atau berbilang output dikembalikan, simpan setiap item data dan dapatkan setiap URL aset bertandatangan yang sebenar.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "deepgram/flux-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "aksara Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "flux-alexis-en",
                  "flux-bree-en",
                  "flux-brittany-en",
                  "flux-brooke-en",
                  "flux-bruce-en",
                  "flux-cliff-en",
                  "flux-cole-en",
                  "flux-colin-en",
                  "flux-conor-en",
                  "flux-donovan-en",
                  "flux-drew-en",
                  "flux-elise-en",
                  "flux-gemma-en",
                  "flux-haley-en",
                  "flux-hannah-en",
                  "flux-heather-en",
                  "flux-jack-en",
                  "flux-kai-en",
                  "flux-kelsey-en",
                  "flux-kit-en",
                  "flux-maeve-en",
                  "flux-marcelo-en",
                  "flux-marcus-en",
                  "flux-meena-en",
                  "flux-meghan-en",
                  "flux-miles-en",
                  "flux-naveen-en",
                  "flux-paige-en",
                  "flux-priya-en",
                  "flux-rufus-en",
                  "flux-sean-en",
                  "flux-sharon-en",
                  "flux-sienna-en",
                  "flux-tanner-en",
                  "flux-wade-en",
                  "flux-wes-en"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Pilih suara yang tepat daripada profil model ini.",
            "Aksara input dan saat audio ialah ukuran penggunaan yang berbeza."
          ],
          "input": {
            "content_type": "application/json",
            "input": "teks UTF-8 tepat; kiraan aksara Unicode tanpa penormalan",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "flux-alexis-en",
              "flux-bree-en",
              "flux-brittany-en",
              "flux-brooke-en",
              "flux-bruce-en",
              "flux-cliff-en",
              "flux-cole-en",
              "flux-colin-en",
              "flux-conor-en",
              "flux-donovan-en",
              "flux-drew-en",
              "flux-elise-en",
              "flux-gemma-en",
              "flux-haley-en",
              "flux-hannah-en",
              "flux-heather-en",
              "flux-jack-en",
              "flux-kai-en",
              "flux-kelsey-en",
              "flux-kit-en",
              "flux-maeve-en",
              "flux-marcelo-en",
              "flux-marcus-en",
              "flux-meena-en",
              "flux-meghan-en",
              "flux-miles-en",
              "flux-naveen-en",
              "flux-paige-en",
              "flux-priya-en",
              "flux-rufus-en",
              "flux-sean-en",
              "flux-sharon-en",
              "flux-sienna-en",
              "flux-tanner-en",
              "flux-wade-en",
              "flux-wes-en"
            ]
          },
          "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 sebenar yang dikembalikan atau rekod 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."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00009",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00009",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "e22bd17cd01d6df3f6fa",
            "label": "Deepgram: Flux TTS",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Konfigurasi lalai"
                },
                "label": "Deepgram: Flux TTS · Konfigurasi lalai",
                "units": [
                  {
                    "amount": "0.000090",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "6972212d8526f21493ca93b5",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"deepgram/flux-tts\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"flux-alexis-en\", \"flux-bree-en\", \"flux-brittany-en\", \"flux-brooke-en\", \"flux-bruce-en\", \"flux-cliff-en\", \"flux-cole-en\", \"flux-colin-en\", \"flux-conor-en\", \"flux-donovan-en\", \"flux-drew-en\", \"flux-elise-en\", \"flux-gemma-en\", \"flux-haley-en\", \"flux-hannah-en\", \"flux-heather-en\", \"flux-jack-en\", \"flux-kai-en\", \"flux-kelsey-en\", \"flux-kit-en\", \"flux-maeve-en\", \"flux-marcelo-en\", \"flux-marcus-en\", \"flux-meena-en\", \"flux-meghan-en\", \"flux-miles-en\", \"flux-naveen-en\", \"flux-paige-en\", \"flux-priya-en\", \"flux-rufus-en\", \"flux-sean-en\", \"flux-sharon-en\", \"flux-sienna-en\", \"flux-tanner-en\", \"flux-wade-en\", \"flux-wes-en\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\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.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 9e-05
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00009",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00009",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "deepgram/flux-tts",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.00009",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00009",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "deepgram/flux-tts",
        "request_model_id": "deepgram/flux-tts",
        "route_label": "Ultra"
      }
    ],
    "name": "Deepgram: Flux TTS",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000090",
            "amount_unit": "usd_per_declared_unit",
            "conditions": {},
            "key": "prompt",
            "label": "prompt",
            "quantity": "1",
            "rate_role": "typed_active_maker_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "deepgram/flux-tts",
    "short": "Deepgram Flux TTS menukar teks bahasa Inggeris kepada pertuturan perbualan dengan nada yang dikekalkan merentas giliran. Mod penstrimannya mengendalikan sampukan; sintesis kelompok menghasilkan audio yang boleh digunakan semula dengan katalog suara yang sama."
  },
  "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": "Deepgram Flux TTS menukar teks bahasa Inggeris kepada pertuturan perbualan dengan nada yang dikekalkan merentas giliran. Mod penstrimannya mengendalikan sampukan; sintesis kelompok menghasilkan audio yang boleh digunakan semula dengan katalog suara yang sama.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "779a4b8328c5929430217f352b7f1f616ae8438876084425b048d35d44d7df23",
    "renderer_sha256": "1dab5ba62521e9568c8b7c82005622cabbf330a075df7cce1f83274a04009460"
  },
  "sourceRevision": "f9bf336bd6de0b8f8a601ff141dc51f6038fd079aca692ecd2258270e6bce913"
}
