{
  "aboutHtml": "<p>S2.1 Pro Free هو إصدار Fish Audio الموجّه للمطورين من نموذج تحويل النص إلى كلام S2.1. يشارك S2.1 Pro النموذج الأساسي وقدرات التوليد الجوهرية: كلامًا معبّرًا متعدد اللغات، وتوجيهات أداء باللغة الطبيعية، وحوارًا أصليًا متعدد المتحدثين. دوره الاختبار وبناء النماذج الأولية والتطوير ومسارات التطبيقات الأصغر.</p><p>لنموذج أولي لمساعد صوتي، ابدأ برد نموذجي كامل وقيّم صوته قبل اختبار النص الذي يصل تدريجيًا. لمنتج تعليمي، أعد شرحًا قصيرًا بالمصطلحات الدقيقة وقراءات الأرقام التي يحتاجها المستمع. لنموذج حوار أولي، عرّف المتحدثين ومراجع أصواتهم قبل إضافة توجيهات الأداء. تطوّر هذه الخطوات مخرجًا صوتيًا وتدفقًا للتطبيق حوله، بدل تحميل طلب التوليد مسؤولية المحادثة بأكملها.</p><p>اكتب الكلمات التي ينبغي نطقها فعليًا، ثم ضع توجيهًا مباشرة قبل المقطع الذي ينبغي تغيير أدائه. يمكن للتوجيهات بين أقواس مربعة أن تعبّر عن همس أو وقفة أو رد فعل أو تأكيد أو أسلوب إلقاء مفتوح الوصف. ضع التغيير في وسط الجملة حيث يحتاج إليه الأداء، وأتبع التوجيهات الوصفية بكلام فعلي. يفصل موجز الشرح المفيد بين صياغته الواقعية وبين الدفء أو السرعة أو التأكيد المطلوب للمستمع.</p><p>لمتحدث واحد، اختر معرّف صوت محفوظًا أو قدّم تسجيلًا مرجعيًا مع نصه المفرّغ. يوصي دليل النطق لدى المنتج بعينة نقية مدتها ١٠–٣٠ ثانية لتهيئة الصوت الفورية. اختر مرجعًا بنبرة وجودة تسجيل تناسبان النص، واحتفظ بالمرجع نفسه عبر المقاطع المرتبطة. يوفّر المرجع الصوتي صوت المتحدث، بينما يوفّر النص والتوجيهات المضمّنة المحتوى وأداءه.</p><p>يستخدم التوليد الأصلي متعدد المتحدثين علامات مثل &lt;|speaker:0|&gt; و&lt;|speaker:1|&gt; مع مصفوفة مرتبة من معرّفات الأصوات أو مجموعات مرجعية منفصلة. حافظ على توافق تسميات المتحدثين الرقمية مع ذلك الترتيب. في حوار تعليمي، اكتب جملة كل متحدث وضع توجيه الأداء بعد علامة المتحدث في موضعه المناسب. يولّد ذلك حوارًا ضمن طلب واحد؛ وهو مسار مختلف عن مقاطع S1 المنفصلة أحادية المتحدث وتجميعها لاحقًا.</p><p>يتيح مسار المنتج إخراج MP3 وWAV وPCM الخام وOpus، ويكون MP3 هو الافتراضي. يدعم MP3 معدلات ٦٤ و١٢٨ و١٩٢ كيلوبت/ثانية؛ ويستخدم WAV وPCM صيغ العينات الأحادية ذات ١٦ بت الموثقة، بينما يستخدم Opus تردد ٤٨ كيلوهرتز. اختر الصيغة لملف سرد محفوظ أو تشغيل متدفق أو سلسلة معالجة صوتية لاحقة. احتفظ بالنص الكامل واختيار الصوت مع الصوت، حتى يستهدف تعديل لاحق جملة واحدة دون فقدان الأداء المقصود.</p><p>يمكن تعديل السرعة من 0.5 إلى 2.0 مع عناصر تحكم في مستوى الصوت. توسّع تسوية النص الأرقام الإنجليزية والصينية لقراءتها طبيعيًا. تكون تسوية جهارة الإخراج true افتراضيًا وتُطبّق على عائلة S2؛ ولم يكن للحقل نفسه تأثير في S1. لا يغيّر repetition_penalty الخاص بـS1 صوت S2.1 Pro، لذلك ينبغي ألا يُعامل إعداد قديم على أنه عنصر تحكم فعّال لهذا النموذج. راجع الأصوات والكلمات المتكررة مباشرة، بدل الاعتماد على معامل منقول لإثبات النتيجة.</p><p>تُعالج النصوص الأطول في أجزاء. يتراوح طول الجزء الموثق بين ١٠٠ و٣٠٠، ويمثل max_new_tokens ميزانية رموز صوتية لكل جزء، وليس ضمانًا للمدة الإجمالية. يمكن للتهيئة بالجزء السابق أن تنقل سياق الصوت إلى الأمام. يصف مسار التسليم لدى المنتج صوتًا كاملًا وأجزاء صوتية متزايدة وتدفقًا مباشرًا للنص عندما يصل تدريجيًا. اختر طريقة استهلاك النتائج للتطبيق، واحتفظ بسياق نصي كافٍ لنطق المقطع التالي ونبرته.</p><p>للحصول على مخرج نهائي مفيد، استمع بحثًا عن كلمات محذوفة أو مكررة، ونطق الأرقام، وتغييرات المتحدثين، والوقفات، وشدة التوجيهات. قد تفسّر المراجع الصوتية المختلفة الإشارة بدرجات متفاوتة، لذا ابدأ بجملة بسيطة موجّهة قبل إضافة وسوم متنافسة. في العمل متعدد اللغات، قدّم النص باللغة المستهدفة بدل مطالبة نموذج الكلام بابتكار محتواه أو ترجمته. يغيّر التنقيح المركّز الجملة أو الإشارة أو المرجع المسؤول عن عدم التطابق، مع الاحتفاظ بأجزاء الأداء التي تلائم الموجز بالفعل.</p>",
  "aboutText": "S2.1 Pro Free هو إصدار Fish Audio الموجّه للمطورين من نموذج تحويل النص إلى كلام S2.1. يشارك S2.1 Pro النموذج الأساسي وقدرات التوليد الجوهرية: كلامًا معبّرًا متعدد اللغات، وتوجيهات أداء باللغة الطبيعية، وحوارًا أصليًا متعدد المتحدثين. دوره الاختبار وبناء النماذج الأولية والتطوير ومسارات التطبيقات الأصغر.\n\nلنموذج أولي لمساعد صوتي، ابدأ برد نموذجي كامل وقيّم صوته قبل اختبار النص الذي يصل تدريجيًا. لمنتج تعليمي، أعد شرحًا قصيرًا بالمصطلحات الدقيقة وقراءات الأرقام التي يحتاجها المستمع. لنموذج حوار أولي، عرّف المتحدثين ومراجع أصواتهم قبل إضافة توجيهات الأداء. تطوّر هذه الخطوات مخرجًا صوتيًا وتدفقًا للتطبيق حوله، بدل تحميل طلب التوليد مسؤولية المحادثة بأكملها.\n\nاكتب الكلمات التي ينبغي نطقها فعليًا، ثم ضع توجيهًا مباشرة قبل المقطع الذي ينبغي تغيير أدائه. يمكن للتوجيهات بين أقواس مربعة أن تعبّر عن همس أو وقفة أو رد فعل أو تأكيد أو أسلوب إلقاء مفتوح الوصف. ضع التغيير في وسط الجملة حيث يحتاج إليه الأداء، وأتبع التوجيهات الوصفية بكلام فعلي. يفصل موجز الشرح المفيد بين صياغته الواقعية وبين الدفء أو السرعة أو التأكيد المطلوب للمستمع.\n\nلمتحدث واحد، اختر معرّف صوت محفوظًا أو قدّم تسجيلًا مرجعيًا مع نصه المفرّغ. يوصي دليل النطق لدى المنتج بعينة نقية مدتها ١٠–٣٠ ثانية لتهيئة الصوت الفورية. اختر مرجعًا بنبرة وجودة تسجيل تناسبان النص، واحتفظ بالمرجع نفسه عبر المقاطع المرتبطة. يوفّر المرجع الصوتي صوت المتحدث، بينما يوفّر النص والتوجيهات المضمّنة المحتوى وأداءه.\n\nيستخدم التوليد الأصلي متعدد المتحدثين علامات مثل <|speaker:0|> و<|speaker:1|> مع مصفوفة مرتبة من معرّفات الأصوات أو مجموعات مرجعية منفصلة. حافظ على توافق تسميات المتحدثين الرقمية مع ذلك الترتيب. في حوار تعليمي، اكتب جملة كل متحدث وضع توجيه الأداء بعد علامة المتحدث في موضعه المناسب. يولّد ذلك حوارًا ضمن طلب واحد؛ وهو مسار مختلف عن مقاطع S1 المنفصلة أحادية المتحدث وتجميعها لاحقًا.\n\nيتيح مسار المنتج إخراج MP3 وWAV وPCM الخام وOpus، ويكون MP3 هو الافتراضي. يدعم MP3 معدلات ٦٤ و١٢٨ و١٩٢ كيلوبت/ثانية؛ ويستخدم WAV وPCM صيغ العينات الأحادية ذات ١٦ بت الموثقة، بينما يستخدم Opus تردد ٤٨ كيلوهرتز. اختر الصيغة لملف سرد محفوظ أو تشغيل متدفق أو سلسلة معالجة صوتية لاحقة. احتفظ بالنص الكامل واختيار الصوت مع الصوت، حتى يستهدف تعديل لاحق جملة واحدة دون فقدان الأداء المقصود.\n\nيمكن تعديل السرعة من 0.5 إلى 2.0 مع عناصر تحكم في مستوى الصوت. توسّع تسوية النص الأرقام الإنجليزية والصينية لقراءتها طبيعيًا. تكون تسوية جهارة الإخراج true افتراضيًا وتُطبّق على عائلة S2؛ ولم يكن للحقل نفسه تأثير في S1. لا يغيّر repetition_penalty الخاص بـS1 صوت S2.1 Pro، لذلك ينبغي ألا يُعامل إعداد قديم على أنه عنصر تحكم فعّال لهذا النموذج. راجع الأصوات والكلمات المتكررة مباشرة، بدل الاعتماد على معامل منقول لإثبات النتيجة.\n\nتُعالج النصوص الأطول في أجزاء. يتراوح طول الجزء الموثق بين ١٠٠ و٣٠٠، ويمثل max_new_tokens ميزانية رموز صوتية لكل جزء، وليس ضمانًا للمدة الإجمالية. يمكن للتهيئة بالجزء السابق أن تنقل سياق الصوت إلى الأمام. يصف مسار التسليم لدى المنتج صوتًا كاملًا وأجزاء صوتية متزايدة وتدفقًا مباشرًا للنص عندما يصل تدريجيًا. اختر طريقة استهلاك النتائج للتطبيق، واحتفظ بسياق نصي كافٍ لنطق المقطع التالي ونبرته.\n\nللحصول على مخرج نهائي مفيد، استمع بحثًا عن كلمات محذوفة أو مكررة، ونطق الأرقام، وتغييرات المتحدثين، والوقفات، وشدة التوجيهات. قد تفسّر المراجع الصوتية المختلفة الإشارة بدرجات متفاوتة، لذا ابدأ بجملة بسيطة موجّهة قبل إضافة وسوم متنافسة. في العمل متعدد اللغات، قدّم النص باللغة المستهدفة بدل مطالبة نموذج الكلام بابتكار محتواه أو ترجمته. يغيّر التنقيح المركّز الجملة أو الإشارة أو المرجع المسؤول عن عدم التطابق، مع الاحتفاظ بأجزاء الأداء التي تلائم الموجز بالفعل.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "4ac8c1deda7db9df472d375bad431bd594aa89386f65e1d6a568835114b67749",
    "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\">•</span><h2 id=\"sheet-title\">Fish Audio: S2.1 Pro Free (free)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s2.1-pro-free:free</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=\"Ultra|speech|/v1/audio/speech|fish-audio%2Fs2.1-pro-free%3Afree\">توليد الكلام</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\">S2.1 Pro Free هو إصدار التطوير من نموذج الكلام S2.1 لدى Fish Audio للسرد والإخراج الصوتي الموجّه والحوار متعدد المتحدثين. يشارك النموذج قدرات التوليد الصوتي للاختبار وبناء النماذج الأولية.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص</dd></div><div><dt>النتائج</dt><dd>الصوت</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\"><p>S2.1 Pro Free هو إصدار Fish Audio الموجّه للمطورين من نموذج تحويل النص إلى كلام S2.1. يشارك S2.1 Pro النموذج الأساسي وقدرات التوليد الجوهرية: كلامًا معبّرًا متعدد اللغات، وتوجيهات أداء باللغة الطبيعية، وحوارًا أصليًا متعدد المتحدثين. دوره الاختبار وبناء النماذج الأولية والتطوير ومسارات التطبيقات الأصغر.</p><p>لنموذج أولي لمساعد صوتي، ابدأ برد نموذجي كامل وقيّم صوته قبل اختبار النص الذي يصل تدريجيًا. لمنتج تعليمي، أعد شرحًا قصيرًا بالمصطلحات الدقيقة وقراءات الأرقام التي يحتاجها المستمع. لنموذج حوار أولي، عرّف المتحدثين ومراجع أصواتهم قبل إضافة توجيهات الأداء. تطوّر هذه الخطوات مخرجًا صوتيًا وتدفقًا للتطبيق حوله، بدل تحميل طلب التوليد مسؤولية المحادثة بأكملها.</p><p>اكتب الكلمات التي ينبغي نطقها فعليًا، ثم ضع توجيهًا مباشرة قبل المقطع الذي ينبغي تغيير أدائه. يمكن للتوجيهات بين أقواس مربعة أن تعبّر عن همس أو وقفة أو رد فعل أو تأكيد أو أسلوب إلقاء مفتوح الوصف. ضع التغيير في وسط الجملة حيث يحتاج إليه الأداء، وأتبع التوجيهات الوصفية بكلام فعلي. يفصل موجز الشرح المفيد بين صياغته الواقعية وبين الدفء أو السرعة أو التأكيد المطلوب للمستمع.</p><p>لمتحدث واحد، اختر معرّف صوت محفوظًا أو قدّم تسجيلًا مرجعيًا مع نصه المفرّغ. يوصي دليل النطق لدى المنتج بعينة نقية مدتها ١٠–٣٠ ثانية لتهيئة الصوت الفورية. اختر مرجعًا بنبرة وجودة تسجيل تناسبان النص، واحتفظ بالمرجع نفسه عبر المقاطع المرتبطة. يوفّر المرجع الصوتي صوت المتحدث، بينما يوفّر النص والتوجيهات المضمّنة المحتوى وأداءه.</p><p>يستخدم التوليد الأصلي متعدد المتحدثين علامات مثل &lt;|speaker:0|&gt; و&lt;|speaker:1|&gt; مع مصفوفة مرتبة من معرّفات الأصوات أو مجموعات مرجعية منفصلة. حافظ على توافق تسميات المتحدثين الرقمية مع ذلك الترتيب. في حوار تعليمي، اكتب جملة كل متحدث وضع توجيه الأداء بعد علامة المتحدث في موضعه المناسب. يولّد ذلك حوارًا ضمن طلب واحد؛ وهو مسار مختلف عن مقاطع S1 المنفصلة أحادية المتحدث وتجميعها لاحقًا.</p><p>يتيح مسار المنتج إخراج MP3 وWAV وPCM الخام وOpus، ويكون MP3 هو الافتراضي. يدعم MP3 معدلات ٦٤ و١٢٨ و١٩٢ كيلوبت/ثانية؛ ويستخدم WAV وPCM صيغ العينات الأحادية ذات ١٦ بت الموثقة، بينما يستخدم Opus تردد ٤٨ كيلوهرتز. اختر الصيغة لملف سرد محفوظ أو تشغيل متدفق أو سلسلة معالجة صوتية لاحقة. احتفظ بالنص الكامل واختيار الصوت مع الصوت، حتى يستهدف تعديل لاحق جملة واحدة دون فقدان الأداء المقصود.</p><p>يمكن تعديل السرعة من 0.5 إلى 2.0 مع عناصر تحكم في مستوى الصوت. توسّع تسوية النص الأرقام الإنجليزية والصينية لقراءتها طبيعيًا. تكون تسوية جهارة الإخراج true افتراضيًا وتُطبّق على عائلة S2؛ ولم يكن للحقل نفسه تأثير في S1. لا يغيّر repetition_penalty الخاص بـS1 صوت S2.1 Pro، لذلك ينبغي ألا يُعامل إعداد قديم على أنه عنصر تحكم فعّال لهذا النموذج. راجع الأصوات والكلمات المتكررة مباشرة، بدل الاعتماد على معامل منقول لإثبات النتيجة.</p><p>تُعالج النصوص الأطول في أجزاء. يتراوح طول الجزء الموثق بين ١٠٠ و٣٠٠، ويمثل max_new_tokens ميزانية رموز صوتية لكل جزء، وليس ضمانًا للمدة الإجمالية. يمكن للتهيئة بالجزء السابق أن تنقل سياق الصوت إلى الأمام. يصف مسار التسليم لدى المنتج صوتًا كاملًا وأجزاء صوتية متزايدة وتدفقًا مباشرًا للنص عندما يصل تدريجيًا. اختر طريقة استهلاك النتائج للتطبيق، واحتفظ بسياق نصي كافٍ لنطق المقطع التالي ونبرته.</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 Ultra · الكلام</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>audio</code></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><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>fish-audio/s2.1-pro-free:free</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><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></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><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>b347db033a6549378b48d00acb0d06cd</div><div>الحد الأدنى للطول: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><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, pcm</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"known\"><span class=\"card-cell-label\">القيمة الافتراضية</span>pcm</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>object</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><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>content_type</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>application/json</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>model, input, voice</td></tr><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></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></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.</p><dl data-price-conditions><dt>الوضع السريع</dt><dd>غير محدد <span class=\"note-s\">عند اختيار الوضع السريع</span></dd><dt>الوضع المرن</dt><dd>غير محدد <span class=\"note-s\">عند اختيار وضع flex</span></dd><dt>أقصى جهد للاستدلال</dt><dd>غير محدد <span class=\"note-s\">عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال</span></dd></dl></div><div data-declared-tariff-pricing><h4>تعرفات Ailoot</h4><h4>الأسعار حسب الإعدادات</h4><p class=\"note-s\">طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>جدول التعرفة</th><th>كمية الفوترة</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>التعرفات الأساسية للرموز</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>التعرفة الأساسية</td><td data-cell-label=\"كمية الفوترة\"><span class=\"card-cell-label\">كمية الفوترة</span>—</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإدخال · رموز الإدخال</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإخراج · رموز الإخراج</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · قراءة ذاكرة التخزين المؤقت</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div></td></tr><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>لكل طلب</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>—</td><td data-cell-label=\"كمية الفوترة\"><span class=\"card-cell-label\">كمية الفوترة</span>طلب واحد</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإدخال</span> <b>$0</b> <span class=\"price-unit\">لكل طلب</span></div></td></tr></tbody></table></div></div><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 Ultra · الكلام</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1359-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1359-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-1359-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1359-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s2.1-pro-free:free&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">استلام النتائج وحفظها</h3><h4>Ailoot Ultra · الكلام</h4><p class=\"note-s\">الصوت الثنائي كاملاً أو استجابة audio_url الأصلية، والترويسات، وكل أصل مملوك لك.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>عمليات أخرى لقراءة المحتوى</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1360-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-1360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1360-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.</p><p class=\"note-s\">احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs2.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs2.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2.1-pro-free:free",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2.1-pro-free%3Afree",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "الصوت الثنائي كاملاً أو استجابة audio_url الأصلية، والترويسات، وكل أصل مملوك لك."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro-free:free"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2.1-pro-free:free"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2.1-pro-free:free",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2.1-pro-free:free', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "الكلام",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": 0
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s2.1-pro-free:free",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "05b97fbf57681de5366d7133d372a9bf0d64d476bf3317f76cc55bb24c0da37e",
    "input_html_sha256": "172bbc5e3b747abb0418c36eb2d8e41a44da91a4b7f547dde802f86e031fb25c",
    "private_audit_sha256": "0612543a2bf85433bb58bb5c269fc6e2407112719d9db997ef076f0acda24c4d",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/fish-audio-s2-1-pro-free-u003a-free/",
    "description": "S2.1 Pro Free هو إصدار التطوير من نموذج الكلام S2.1 لدى Fish Audio للسرد والإخراج الصوتي الموجّه والحوار متعدد المتحدثين. يشارك النموذج قدرات التوليد الصوتي للاختبار وبناء النماذج الأولية.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/fish-audio-s2-1-pro-free-u003a-free/index.md",
    "title": "Fish Audio: S2.1 Pro Free (free) — Ailoot",
    "url": "https://ailoot.ai/models/ar/fish-audio-s2-1-pro-free-u003a-free/"
  },
  "rawModel": {
    "about": "S2.1 Pro Free هو إصدار Fish Audio الموجّه للمطورين من نموذج تحويل النص إلى كلام S2.1. يشارك S2.1 Pro النموذج الأساسي وقدرات التوليد الجوهرية: كلامًا معبّرًا متعدد اللغات، وتوجيهات أداء باللغة الطبيعية، وحوارًا أصليًا متعدد المتحدثين. دوره الاختبار وبناء النماذج الأولية والتطوير ومسارات التطبيقات الأصغر.\n\nلنموذج أولي لمساعد صوتي، ابدأ برد نموذجي كامل وقيّم صوته قبل اختبار النص الذي يصل تدريجيًا. لمنتج تعليمي، أعد شرحًا قصيرًا بالمصطلحات الدقيقة وقراءات الأرقام التي يحتاجها المستمع. لنموذج حوار أولي، عرّف المتحدثين ومراجع أصواتهم قبل إضافة توجيهات الأداء. تطوّر هذه الخطوات مخرجًا صوتيًا وتدفقًا للتطبيق حوله، بدل تحميل طلب التوليد مسؤولية المحادثة بأكملها.\n\nاكتب الكلمات التي ينبغي نطقها فعليًا، ثم ضع توجيهًا مباشرة قبل المقطع الذي ينبغي تغيير أدائه. يمكن للتوجيهات بين أقواس مربعة أن تعبّر عن همس أو وقفة أو رد فعل أو تأكيد أو أسلوب إلقاء مفتوح الوصف. ضع التغيير في وسط الجملة حيث يحتاج إليه الأداء، وأتبع التوجيهات الوصفية بكلام فعلي. يفصل موجز الشرح المفيد بين صياغته الواقعية وبين الدفء أو السرعة أو التأكيد المطلوب للمستمع.\n\nلمتحدث واحد، اختر معرّف صوت محفوظًا أو قدّم تسجيلًا مرجعيًا مع نصه المفرّغ. يوصي دليل النطق لدى المنتج بعينة نقية مدتها ١٠–٣٠ ثانية لتهيئة الصوت الفورية. اختر مرجعًا بنبرة وجودة تسجيل تناسبان النص، واحتفظ بالمرجع نفسه عبر المقاطع المرتبطة. يوفّر المرجع الصوتي صوت المتحدث، بينما يوفّر النص والتوجيهات المضمّنة المحتوى وأداءه.\n\nيستخدم التوليد الأصلي متعدد المتحدثين علامات مثل <|speaker:0|> و<|speaker:1|> مع مصفوفة مرتبة من معرّفات الأصوات أو مجموعات مرجعية منفصلة. حافظ على توافق تسميات المتحدثين الرقمية مع ذلك الترتيب. في حوار تعليمي، اكتب جملة كل متحدث وضع توجيه الأداء بعد علامة المتحدث في موضعه المناسب. يولّد ذلك حوارًا ضمن طلب واحد؛ وهو مسار مختلف عن مقاطع S1 المنفصلة أحادية المتحدث وتجميعها لاحقًا.\n\nيتيح مسار المنتج إخراج MP3 وWAV وPCM الخام وOpus، ويكون MP3 هو الافتراضي. يدعم MP3 معدلات ٦٤ و١٢٨ و١٩٢ كيلوبت/ثانية؛ ويستخدم WAV وPCM صيغ العينات الأحادية ذات ١٦ بت الموثقة، بينما يستخدم Opus تردد ٤٨ كيلوهرتز. اختر الصيغة لملف سرد محفوظ أو تشغيل متدفق أو سلسلة معالجة صوتية لاحقة. احتفظ بالنص الكامل واختيار الصوت مع الصوت، حتى يستهدف تعديل لاحق جملة واحدة دون فقدان الأداء المقصود.\n\nيمكن تعديل السرعة من 0.5 إلى 2.0 مع عناصر تحكم في مستوى الصوت. توسّع تسوية النص الأرقام الإنجليزية والصينية لقراءتها طبيعيًا. تكون تسوية جهارة الإخراج true افتراضيًا وتُطبّق على عائلة S2؛ ولم يكن للحقل نفسه تأثير في S1. لا يغيّر repetition_penalty الخاص بـS1 صوت S2.1 Pro، لذلك ينبغي ألا يُعامل إعداد قديم على أنه عنصر تحكم فعّال لهذا النموذج. راجع الأصوات والكلمات المتكررة مباشرة، بدل الاعتماد على معامل منقول لإثبات النتيجة.\n\nتُعالج النصوص الأطول في أجزاء. يتراوح طول الجزء الموثق بين ١٠٠ و٣٠٠، ويمثل max_new_tokens ميزانية رموز صوتية لكل جزء، وليس ضمانًا للمدة الإجمالية. يمكن للتهيئة بالجزء السابق أن تنقل سياق الصوت إلى الأمام. يصف مسار التسليم لدى المنتج صوتًا كاملًا وأجزاء صوتية متزايدة وتدفقًا مباشرًا للنص عندما يصل تدريجيًا. اختر طريقة استهلاك النتائج للتطبيق، واحتفظ بسياق نصي كافٍ لنطق المقطع التالي ونبرته.\n\nللحصول على مخرج نهائي مفيد، استمع بحثًا عن كلمات محذوفة أو مكررة، ونطق الأرقام، وتغييرات المتحدثين، والوقفات، وشدة التوجيهات. قد تفسّر المراجع الصوتية المختلفة الإشارة بدرجات متفاوتة، لذا ابدأ بجملة بسيطة موجّهة قبل إضافة وسوم متنافسة. في العمل متعدد اللغات، قدّم النص باللغة المستهدفة بدل مطالبة نموذج الكلام بابتكار محتواه أو ترجمته. يغيّر التنقيح المركّز الجملة أو الإشارة أو المرجع المسؤول عن عدم التطابق، مع الاحتفاظ بأجزاء الأداء التي تلائم الموجز بالفعل.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ],
        "summary": "التسعير الكامل للتكوين في التفاصيل."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s2.1-pro-free:free",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "الصوت الثنائي كاملاً أو استجابة audio_url الأصلية، والترويسات، وكل أصل مملوك لك."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro-free:free"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2.1-pro-free:free"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2.1-pro-free:free",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2.1-pro-free:free', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "الكلام",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": 0
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s2.1-pro-free:free",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2.1 Pro Free (free)",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "S2.1 Pro Free هو إصدار التطوير من نموذج الكلام S2.1 لدى Fish Audio للسرد والإخراج الصوتي الموجّه والحوار متعدد المتحدثين. يشارك النموذج قدرات التوليد الصوتي للاختبار وبناء النماذج الأولية."
  },
  "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": "S2.1 Pro Free هو إصدار التطوير من نموذج الكلام S2.1 لدى Fish Audio للسرد والإخراج الصوتي الموجّه والحوار متعدد المتحدثين. يشارك النموذج قدرات التوليد الصوتي للاختبار وبناء النماذج الأولية.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5c820bf7cad7f060499274ba2b3d035972600a0a431ad33d734047893ee6aa01",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "42fcd5f441e7f89301808b7389b6ff432fa1c38c5aeb2be50307f9cc6af6a226"
}
