{
  "aboutHtml": "<h4>Ujaran untuk proses suara</h4><p>Speech 2.6 Turbo ialah varian sintesis pertuturan yang menumpukan kelajuan. Pengeluar menerangkannya untuk pembantu suara dan senario interaktif yang menukarkan teks kepada respons secara beransur-ansur. Model mengekalkan intonasi semula jadi generasi Speech 2.6 dan boleh memproses bentuk tulisan khusus.</p><h4>Teks yang perlu disebut dengan betul</h4><p>Model direka untuk membaca tarikh, nombor telefon, amaun wang, alamat halaman dan e-mel tanpa setiap bentuk tulisan ditulis semula secara manual terlebih dahulu. Analisis sebegini berguna dalam mesej dinamik yang mengandungi nombor dan label bersama perkataan biasa. Pengeluar menerangkan pemprosesan format ini dalam beberapa bahasa.</p><h4>Kelancaran dan kawalan emosi</h4><p>Speech 2.6 menyokong Fluent LoRA: pengekalan warna suara yang mudah dikenali dengan penyampaian teks yang lebih lancar. Keupayaan ini merujuk kepada penggunaan suara yang telah disediakan; penyediaan klon berasingan bukan sebahagian daripada permintaan teks biasa. Keluarga ini merangkumi <strong>40 bahasa</strong>, termasuk bahasa Rusia.</p><p>Turbo menyediakan tujuh emosi asas serta mod tambahan <code>fluent</code> dan <code>whisper</code>. Model boleh memilih warna emosi sendiri berdasarkan kandungan atau menggunakan keadaan yang ditetapkan. Kedalaman dan tempo bunyi boleh diubah secara bebas daripada teks.</p><h4>Suara, jeda dan sebutan</h4><p>MiniMax menyediakan pemilihan suara dan kawalan tempo, kelantangan serta pic suara. Kelajuan ditetapkan dalam julat <strong>0,5–2</strong>, kelantangan melebihi 0 dan sehingga <strong>10</strong>, manakala perubahan pic suara dari <strong>−12 hingga 12</strong>. Emosi boleh dibiarkan kepada model berdasarkan makna teks atau dinyatakan secara manual: kegembiraan, kesedihan, kemarahan, ketakutan, rasa jijik, kejutan atau ketenangan.</p><p>Sebutan boleh diperincikan melalui kamus penggantian dan notasi fonetik; abjad fonetik antarabangsa, pinyin Cina dan variasi bacaan Jepun disediakan. Jeda ditetapkan antara bahagian yang disebut dalam julat <strong>0,01–99,99 saat</strong>. Tempoh jeda ditetapkan dengan ketepatan dua tempat perpuluhan; penanda diletakkan antara bahagian yang disebut dan tidak diletakkan berturut-turut. Tetapan sebegini membolehkan bunyi nama, singkatan dan perkataan dengan beberapa kemungkinan bacaan diselaraskan dengan tujuan penyampaian suara.</p><h4>Mendapatkan audio</h4><p>Sintesis menerima teks kurang daripada <strong>10 000 aksara</strong>. Bagi teks panjang melebihi 3000 aksara, pengeluar mengesyorkan output penstriman; audio siap juga boleh diterima sekali gus. Tetapan sintesis umum merangkumi MP3, PCM, FLAC, WAV, Opus dan varian G.711 μ-law, dalam mono atau stereo; set format yang tersedia bagi permintaan khusus ditentukan melalui kemudahan Ailoot.</p><p>Pada kad Ailoot ini, teks ditukarkan kepada audio pertuturan. Tujuan Turbo berkait dengan kelajuan sintesis, tetapi masa respons tetap tidak dijanjikan di sini; tetapan yang disenaraikan mencerminkan keupayaan pengeluar dan terpakai dalam skop kaedah akses yang tersedia.</p><p>Tetapan audio tambahan merangkumi kadar pensampelan <strong>8, 16, 22,05, 24, 32 dan 44,1 kHz</strong>. Bagi MP3, kadar bit <strong>32, 64, 128 atau 256 kbit/s</strong> disediakan. Warna suara juga boleh diubah dan satu kesan boleh digunakan: gema ruang luas, gema dewan, bunyi telefon atau suara robot. Kesan perubahan suara disokong bagi MP3, WAV dan FLAC apabila audio diterima sekali gus, manakala dalam output penstriman, hanya bagi MP3. Format G.711 μ-law menggunakan kadar 8 kHz. Keupayaan ini merujuk kepada tetapan sintesis MiniMax.</p><p>Pengeluar menyediakan penyegerakan pertuturan dengan teks: cap masa mengikut ayat, perkataan atau perkataan semasa output beransur-ansur. Hasil sebegini membantu menyelaraskan sebutan dengan paparan teks. Keupayaan tambahan ini memerlukan sokongan format respons yang sepadan.</p>",
  "aboutText": "### Ujaran untuk proses suara\n\nSpeech 2.6 Turbo ialah varian sintesis pertuturan yang menumpukan kelajuan. Pengeluar menerangkannya untuk pembantu suara dan senario interaktif yang menukarkan teks kepada respons secara beransur-ansur. Model mengekalkan intonasi semula jadi generasi Speech 2.6 dan boleh memproses bentuk tulisan khusus.\n\n### Teks yang perlu disebut dengan betul\n\nModel direka untuk membaca tarikh, nombor telefon, amaun wang, alamat halaman dan e-mel tanpa setiap bentuk tulisan ditulis semula secara manual terlebih dahulu. Analisis sebegini berguna dalam mesej dinamik yang mengandungi nombor dan label bersama perkataan biasa. Pengeluar menerangkan pemprosesan format ini dalam beberapa bahasa.\n\n### Kelancaran dan kawalan emosi\n\nSpeech 2.6 menyokong Fluent LoRA: pengekalan warna suara yang mudah dikenali dengan penyampaian teks yang lebih lancar. Keupayaan ini merujuk kepada penggunaan suara yang telah disediakan; penyediaan klon berasingan bukan sebahagian daripada permintaan teks biasa. Keluarga ini merangkumi **40 bahasa**, termasuk bahasa Rusia.\n\nTurbo menyediakan tujuh emosi asas serta mod tambahan `fluent` dan `whisper`. Model boleh memilih warna emosi sendiri berdasarkan kandungan atau menggunakan keadaan yang ditetapkan. Kedalaman dan tempo bunyi boleh diubah secara bebas daripada teks.\n\n### Suara, jeda dan sebutan\n\nMiniMax menyediakan pemilihan suara dan kawalan tempo, kelantangan serta pic suara. Kelajuan ditetapkan dalam julat **0,5–2**, kelantangan melebihi 0 dan sehingga **10**, manakala perubahan pic suara dari **−12 hingga 12**. Emosi boleh dibiarkan kepada model berdasarkan makna teks atau dinyatakan secara manual: kegembiraan, kesedihan, kemarahan, ketakutan, rasa jijik, kejutan atau ketenangan.\n\nSebutan boleh diperincikan melalui kamus penggantian dan notasi fonetik; abjad fonetik antarabangsa, pinyin Cina dan variasi bacaan Jepun disediakan. Jeda ditetapkan antara bahagian yang disebut dalam julat **0,01–99,99 saat**. Tempoh jeda ditetapkan dengan ketepatan dua tempat perpuluhan; penanda diletakkan antara bahagian yang disebut dan tidak diletakkan berturut-turut. Tetapan sebegini membolehkan bunyi nama, singkatan dan perkataan dengan beberapa kemungkinan bacaan diselaraskan dengan tujuan penyampaian suara.\n\n### Mendapatkan audio\n\nSintesis menerima teks kurang daripada **10 000 aksara**. Bagi teks panjang melebihi 3000 aksara, pengeluar mengesyorkan output penstriman; audio siap juga boleh diterima sekali gus. Tetapan sintesis umum merangkumi MP3, PCM, FLAC, WAV, Opus dan varian G.711 μ-law, dalam mono atau stereo; set format yang tersedia bagi permintaan khusus ditentukan melalui kemudahan Ailoot.\n\nPada kad Ailoot ini, teks ditukarkan kepada audio pertuturan. Tujuan Turbo berkait dengan kelajuan sintesis, tetapi masa respons tetap tidak dijanjikan di sini; tetapan yang disenaraikan mencerminkan keupayaan pengeluar dan terpakai dalam skop kaedah akses yang tersedia.\n\nTetapan audio tambahan merangkumi kadar pensampelan **8, 16, 22,05, 24, 32 dan 44,1 kHz**. Bagi MP3, kadar bit **32, 64, 128 atau 256 kbit/s** disediakan. Warna suara juga boleh diubah dan satu kesan boleh digunakan: gema ruang luas, gema dewan, bunyi telefon atau suara robot. Kesan perubahan suara disokong bagi MP3, WAV dan FLAC apabila audio diterima sekali gus, manakala dalam output penstriman, hanya bagi MP3. Format G.711 μ-law menggunakan kadar 8 kHz. Keupayaan ini merujuk kepada tetapan sintesis MiniMax.\n\nPengeluar menyediakan penyegerakan pertuturan dengan teks: cap masa mengikut ayat, perkataan atau perkataan semasa output beransur-ansur. Hasil sebegini membantu menyelaraskan sebutan dengan paparan teks. Keupayaan tambahan ini memerlukan sokongan format respons yang sepadan.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "5dd7a48863745991e28f38068ab4f03ba469aaf66a28de88f503ddcae702825b",
    "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\">MM</span><h2 id=\"sheet-title\">speech-2.6-turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>speech-2.6-turbo</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=\"Core|speech|/v1/audio/speech|speech-2.6-turbo\">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\">Speech 2.6 Turbo mensintesis pertuturan berbilang bahasa dan menumpukan kependaman respons yang rendah.</p><dl class=\"card-io\" data-card-io><div><dt>Input yang diterima</dt><dd>Teks</dd></div><div><dt>Hasil</dt><dd>speech</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\"><h4>Ujaran untuk proses suara</h4><p>Speech 2.6 Turbo ialah varian sintesis pertuturan yang menumpukan kelajuan. Pengeluar menerangkannya untuk pembantu suara dan senario interaktif yang menukarkan teks kepada respons secara beransur-ansur. Model mengekalkan intonasi semula jadi generasi Speech 2.6 dan boleh memproses bentuk tulisan khusus.</p><h4>Teks yang perlu disebut dengan betul</h4><p>Model direka untuk membaca tarikh, nombor telefon, amaun wang, alamat halaman dan e-mel tanpa setiap bentuk tulisan ditulis semula secara manual terlebih dahulu. Analisis sebegini berguna dalam mesej dinamik yang mengandungi nombor dan label bersama perkataan biasa. Pengeluar menerangkan pemprosesan format ini dalam beberapa bahasa.</p><h4>Kelancaran dan kawalan emosi</h4><p>Speech 2.6 menyokong Fluent LoRA: pengekalan warna suara yang mudah dikenali dengan penyampaian teks yang lebih lancar. Keupayaan ini merujuk kepada penggunaan suara yang telah disediakan; penyediaan klon berasingan bukan sebahagian daripada permintaan teks biasa. Keluarga ini merangkumi <strong>40 bahasa</strong>, termasuk bahasa Rusia.</p><p>Turbo menyediakan tujuh emosi asas serta mod tambahan <code>fluent</code> dan <code>whisper</code>. Model boleh memilih warna emosi sendiri berdasarkan kandungan atau menggunakan keadaan yang ditetapkan. Kedalaman dan tempo bunyi boleh diubah secara bebas daripada teks.</p><h4>Suara, jeda dan sebutan</h4><p>MiniMax menyediakan pemilihan suara dan kawalan tempo, kelantangan serta pic suara. Kelajuan ditetapkan dalam julat <strong>0,5–2</strong>, kelantangan melebihi 0 dan sehingga <strong>10</strong>, manakala perubahan pic suara dari <strong>−12 hingga 12</strong>. Emosi boleh dibiarkan kepada model berdasarkan makna teks atau dinyatakan secara manual: kegembiraan, kesedihan, kemarahan, ketakutan, rasa jijik, kejutan atau ketenangan.</p><p>Sebutan boleh diperincikan melalui kamus penggantian dan notasi fonetik; abjad fonetik antarabangsa, pinyin Cina dan variasi bacaan Jepun disediakan. Jeda ditetapkan antara bahagian yang disebut dalam julat <strong>0,01–99,99 saat</strong>. Tempoh jeda ditetapkan dengan ketepatan dua tempat perpuluhan; penanda diletakkan antara bahagian yang disebut dan tidak diletakkan berturut-turut. Tetapan sebegini membolehkan bunyi nama, singkatan dan perkataan dengan beberapa kemungkinan bacaan diselaraskan dengan tujuan penyampaian suara.</p><h4>Mendapatkan audio</h4><p>Sintesis menerima teks kurang daripada <strong>10 000 aksara</strong>. Bagi teks panjang melebihi 3000 aksara, pengeluar mengesyorkan output penstriman; audio siap juga boleh diterima sekali gus. Tetapan sintesis umum merangkumi MP3, PCM, FLAC, WAV, Opus dan varian G.711 μ-law, dalam mono atau stereo; set format yang tersedia bagi permintaan khusus ditentukan melalui kemudahan Ailoot.</p><p>Pada kad Ailoot ini, teks ditukarkan kepada audio pertuturan. Tujuan Turbo berkait dengan kelajuan sintesis, tetapi masa respons tetap tidak dijanjikan di sini; tetapan yang disenaraikan mencerminkan keupayaan pengeluar dan terpakai dalam skop kaedah akses yang tersedia.</p><p>Tetapan audio tambahan merangkumi kadar pensampelan <strong>8, 16, 22,05, 24, 32 dan 44,1 kHz</strong>. Bagi MP3, kadar bit <strong>32, 64, 128 atau 256 kbit/s</strong> disediakan. Warna suara juga boleh diubah dan satu kesan boleh digunakan: gema ruang luas, gema dewan, bunyi telefon atau suara robot. Kesan perubahan suara disokong bagi MP3, WAV dan FLAC apabila audio diterima sekali gus, manakala dalam output penstriman, hanya bagi MP3. Format G.711 μ-law menggunakan kadar 8 kHz. Keupayaan ini merujuk kepada tetapan sintesis MiniMax.</p><p>Pengeluar menyediakan penyegerakan pertuturan dengan teks: cap masa mengikut ayat, perkataan atau perkataan semasa output beransur-ansur. Hasil sebegini membantu menyelaraskan sebutan dengan paparan teks. Keupayaan tambahan ini memerlukan sokongan format respons yang sepadan.</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 · 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>speech</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>speech-2.6-turbo</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>Panjang maksimum (tidak termasuk): 10,000</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>Corak: ^[A-Za-z0-9_-]{1,128}$</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>Pilihan</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>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>null</td></tr></tbody></table></div><p>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\">Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><h4>Kadar kaedah Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Penjanaan suara</b><code>POST /v1/audio/speech</code></header><dl><div><dt>Input</dt><dd>USD 60.00 <em>bagi setiap 1 juta aksara</em></dd></div></dl></section><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 · 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-470-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-470-panel-0\" aria-selected=\"true\" tabindex=\"0\">Contoh pertuturan</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-470-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-470-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}&quot;\nexport AILOOT_TEXT_FILE\n: &quot;${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}&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;speech-2.6-turbo&quot;, &quot;input&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=text\nimport re\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nif not re.fullmatch(r&quot;[A-Za-z0-9_-]{1,128}&quot;,voice):raise SystemExit(&quot;Set an actual accepted voice ID&quot;)\np[&quot;voice&quot;]=voice\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 · 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><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=\"Core\"><b>Ailoot</b> <a href=\"#m=speech-2.6-turbo&amp;route=Core&amp;caller=speech-2.6-turbo&amp;fmt=speech\"><code>speech-2.6-turbo</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=speech-2.6-turbo&amp;route=Core&amp;caller=speech-2.6-turbo&amp;fmt=speech\"><code>speech-2.6-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "speech-2.6-turbo",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "speech-2.6-turbo",
        "route_label": "Core"
      },
      "method_key": "Core|speech|/v1/audio/speech|speech-2.6-turbo",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": 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": [
              "MiniMax accepts optionalresponse_formatmp3. Actual voice IDs come from the selected model voice profile.",
              "The facade uses bufferedMP3; provider speed/volume/pitch/sample-rate fields are fixed by the adapter, not callercontrols."
            ],
            "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"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "speech-2.6-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_length_exclusive": 10000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "aksara Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "voice",
                "pattern": "^[A-Za-z0-9_-]{1,128}$",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id 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."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\n: \"${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"speech-2.6-turbo\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nimport re\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nif not re.fullmatch(r\"[A-Za-z0-9_-]{1,128}\",voice):raise SystemExit(\"Set an actual accepted voice ID\")\np[\"voice\"]=voice\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": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Penjanaan suara",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 60,
                "amount_unit": "usd_per_display_unit",
                "key": "tts_million_chars",
                "label": "per 1 million characters",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "speech-2.6-turbo",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "tts_million_chars",
        "units": [
          {
            "key": "tts_million_chars",
            "label": "per 1 million characters",
            "side": "in",
            "usd": 60
          }
        ]
      }
    }
  ],
  "model_id": "speech-2.6-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "6a31476a2d659a3f414ca017e1f0b816af0ac7fb745cdefa3fad461d2c10daa1",
    "input_html_sha256": "a4637b33d90d42a7ba7365b3bd5a53f8d67196b8b706383f80d11e06a67918d0",
    "private_audit_sha256": "03db0c056263efb486d0a9ea783547d1080a9291fb08a0c03598213aba684f04",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ms/speech-2-6-turbo/",
    "description": "Speech 2.6 Turbo mensintesis pertuturan berbilang bahasa dan menumpukan kependaman respons yang rendah.",
    "locale": "ms",
    "md_url": "https://ailoot.ai/models/ms/speech-2-6-turbo/index.md",
    "title": "speech-2.6-turbo — Ailoot",
    "url": "https://ailoot.ai/models/ms/speech-2-6-turbo/"
  },
  "rawModel": {
    "about": "### Ujaran untuk proses suara\n\nSpeech 2.6 Turbo ialah varian sintesis pertuturan yang menumpukan kelajuan. Pengeluar menerangkannya untuk pembantu suara dan senario interaktif yang menukarkan teks kepada respons secara beransur-ansur. Model mengekalkan intonasi semula jadi generasi Speech 2.6 dan boleh memproses bentuk tulisan khusus.\n\n### Teks yang perlu disebut dengan betul\n\nModel direka untuk membaca tarikh, nombor telefon, amaun wang, alamat halaman dan e-mel tanpa setiap bentuk tulisan ditulis semula secara manual terlebih dahulu. Analisis sebegini berguna dalam mesej dinamik yang mengandungi nombor dan label bersama perkataan biasa. Pengeluar menerangkan pemprosesan format ini dalam beberapa bahasa.\n\n### Kelancaran dan kawalan emosi\n\nSpeech 2.6 menyokong Fluent LoRA: pengekalan warna suara yang mudah dikenali dengan penyampaian teks yang lebih lancar. Keupayaan ini merujuk kepada penggunaan suara yang telah disediakan; penyediaan klon berasingan bukan sebahagian daripada permintaan teks biasa. Keluarga ini merangkumi **40 bahasa**, termasuk bahasa Rusia.\n\nTurbo menyediakan tujuh emosi asas serta mod tambahan `fluent` dan `whisper`. Model boleh memilih warna emosi sendiri berdasarkan kandungan atau menggunakan keadaan yang ditetapkan. Kedalaman dan tempo bunyi boleh diubah secara bebas daripada teks.\n\n### Suara, jeda dan sebutan\n\nMiniMax menyediakan pemilihan suara dan kawalan tempo, kelantangan serta pic suara. Kelajuan ditetapkan dalam julat **0,5–2**, kelantangan melebihi 0 dan sehingga **10**, manakala perubahan pic suara dari **−12 hingga 12**. Emosi boleh dibiarkan kepada model berdasarkan makna teks atau dinyatakan secara manual: kegembiraan, kesedihan, kemarahan, ketakutan, rasa jijik, kejutan atau ketenangan.\n\nSebutan boleh diperincikan melalui kamus penggantian dan notasi fonetik; abjad fonetik antarabangsa, pinyin Cina dan variasi bacaan Jepun disediakan. Jeda ditetapkan antara bahagian yang disebut dalam julat **0,01–99,99 saat**. Tempoh jeda ditetapkan dengan ketepatan dua tempat perpuluhan; penanda diletakkan antara bahagian yang disebut dan tidak diletakkan berturut-turut. Tetapan sebegini membolehkan bunyi nama, singkatan dan perkataan dengan beberapa kemungkinan bacaan diselaraskan dengan tujuan penyampaian suara.\n\n### Mendapatkan audio\n\nSintesis menerima teks kurang daripada **10 000 aksara**. Bagi teks panjang melebihi 3000 aksara, pengeluar mengesyorkan output penstriman; audio siap juga boleh diterima sekali gus. Tetapan sintesis umum merangkumi MP3, PCM, FLAC, WAV, Opus dan varian G.711 μ-law, dalam mono atau stereo; set format yang tersedia bagi permintaan khusus ditentukan melalui kemudahan Ailoot.\n\nPada kad Ailoot ini, teks ditukarkan kepada audio pertuturan. Tujuan Turbo berkait dengan kelajuan sintesis, tetapi masa respons tetap tidak dijanjikan di sini; tetapan yang disenaraikan mencerminkan keupayaan pengeluar dan terpakai dalam skop kaedah akses yang tersedia.\n\nTetapan audio tambahan merangkumi kadar pensampelan **8, 16, 22,05, 24, 32 dan 44,1 kHz**. Bagi MP3, kadar bit **32, 64, 128 atau 256 kbit/s** disediakan. Warna suara juga boleh diubah dan satu kesan boleh digunakan: gema ruang luas, gema dewan, bunyi telefon atau suara robot. Kesan perubahan suara disokong bagi MP3, WAV dan FLAC apabila audio diterima sekali gus, manakala dalam output penstriman, hanya bagi MP3. Format G.711 μ-law menggunakan kadar 8 kHz. Keupayaan ini merujuk kepada tetapan sintesis MiniMax.\n\nPengeluar menyediakan penyegerakan pertuturan dengan teks: cap masa mengikut ayat, perkataan atau perkataan semasa output beransur-ansur. Hasil sebegini membantu menyelaraskan sebutan dengan paparan teks. Keupayaan tambahan ini memerlukan sokongan format respons yang sepadan.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "speech-2.6-turbo",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": 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": [
              "MiniMax accepts optionalresponse_formatmp3. Actual voice IDs come from the selected model voice profile.",
              "The facade uses bufferedMP3; provider speed/volume/pitch/sample-rate fields are fixed by the adapter, not callercontrols."
            ],
            "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"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "speech-2.6-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_length_exclusive": 10000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "aksara Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "voice",
                "pattern": "^[A-Za-z0-9_-]{1,128}$",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id 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."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\n: \"${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"speech-2.6-turbo\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nimport re\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nif not re.fullmatch(r\"[A-Za-z0-9_-]{1,128}\",voice):raise SystemExit(\"Set an actual accepted voice ID\")\np[\"voice\"]=voice\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": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Penjanaan suara",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 60,
                "amount_unit": "usd_per_display_unit",
                "key": "tts_million_chars",
                "label": "per 1 million characters",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "speech-2.6-turbo",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "tts_million_chars",
        "units": [
          {
            "key": "tts_million_chars",
            "label": "per 1 million characters",
            "side": "in",
            "usd": 60
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "speech-2.6-turbo",
        "request_model_id": "speech-2.6-turbo",
        "route_label": "Core"
      }
    ],
    "name": "speech-2.6-turbo",
    "price": {
      "in": 60,
      "in_label": "per 1 million characters",
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "Speech 2.6 Turbo mensintesis pertuturan berbilang bahasa dan menumpukan kependaman respons yang rendah."
  },
  "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": "Speech 2.6 Turbo mensintesis pertuturan berbilang bahasa dan menumpukan kependaman respons yang rendah.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "1687a20c662c125c27eb874836172ffb188d52cdd1d9154f349dacdcd06d36b0",
    "renderer_sha256": "1dab5ba62521e9568c8b7c82005622cabbf330a075df7cce1f83274a04009460"
  },
  "sourceRevision": "d90287009d63448d1fcdde8151ac9c0a3953e2efc7efbf7dc1071834386497fb"
}
