{
  "aboutHtml": "<h4>كلام سريع للإجابة التفاعلية</h4><p>صُمم Speech 02 Turbo لتوليد كلام تفاعلي. يصف المصنّع الجمع بين السرعة والإيقاع المستقر والصوت الطبيعي؛ وتشمل السيناريوهات الإجابات الصوتية وردود الألعاب والمحتوى التفاعلي. يتلقى النموذج النص ويشكل صوت كلام.</p><h4>اختيار طابع الصوت</h4><p>تتيح عائلة Speech 02 الجمع بين الصوت واللغة واللكنة والمشاعر. يربط Transformer ذاتي الانحدار ومشفّر المتحدث المدربان معًا جرس الصوت بالمحتوى. يمكن توليد النص بصوت جاهز؛ ويخص إنشاء صوت مستنسخ جديد تحضيرًا منفصلًا.</p><p>يختار النموذج النبرة العاطفية من النص أو يقبل حالة محددة: السعادة أو الحزن أو الغضب أو الخوف أو الاشمئزاز أو الدهشة أو الهدوء. تُضبط أيضًا السرعة والطبقة ومستوى الصوت لمواءمة الرد بوتيرة التفاعل المطلوبة.</p><h4>اللغات وقراءة الكلمات</h4><p>يُدعم الكلام الروسي ولغات أخرى، منها الإنجليزية والصينية والكانتونية واليابانية والكورية والفرنسية والألمانية والإسبانية والبرتغالية والتركية والعربية والأوكرانية. تستثني مواصفات Speech 02 الحالية الفارسية والفلبينية والتاميلية بصورة منفصلة.</p><p>يمكن توضيح النطق بقاموس استبدالات ورموز صوتية دولية والبينيين الصيني وطرق القراءة اليابانية. تُحدد التوقفات بين الأجزاء المنطوقة ضمن <strong>0,01–99,99 ثانية</strong>. تُحدد المدة بدقة منزلتين عشريتين؛ وتوضع العلامات بين الأجزاء المنطوقة ولا تُكرر متتابعةً. يتيح النموذج سرعة <strong>0,5–2</strong> ومستوى صوت فوق 0 وحتى <strong>10</strong> وتغيير طبقة من <strong>−12 إلى 12</strong>.</p><h4>صوت للتشغيل</h4><p>يُحدد الإدخال المتزامن عند نص أقل من <strong>10 000 حرف</strong>؛ وينصح المصنّع بالإخراج التدريجي للنص فوق 3000 حرف. تشمل قدرات النموذج MP3 وWAV وFLAC وPCM؛ وتصف الإعدادات العامة أيضًا Opus وG.711 μ-law وقناة صوتية واحدة أو قناتين.</p><p>تقبل بطاقة Ailoot هذه النص وتعيد الكلام. تتعلق سرعة Turbo بغرض هذا الإصدار؛ وتتحدد مدة الإجابة والصيغ الموسعة المتاحة وفق طريقة الاستدعاء المختارة.</p><p>تشمل إعدادات الصوت الإضافية ترددات أخذ العينات <strong>8 و16 و22,05 و24 و32 و44,1 كيلوهرتز</strong>. تتوفر لـMP3 معدلات بت <strong>32 أو64 أو128 أو256 كيلوبت/ثانية</strong>. يمكن أيضًا تغيير طابع الصوت وتطبيق تأثير واحد: صدى واسع أو صدى قاعة أو صوت هاتفي أو آلي. تُدعم تأثيرات تغيير الصوت لـMP3 وWAV وFLAC عند تلقي الصوت كاملًا، ولـMP3 فقط في الإخراج المتدفق. تستخدم صيغ G.711 μ-law تردد 8 كيلوهرتز. تخص هذه الإمكانات إعدادات التوليد من MiniMax.</p><p>يتيح المصنّع مزامنة الكلام بالنص: طوابع زمنية للجمل أو الكلمات أو الكلمات في الإخراج التدريجي. تساعد هذه النتيجة على مطابقة النطق بعرض النص. تحتاج الإمكانية الإضافية دعم صيغة الإجابة المعنية.</p>",
  "aboutText": "### كلام سريع للإجابة التفاعلية\n\nصُمم Speech 02 Turbo لتوليد كلام تفاعلي. يصف المصنّع الجمع بين السرعة والإيقاع المستقر والصوت الطبيعي؛ وتشمل السيناريوهات الإجابات الصوتية وردود الألعاب والمحتوى التفاعلي. يتلقى النموذج النص ويشكل صوت كلام.\n\n### اختيار طابع الصوت\n\nتتيح عائلة Speech 02 الجمع بين الصوت واللغة واللكنة والمشاعر. يربط Transformer ذاتي الانحدار ومشفّر المتحدث المدربان معًا جرس الصوت بالمحتوى. يمكن توليد النص بصوت جاهز؛ ويخص إنشاء صوت مستنسخ جديد تحضيرًا منفصلًا.\n\nيختار النموذج النبرة العاطفية من النص أو يقبل حالة محددة: السعادة أو الحزن أو الغضب أو الخوف أو الاشمئزاز أو الدهشة أو الهدوء. تُضبط أيضًا السرعة والطبقة ومستوى الصوت لمواءمة الرد بوتيرة التفاعل المطلوبة.\n\n### اللغات وقراءة الكلمات\n\nيُدعم الكلام الروسي ولغات أخرى، منها الإنجليزية والصينية والكانتونية واليابانية والكورية والفرنسية والألمانية والإسبانية والبرتغالية والتركية والعربية والأوكرانية. تستثني مواصفات Speech 02 الحالية الفارسية والفلبينية والتاميلية بصورة منفصلة.\n\nيمكن توضيح النطق بقاموس استبدالات ورموز صوتية دولية والبينيين الصيني وطرق القراءة اليابانية. تُحدد التوقفات بين الأجزاء المنطوقة ضمن **0,01–99,99 ثانية**. تُحدد المدة بدقة منزلتين عشريتين؛ وتوضع العلامات بين الأجزاء المنطوقة ولا تُكرر متتابعةً. يتيح النموذج سرعة **0,5–2** ومستوى صوت فوق 0 وحتى **10** وتغيير طبقة من **−12 إلى 12**.\n\n### صوت للتشغيل\n\nيُحدد الإدخال المتزامن عند نص أقل من **10 000 حرف**؛ وينصح المصنّع بالإخراج التدريجي للنص فوق 3000 حرف. تشمل قدرات النموذج MP3 وWAV وFLAC وPCM؛ وتصف الإعدادات العامة أيضًا Opus وG.711 μ-law وقناة صوتية واحدة أو قناتين.\n\nتقبل بطاقة Ailoot هذه النص وتعيد الكلام. تتعلق سرعة Turbo بغرض هذا الإصدار؛ وتتحدد مدة الإجابة والصيغ الموسعة المتاحة وفق طريقة الاستدعاء المختارة.\n\nتشمل إعدادات الصوت الإضافية ترددات أخذ العينات **8 و16 و22,05 و24 و32 و44,1 كيلوهرتز**. تتوفر لـMP3 معدلات بت **32 أو64 أو128 أو256 كيلوبت/ثانية**. يمكن أيضًا تغيير طابع الصوت وتطبيق تأثير واحد: صدى واسع أو صدى قاعة أو صوت هاتفي أو آلي. تُدعم تأثيرات تغيير الصوت لـMP3 وWAV وFLAC عند تلقي الصوت كاملًا، ولـMP3 فقط في الإخراج المتدفق. تستخدم صيغ G.711 μ-law تردد 8 كيلوهرتز. تخص هذه الإمكانات إعدادات التوليد من MiniMax.\n\nيتيح المصنّع مزامنة الكلام بالنص: طوابع زمنية للجمل أو الكلمات أو الكلمات في الإخراج التدريجي. تساعد هذه النتيجة على مطابقة النطق بعرض النص. تحتاج الإمكانية الإضافية دعم صيغة الإجابة المعنية.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "461d6ce998a562dc9da970126fe43d655d20315b1f453c446fbd7d2a76674e89",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ar",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">speech-02-turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>speech-02-turbo</code><button type=\"button\" id=\"copy-id\">نسخ ID</button></div><nav class=\"card-jump-nav\" aria-label=\"أقسام بطاقة النموذج\"><button type=\"button\" data-card-jump=\"overview\">البداية</button><button type=\"button\" data-card-jump=\"methods\">المدخلات والطرائق</button><button type=\"button\" data-card-jump=\"pricing\">الباقات</button><button type=\"button\" data-card-jump=\"examples\">أمثلة</button><button type=\"button\" data-card-jump=\"results\">النتائج</button><button type=\"button\" data-card-jump=\"aliases\">الأسماء البديلة</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"طرائق 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-02-turbo\">توليد الكلام</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\">البداية</h3><p class=\"mdesc-full\">صُمم Speech-02 Turbo لتوليد الكلام بسرعة مع إيقاع ثابت وصوت متعدد اللغات.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص</dd></div><div><dt>النتائج</dt><dd>speech</dd></div></dl><details class=\"card-about\"><summary>عن النموذج</summary><p class=\"note-s\" data-model-method-boundary>يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.</p><div class=\"mabout\" id=\"m-about\"><h4>كلام سريع للإجابة التفاعلية</h4><p>صُمم Speech 02 Turbo لتوليد كلام تفاعلي. يصف المصنّع الجمع بين السرعة والإيقاع المستقر والصوت الطبيعي؛ وتشمل السيناريوهات الإجابات الصوتية وردود الألعاب والمحتوى التفاعلي. يتلقى النموذج النص ويشكل صوت كلام.</p><h4>اختيار طابع الصوت</h4><p>تتيح عائلة Speech 02 الجمع بين الصوت واللغة واللكنة والمشاعر. يربط Transformer ذاتي الانحدار ومشفّر المتحدث المدربان معًا جرس الصوت بالمحتوى. يمكن توليد النص بصوت جاهز؛ ويخص إنشاء صوت مستنسخ جديد تحضيرًا منفصلًا.</p><p>يختار النموذج النبرة العاطفية من النص أو يقبل حالة محددة: السعادة أو الحزن أو الغضب أو الخوف أو الاشمئزاز أو الدهشة أو الهدوء. تُضبط أيضًا السرعة والطبقة ومستوى الصوت لمواءمة الرد بوتيرة التفاعل المطلوبة.</p><h4>اللغات وقراءة الكلمات</h4><p>يُدعم الكلام الروسي ولغات أخرى، منها الإنجليزية والصينية والكانتونية واليابانية والكورية والفرنسية والألمانية والإسبانية والبرتغالية والتركية والعربية والأوكرانية. تستثني مواصفات Speech 02 الحالية الفارسية والفلبينية والتاميلية بصورة منفصلة.</p><p>يمكن توضيح النطق بقاموس استبدالات ورموز صوتية دولية والبينيين الصيني وطرق القراءة اليابانية. تُحدد التوقفات بين الأجزاء المنطوقة ضمن <strong>0,01–99,99 ثانية</strong>. تُحدد المدة بدقة منزلتين عشريتين؛ وتوضع العلامات بين الأجزاء المنطوقة ولا تُكرر متتابعةً. يتيح النموذج سرعة <strong>0,5–2</strong> ومستوى صوت فوق 0 وحتى <strong>10</strong> وتغيير طبقة من <strong>−12 إلى 12</strong>.</p><h4>صوت للتشغيل</h4><p>يُحدد الإدخال المتزامن عند نص أقل من <strong>10 000 حرف</strong>؛ وينصح المصنّع بالإخراج التدريجي للنص فوق 3000 حرف. تشمل قدرات النموذج MP3 وWAV وFLAC وPCM؛ وتصف الإعدادات العامة أيضًا Opus وG.711 μ-law وقناة صوتية واحدة أو قناتين.</p><p>تقبل بطاقة Ailoot هذه النص وتعيد الكلام. تتعلق سرعة Turbo بغرض هذا الإصدار؛ وتتحدد مدة الإجابة والصيغ الموسعة المتاحة وفق طريقة الاستدعاء المختارة.</p><p>تشمل إعدادات الصوت الإضافية ترددات أخذ العينات <strong>8 و16 و22,05 و24 و32 و44,1 كيلوهرتز</strong>. تتوفر لـMP3 معدلات بت <strong>32 أو64 أو128 أو256 كيلوبت/ثانية</strong>. يمكن أيضًا تغيير طابع الصوت وتطبيق تأثير واحد: صدى واسع أو صدى قاعة أو صوت هاتفي أو آلي. تُدعم تأثيرات تغيير الصوت لـMP3 وWAV وFLAC عند تلقي الصوت كاملًا، ولـMP3 فقط في الإخراج المتدفق. تستخدم صيغ G.711 μ-law تردد 8 كيلوهرتز. تخص هذه الإمكانات إعدادات التوليد من MiniMax.</p><p>يتيح المصنّع مزامنة الكلام بالنص: طوابع زمنية للجمل أو الكلمات أو الكلمات في الإخراج التدريجي. تساعد هذه النتيجة على مطابقة النطق بعرض النص. تحتاج الإمكانية الإضافية دعم صيغة الإجابة المعنية.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">متاح في Ailoot · المدخلات والطرائق</h3><details class=\"card-method\" open><summary><b>Ailoot · توليد الكلام</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>text</code></dd></div><div><dt>الإخراج</dt><dd><code>speech</code></dd></div><div><dt>صيغة الإخراج</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>الحقل</th><th>النوع</th><th>المتطلب</th><th>القيم والحدود</th><th>القيمة الافتراضية</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>speech-02-turbo</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للطول: ⁦1⁩</div><div>الحد الأقصى للطول (غير شامل): ⁦10,000⁩</div><div>الوحدة: محارف Unicode</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>النمط: ^[A-Za-z0-9_-]{1,128}$</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>mp3</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>تركيبات مواد الإدخال</summary><p class=\"note-s\"><b>text_to_speech</b> · مطلوب: input</p></details><details class=\"note-s\" data-method-contract><summary>معلمات الطريقة ودورة حياتها</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>المعلمة</th><th>المواصفات</th></tr></thead><tbody><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_types</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>text</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>required</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>null</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>optional_controls</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>null</td></tr></tbody></table></div><p>دورة الحياة: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط</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\">بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><h4>تعرفات طرائق Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> توليد الكلام</b><code>POST /v1/audio/speech</code></header><dl><div><dt>الإدخال</dt><dd>⁦‏60.00 US$⁩ <em>لكل 1 مليون حرف</em></dd></div></dl></section><p class=\"note-s\">تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. <a href=\"/docs/ar/billing/reserve/\">كيفية عمل حجز المبلغ وتسوية الرسوم →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">أمثلة للطلبات</h3><h4>Ailoot · توليد الكلام</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-468-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-468-panel-0\" aria-selected=\"true\" tabindex=\"0\">مثال للكلام</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><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-468-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-468-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-02-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\">استلام النتائج وحفظها</h3><h4>Ailoot · توليد الكلام</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>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.</p><p class=\"note-s\">احتفظ بالنتيجة الثنائية كاملة وبجميع الترويسات. إذا أُعيدت بيانات JSON أو مخرجات متعددة، فاحتفظ بكل عنصر بيانات واجلب محتوى كل عنوان URL فعلي موقّع لأصل من أصول الوسائط.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">احتفظ بقيمة operation_id/X-Client-Request-ID الأصلية للمطابقة دون إعادة الإرسال؛ لا يوجد مسار مخصص للاستعلام الدوري عن الصوت.</p></div><details class=\"card-about\" data-output-fields><summary>حقول الاستجابة</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>الحقل</th><th>النوع</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>bytes</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>الأخطاء والخطوات التالية</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>الاستجابة</th><th>الشرط</th><th>الخطوة التالية</th></tr></thead><tbody><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>صحّح الحقول المحددة قبل طلب إنشاء جديد.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span><code>server_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=speech-02-turbo&amp;route=Core&amp;caller=speech-02-turbo&amp;fmt=speech\"><code>speech-02-turbo</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=speech-02-turbo&amp;route=Core&amp;caller=speech-02-turbo&amp;fmt=speech\"><code>speech-02-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "speech-02-turbo",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "speech-02-turbo",
        "route_label": "Core"
      },
      "method_key": "Core|speech|/v1/audio/speech|speech-02-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": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق",
                "http_status": null,
                "recovery": "احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.",
                "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": "احتفظ بقيمة operation_id/X-Client-Request-ID الأصلية للمطابقة دون إعادة الإرسال؛ لا يوجد مسار مخصص للاستعلام الدوري عن الصوت."
            },
            "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": "احتفظ بالنتيجة الثنائية كاملة وبجميع الترويسات. إذا أُعيدت بيانات JSON أو مخرجات متعددة، فاحتفظ بكل عنصر بيانات واجلب محتوى كل عنوان URL فعلي موقّع لأصل من أصول الوسائط.",
              "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-02-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": "محارف 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": [
            "بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب."
          ],
          "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 الفعلية المُعادة أو سجل مكتبة الوسائط",
                "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-02-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": "توليد الكلام",
        "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-02-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-02-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d48aaff26405e5a48bca4a4a13ba623c2368e90c90ad0d479a0b3fa9db317b23",
    "input_html_sha256": "13be5c660cec2513713aa3668f20e97f3dcbe5a8d4518527f6392d9a0782ade7",
    "private_audit_sha256": "8a7347f39015b2d8936b8b071988b1b99fc2625b3c1333da98a70afbf591166a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/speech-02-turbo/",
    "description": "صُمم Speech-02 Turbo لتوليد الكلام بسرعة مع إيقاع ثابت وصوت متعدد اللغات.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/speech-02-turbo/index.md",
    "title": "speech-02-turbo — Ailoot",
    "url": "https://ailoot.ai/models/ar/speech-02-turbo/"
  },
  "rawModel": {
    "about": "### كلام سريع للإجابة التفاعلية\n\nصُمم Speech 02 Turbo لتوليد كلام تفاعلي. يصف المصنّع الجمع بين السرعة والإيقاع المستقر والصوت الطبيعي؛ وتشمل السيناريوهات الإجابات الصوتية وردود الألعاب والمحتوى التفاعلي. يتلقى النموذج النص ويشكل صوت كلام.\n\n### اختيار طابع الصوت\n\nتتيح عائلة Speech 02 الجمع بين الصوت واللغة واللكنة والمشاعر. يربط Transformer ذاتي الانحدار ومشفّر المتحدث المدربان معًا جرس الصوت بالمحتوى. يمكن توليد النص بصوت جاهز؛ ويخص إنشاء صوت مستنسخ جديد تحضيرًا منفصلًا.\n\nيختار النموذج النبرة العاطفية من النص أو يقبل حالة محددة: السعادة أو الحزن أو الغضب أو الخوف أو الاشمئزاز أو الدهشة أو الهدوء. تُضبط أيضًا السرعة والطبقة ومستوى الصوت لمواءمة الرد بوتيرة التفاعل المطلوبة.\n\n### اللغات وقراءة الكلمات\n\nيُدعم الكلام الروسي ولغات أخرى، منها الإنجليزية والصينية والكانتونية واليابانية والكورية والفرنسية والألمانية والإسبانية والبرتغالية والتركية والعربية والأوكرانية. تستثني مواصفات Speech 02 الحالية الفارسية والفلبينية والتاميلية بصورة منفصلة.\n\nيمكن توضيح النطق بقاموس استبدالات ورموز صوتية دولية والبينيين الصيني وطرق القراءة اليابانية. تُحدد التوقفات بين الأجزاء المنطوقة ضمن **0,01–99,99 ثانية**. تُحدد المدة بدقة منزلتين عشريتين؛ وتوضع العلامات بين الأجزاء المنطوقة ولا تُكرر متتابعةً. يتيح النموذج سرعة **0,5–2** ومستوى صوت فوق 0 وحتى **10** وتغيير طبقة من **−12 إلى 12**.\n\n### صوت للتشغيل\n\nيُحدد الإدخال المتزامن عند نص أقل من **10 000 حرف**؛ وينصح المصنّع بالإخراج التدريجي للنص فوق 3000 حرف. تشمل قدرات النموذج MP3 وWAV وFLAC وPCM؛ وتصف الإعدادات العامة أيضًا Opus وG.711 μ-law وقناة صوتية واحدة أو قناتين.\n\nتقبل بطاقة Ailoot هذه النص وتعيد الكلام. تتعلق سرعة Turbo بغرض هذا الإصدار؛ وتتحدد مدة الإجابة والصيغ الموسعة المتاحة وفق طريقة الاستدعاء المختارة.\n\nتشمل إعدادات الصوت الإضافية ترددات أخذ العينات **8 و16 و22,05 و24 و32 و44,1 كيلوهرتز**. تتوفر لـMP3 معدلات بت **32 أو64 أو128 أو256 كيلوبت/ثانية**. يمكن أيضًا تغيير طابع الصوت وتطبيق تأثير واحد: صدى واسع أو صدى قاعة أو صوت هاتفي أو آلي. تُدعم تأثيرات تغيير الصوت لـMP3 وWAV وFLAC عند تلقي الصوت كاملًا، ولـMP3 فقط في الإخراج المتدفق. تستخدم صيغ G.711 μ-law تردد 8 كيلوهرتز. تخص هذه الإمكانات إعدادات التوليد من MiniMax.\n\nيتيح المصنّع مزامنة الكلام بالنص: طوابع زمنية للجمل أو الكلمات أو الكلمات في الإخراج التدريجي. تساعد هذه النتيجة على مطابقة النطق بعرض النص. تحتاج الإمكانية الإضافية دعم صيغة الإجابة المعنية.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "speech-02-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": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق",
                "http_status": null,
                "recovery": "احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.",
                "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": "احتفظ بقيمة operation_id/X-Client-Request-ID الأصلية للمطابقة دون إعادة الإرسال؛ لا يوجد مسار مخصص للاستعلام الدوري عن الصوت."
            },
            "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": "احتفظ بالنتيجة الثنائية كاملة وبجميع الترويسات. إذا أُعيدت بيانات JSON أو مخرجات متعددة، فاحتفظ بكل عنصر بيانات واجلب محتوى كل عنوان URL فعلي موقّع لأصل من أصول الوسائط.",
              "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-02-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": "محارف 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": [
            "بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب."
          ],
          "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 الفعلية المُعادة أو سجل مكتبة الوسائط",
                "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-02-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": "توليد الكلام",
        "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-02-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-02-turbo",
        "request_model_id": "speech-02-turbo",
        "route_label": "Core"
      }
    ],
    "name": "speech-02-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-02 Turbo لتوليد الكلام بسرعة مع إيقاع ثابت وصوت متعدد اللغات."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "صُمم Speech-02 Turbo لتوليد الكلام بسرعة مع إيقاع ثابت وصوت متعدد اللغات.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ade6cd43d06d5c091127c71c41ae8761c65908eae729f72e206572422be7bbd1",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "5ab81a46a99d0779535c1c19d1c731d490fea4fc7e30fbc4eeac3f90ab9bdbd6"
}
