{
  "aboutHtml": "<p>Transcribe 1 هو نموذج Fish Audio العام لتحويل الكلام إلى نص للتسجيلات القصيرة. يقبل ملفًا صوتيًا ويعيد الكلمات المتعرّف عليها كنص، مع مدة التسجيل ومقاطع موقّتة اختيارية ومعلومات اللغة عند معرفتها. يفيد النموذج لملاحظة صوتية قصيرة أو تعليمات منطوقة أو مقتطف من تسجيل أو مقطع صوتي يحتاج تمثيلًا نصيًا مقروءًا.</p><p>يحتفظ مسار توضيحي للملاحظات الصوتية بالتسجيل مع تفريغه الكامل ومعرّف المقطع الأصلي. تستطيع خطوة لاحقة في التطبيق البحث في النص أو تنظيم الملاحظة أو إعداد ملخص مع الحفاظ على المصدر المنطوق. للأوامر، يزوّد التفريغ التطبيق بالكلمات المتعرّف عليها؛ وأي إجراء خطوة منفصلة للتفسير والتنفيذ. لمقتطف مقابلة، سجّل موضع المقطع في الصوت الكامل حتى يمكن التحقق من الاقتباس في موقعه الصحيح.</p><p>يقبل المنتج WAV وMP3 وAAC بما فيه M4A/MP4 وFLAC وOgg الذي يحتوي Opus أو Vorbis. ينبغي تحويل تسجيلات المتصفح بصيغة WebM إلى Ogg/Opus أو MP3 أو WAV لهذا النموذج؛ وتوثّق Pro دعمًا أصليًا لحاويات إضافية. قدّم ملفًا صوتيًا واحدًا لكل طلب. يبلغ حد الطلب الموثق للنموذج الأساسي ٥٠ MiB، مع إبقاء ملفات MP3 وOpus دون ٢٥ MiB. حجم الملف وطول التسجيل اعتباران مختلفان: قد يقع الملف المضغوط ضمن حد الرفع مع استغراقه وقتًا طويلًا جدًا للمعالجة.</p><p>صُمّم Transcribe 1 للتسجيلات القصيرة. يوصي المنتج بـPro للصوت الأطول من بضع دقائق؛ وقد يفشل طلب طويل للنموذج الأساسي إذا تجاوز حد زمن المعالجة. عند إعداد مصدر أطول لتفريغ مقاطع قصيرة، احتفظ بإزاحة بداية كل مقطع وتأكد من أن التفريغ المعاد يغطي المقطع كاملًا قبل جمع النتائج. أضف الإزاحة الأصلية إلى أزمنة المقاطع المحلية ليظل التنقل مرتبطًا بالتسجيل الكامل. ينبغي ألا تُفسَّر إرشادات النموذج الأساسي على أنها سماح Pro المنفصل البالغ ٦٠ دقيقة.</p><p>يتضمن رد المنتج text وduration وsegments. تُعبَّر المدة بالثواني، وينبغي حفظ التفريغ الكامل المقروء بوصفه الصياغة الأساسية للمقطع. الطوابع الزمنية اختيارية: تكون ignore_timestamps بقيمة true افتراضيًا في API المنتج، بينما تطلب false مقاطع على مستوى الكلمات تتضمن النص وأزمنة البداية والنهاية بالثواني. يضيف طلب المحاذاة وقتًا للمعالجة. قد تعكس مصفوفة segments الفارغة تخطي التوقيت أو غياب الكلام أو عدم توافر المحاذاة مؤقتًا، لذا ينبغي ألا تُفسَّر تلقائيًا على أنها تفريغ كامل فارغ.</p><p>تمثل المقاطع عادة كلمات، أو حرفًا أو بضعة أحرف في الصينية واليابانية. يحذف نصها علامات الترقيم، وقد يسوّي قيمة بطريقة تختلف عن التفريغ الكامل؛ فهو ليس نسخة حرفية من الرد المقروء. يمكن أن يكون للمقطع وقتا بداية ونهاية متساويان. استخدم المقاطع للعثور على موضع في التسجيل أو إعداد عرض موقّت، واستخدم النص الكامل عندما تهم الصياغة والترقيم. حافظ على تمييز هذين التمثيلين في المخرج الناتج.</p><p>تُكتشف اللغة تلقائيًا سواء قُدّم تلميح لغة اختياري أم لا. يوثّق المنتج رموز ISO 639-1 بأحرف صغيرة للتلميحات، ويعيد رمز لغة لمنطق التطبيق مع اسم لغة للعرض عند معرفته. يبلّغ الرد عن لغة واحدة، لا كل اللغات في تسجيل ينتقل بينها. احتفظ بصياغة المصدر وبيانات اللغة الوصفية المتاحة مع النتيجة، بدل معاملة طلب التفريغ كعملية ترجمة.</p><p>لمسار ترجمة نصية، اجمع المقاطع الموقّتة المتتالية في وحدات عرض مقروءة بدل إظهار كلمة واحدة كل مرة. مخرج مفيد هو ملف SRT أو WebVTT مرتبط بالمقطع الأصلي، بحدود وحدات تلائم الوقفات وكمية نص مناسبة على الشاشة. تحقق من التوقيت المفقود ومن أن نهاية كل وحدة تأتي بعد بدايتها. تجميع الوحدات وتنسيق الملف خطوتان في التطبيق مبنيتان على المحاذاة المعادة، وينبغي أن تلائم خيارات عرضهما المشغّل والجمهور.</p><p>عناصر التحكم الموثقة في Transcribe 1 هي الصوت وتلميح اللغة واختيار الطوابع الزمنية. علامات المتحدثين في Pro وأدوارهم المنظّمة وعناصر أحداث المشاعر وتلميحات عدد المتحدثين ميزات منفصلة؛ وليست جزءًا من عقد الرد الموثق لهذا النموذج الأساسي. اختر المخرج المطلوب قبل المعالجة: نصًا مقروءًا بسيطًا لملاحظة، أو نصًا مع محاذاة للتنقل أثناء التشغيل والترجمة النصية. يجعل حفظ معرّف المقطع والتفريغ وأي توقيت متاح النتيجة مفيدة لمرحلة التطبيق التالية.</p>",
  "aboutText": "Transcribe 1 هو نموذج Fish Audio العام لتحويل الكلام إلى نص للتسجيلات القصيرة. يقبل ملفًا صوتيًا ويعيد الكلمات المتعرّف عليها كنص، مع مدة التسجيل ومقاطع موقّتة اختيارية ومعلومات اللغة عند معرفتها. يفيد النموذج لملاحظة صوتية قصيرة أو تعليمات منطوقة أو مقتطف من تسجيل أو مقطع صوتي يحتاج تمثيلًا نصيًا مقروءًا.\n\nيحتفظ مسار توضيحي للملاحظات الصوتية بالتسجيل مع تفريغه الكامل ومعرّف المقطع الأصلي. تستطيع خطوة لاحقة في التطبيق البحث في النص أو تنظيم الملاحظة أو إعداد ملخص مع الحفاظ على المصدر المنطوق. للأوامر، يزوّد التفريغ التطبيق بالكلمات المتعرّف عليها؛ وأي إجراء خطوة منفصلة للتفسير والتنفيذ. لمقتطف مقابلة، سجّل موضع المقطع في الصوت الكامل حتى يمكن التحقق من الاقتباس في موقعه الصحيح.\n\nيقبل المنتج WAV وMP3 وAAC بما فيه M4A/MP4 وFLAC وOgg الذي يحتوي Opus أو Vorbis. ينبغي تحويل تسجيلات المتصفح بصيغة WebM إلى Ogg/Opus أو MP3 أو WAV لهذا النموذج؛ وتوثّق Pro دعمًا أصليًا لحاويات إضافية. قدّم ملفًا صوتيًا واحدًا لكل طلب. يبلغ حد الطلب الموثق للنموذج الأساسي ٥٠ MiB، مع إبقاء ملفات MP3 وOpus دون ٢٥ MiB. حجم الملف وطول التسجيل اعتباران مختلفان: قد يقع الملف المضغوط ضمن حد الرفع مع استغراقه وقتًا طويلًا جدًا للمعالجة.\n\nصُمّم Transcribe 1 للتسجيلات القصيرة. يوصي المنتج بـPro للصوت الأطول من بضع دقائق؛ وقد يفشل طلب طويل للنموذج الأساسي إذا تجاوز حد زمن المعالجة. عند إعداد مصدر أطول لتفريغ مقاطع قصيرة، احتفظ بإزاحة بداية كل مقطع وتأكد من أن التفريغ المعاد يغطي المقطع كاملًا قبل جمع النتائج. أضف الإزاحة الأصلية إلى أزمنة المقاطع المحلية ليظل التنقل مرتبطًا بالتسجيل الكامل. ينبغي ألا تُفسَّر إرشادات النموذج الأساسي على أنها سماح Pro المنفصل البالغ ٦٠ دقيقة.\n\nيتضمن رد المنتج text وduration وsegments. تُعبَّر المدة بالثواني، وينبغي حفظ التفريغ الكامل المقروء بوصفه الصياغة الأساسية للمقطع. الطوابع الزمنية اختيارية: تكون ignore_timestamps بقيمة true افتراضيًا في API المنتج، بينما تطلب false مقاطع على مستوى الكلمات تتضمن النص وأزمنة البداية والنهاية بالثواني. يضيف طلب المحاذاة وقتًا للمعالجة. قد تعكس مصفوفة segments الفارغة تخطي التوقيت أو غياب الكلام أو عدم توافر المحاذاة مؤقتًا، لذا ينبغي ألا تُفسَّر تلقائيًا على أنها تفريغ كامل فارغ.\n\nتمثل المقاطع عادة كلمات، أو حرفًا أو بضعة أحرف في الصينية واليابانية. يحذف نصها علامات الترقيم، وقد يسوّي قيمة بطريقة تختلف عن التفريغ الكامل؛ فهو ليس نسخة حرفية من الرد المقروء. يمكن أن يكون للمقطع وقتا بداية ونهاية متساويان. استخدم المقاطع للعثور على موضع في التسجيل أو إعداد عرض موقّت، واستخدم النص الكامل عندما تهم الصياغة والترقيم. حافظ على تمييز هذين التمثيلين في المخرج الناتج.\n\nتُكتشف اللغة تلقائيًا سواء قُدّم تلميح لغة اختياري أم لا. يوثّق المنتج رموز ISO 639-1 بأحرف صغيرة للتلميحات، ويعيد رمز لغة لمنطق التطبيق مع اسم لغة للعرض عند معرفته. يبلّغ الرد عن لغة واحدة، لا كل اللغات في تسجيل ينتقل بينها. احتفظ بصياغة المصدر وبيانات اللغة الوصفية المتاحة مع النتيجة، بدل معاملة طلب التفريغ كعملية ترجمة.\n\nلمسار ترجمة نصية، اجمع المقاطع الموقّتة المتتالية في وحدات عرض مقروءة بدل إظهار كلمة واحدة كل مرة. مخرج مفيد هو ملف SRT أو WebVTT مرتبط بالمقطع الأصلي، بحدود وحدات تلائم الوقفات وكمية نص مناسبة على الشاشة. تحقق من التوقيت المفقود ومن أن نهاية كل وحدة تأتي بعد بدايتها. تجميع الوحدات وتنسيق الملف خطوتان في التطبيق مبنيتان على المحاذاة المعادة، وينبغي أن تلائم خيارات عرضهما المشغّل والجمهور.\n\nعناصر التحكم الموثقة في Transcribe 1 هي الصوت وتلميح اللغة واختيار الطوابع الزمنية. علامات المتحدثين في Pro وأدوارهم المنظّمة وعناصر أحداث المشاعر وتلميحات عدد المتحدثين ميزات منفصلة؛ وليست جزءًا من عقد الرد الموثق لهذا النموذج الأساسي. اختر المخرج المطلوب قبل المعالجة: نصًا مقروءًا بسيطًا لملاحظة، أو نصًا مع محاذاة للتنقل أثناء التشغيل والترجمة النصية. يجعل حفظ معرّف المقطع والتفريغ وأي توقيت متاح النتيجة مفيدة لمرحلة التطبيق التالية.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ef7c41c9c2ccc64b097c5072cea2b6bb19a2d2b25489361c452561559f3e9fb4",
    "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: Transcribe 1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/transcribe-1</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|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1\">التعرّف</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\">يحوّل Transcribe 1 التسجيلات الصوتية القصيرة إلى نص مع كشف تلقائي للغة وطوابع زمنية اختيارية على مستوى الكلمات. استخدم التفريغ للملاحظات الصوتية أو المقاطع القابلة للبحث أو إعداد الترجمة النصية، مع فصل المقاطع الموقّتة عن النص الكامل المقروء.</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>Transcribe 1 هو نموذج Fish Audio العام لتحويل الكلام إلى نص للتسجيلات القصيرة. يقبل ملفًا صوتيًا ويعيد الكلمات المتعرّف عليها كنص، مع مدة التسجيل ومقاطع موقّتة اختيارية ومعلومات اللغة عند معرفتها. يفيد النموذج لملاحظة صوتية قصيرة أو تعليمات منطوقة أو مقتطف من تسجيل أو مقطع صوتي يحتاج تمثيلًا نصيًا مقروءًا.</p><p>يحتفظ مسار توضيحي للملاحظات الصوتية بالتسجيل مع تفريغه الكامل ومعرّف المقطع الأصلي. تستطيع خطوة لاحقة في التطبيق البحث في النص أو تنظيم الملاحظة أو إعداد ملخص مع الحفاظ على المصدر المنطوق. للأوامر، يزوّد التفريغ التطبيق بالكلمات المتعرّف عليها؛ وأي إجراء خطوة منفصلة للتفسير والتنفيذ. لمقتطف مقابلة، سجّل موضع المقطع في الصوت الكامل حتى يمكن التحقق من الاقتباس في موقعه الصحيح.</p><p>يقبل المنتج WAV وMP3 وAAC بما فيه M4A/MP4 وFLAC وOgg الذي يحتوي Opus أو Vorbis. ينبغي تحويل تسجيلات المتصفح بصيغة WebM إلى Ogg/Opus أو MP3 أو WAV لهذا النموذج؛ وتوثّق Pro دعمًا أصليًا لحاويات إضافية. قدّم ملفًا صوتيًا واحدًا لكل طلب. يبلغ حد الطلب الموثق للنموذج الأساسي ٥٠ MiB، مع إبقاء ملفات MP3 وOpus دون ٢٥ MiB. حجم الملف وطول التسجيل اعتباران مختلفان: قد يقع الملف المضغوط ضمن حد الرفع مع استغراقه وقتًا طويلًا جدًا للمعالجة.</p><p>صُمّم Transcribe 1 للتسجيلات القصيرة. يوصي المنتج بـPro للصوت الأطول من بضع دقائق؛ وقد يفشل طلب طويل للنموذج الأساسي إذا تجاوز حد زمن المعالجة. عند إعداد مصدر أطول لتفريغ مقاطع قصيرة، احتفظ بإزاحة بداية كل مقطع وتأكد من أن التفريغ المعاد يغطي المقطع كاملًا قبل جمع النتائج. أضف الإزاحة الأصلية إلى أزمنة المقاطع المحلية ليظل التنقل مرتبطًا بالتسجيل الكامل. ينبغي ألا تُفسَّر إرشادات النموذج الأساسي على أنها سماح Pro المنفصل البالغ ٦٠ دقيقة.</p><p>يتضمن رد المنتج text وduration وsegments. تُعبَّر المدة بالثواني، وينبغي حفظ التفريغ الكامل المقروء بوصفه الصياغة الأساسية للمقطع. الطوابع الزمنية اختيارية: تكون ignore_timestamps بقيمة true افتراضيًا في API المنتج، بينما تطلب false مقاطع على مستوى الكلمات تتضمن النص وأزمنة البداية والنهاية بالثواني. يضيف طلب المحاذاة وقتًا للمعالجة. قد تعكس مصفوفة segments الفارغة تخطي التوقيت أو غياب الكلام أو عدم توافر المحاذاة مؤقتًا، لذا ينبغي ألا تُفسَّر تلقائيًا على أنها تفريغ كامل فارغ.</p><p>تمثل المقاطع عادة كلمات، أو حرفًا أو بضعة أحرف في الصينية واليابانية. يحذف نصها علامات الترقيم، وقد يسوّي قيمة بطريقة تختلف عن التفريغ الكامل؛ فهو ليس نسخة حرفية من الرد المقروء. يمكن أن يكون للمقطع وقتا بداية ونهاية متساويان. استخدم المقاطع للعثور على موضع في التسجيل أو إعداد عرض موقّت، واستخدم النص الكامل عندما تهم الصياغة والترقيم. حافظ على تمييز هذين التمثيلين في المخرج الناتج.</p><p>تُكتشف اللغة تلقائيًا سواء قُدّم تلميح لغة اختياري أم لا. يوثّق المنتج رموز ISO 639-1 بأحرف صغيرة للتلميحات، ويعيد رمز لغة لمنطق التطبيق مع اسم لغة للعرض عند معرفته. يبلّغ الرد عن لغة واحدة، لا كل اللغات في تسجيل ينتقل بينها. احتفظ بصياغة المصدر وبيانات اللغة الوصفية المتاحة مع النتيجة، بدل معاملة طلب التفريغ كعملية ترجمة.</p><p>لمسار ترجمة نصية، اجمع المقاطع الموقّتة المتتالية في وحدات عرض مقروءة بدل إظهار كلمة واحدة كل مرة. مخرج مفيد هو ملف SRT أو WebVTT مرتبط بالمقطع الأصلي، بحدود وحدات تلائم الوقفات وكمية نص مناسبة على الشاشة. تحقق من التوقيت المفقود ومن أن نهاية كل وحدة تأتي بعد بدايتها. تجميع الوحدات وتنسيق الملف خطوتان في التطبيق مبنيتان على المحاذاة المعادة، وينبغي أن تلائم خيارات عرضهما المشغّل والجمهور.</p><p>عناصر التحكم الموثقة في Transcribe 1 هي الصوت وتلميح اللغة واختيار الطوابع الزمنية. علامات المتحدثين في Pro وأدوارهم المنظّمة وعناصر أحداث المشاعر وتلميحات عدد المتحدثين ميزات منفصلة؛ وليست جزءًا من عقد الرد الموثق لهذا النموذج الأساسي. اختر المخرج المطلوب قبل المعالجة: نصًا مقروءًا بسيطًا لملاحظة، أو نصًا مع محاذاة للتنقل أثناء التشغيل والترجمة النصية. يجعل حفظ معرّف المقطع والتفريغ وأي توقيت متاح النتيجة مفيدة لمرحلة التطبيق التالية.</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/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>audio</code></dd></div><div><dt>الإخراج</dt><dd><code>text</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/transcribe-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\">input_audio</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_audio</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>audio</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_conditions</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>يقرأ المثال ملف PCM WAV الفعلي غير الفارغ لديك، ويُرمّز جميع بايتات الملف بترميز base64، ويرسل input_audio.format بالقيمة wav.</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.0002</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-1361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1361-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · ملف WAV الفعلي والنتيجة الأصلية كاملة</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-1361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;fish-audio/transcribe-1&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\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\">متن الاستجابة الأصلي كاملاً، والحالة والترويسات المُمرَّرة. لا يضيف هذا المعالج بنية JSON عامة أو حقل نص أو حاوية مهمة.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</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 الفعلية وبالاستجابة كاملة. اقرأ الأصول الأصلية المملوكة لك وعناوين URL الدقيقة الموقّعة لمحتواها؛ ولا تعِد إرسال طلب إنشاء غير مؤكد النتيجة مطلقاً.</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\">text (when present)</code></th><td data-cell-label=\"النوع\" data-field-type><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\">usage (when present)</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span></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>متن JSON أو معرّف النموذج المعتمد الصريح غير صالح.</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>⁦401⁩ · <code>authentication_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>مفتاح API الخاص بـAiloot غير صالح.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>استخدم مفتاح API المخوَّل لك في Ailoot.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦403⁩ · <code>permission_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>⁦404⁩ · <code>not_found_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>⁦422⁩ · <code>price_unavailable</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>⁦503⁩ · <code></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>⁦502⁩ · <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=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1",
      "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.",
            "errors": [
              {
                "code": null,
                "condition": "متن JSON أو معرّف النموذج المعتمد الصريح غير صالح.",
                "http_status": 400,
                "recovery": "احتفظ بالاستجابة وصحّح حقل الطلب المشار إليه.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "مفتاح API الخاص بـAiloot غير صالح.",
                "http_status": 401,
                "recovery": "استخدم مفتاح API المخوَّل لك في Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "مجموعة المفتاح غير مخوّلة لاستخدام هذه الطريقة.",
                "http_status": 403,
                "recovery": "احتفظ بتفاصيل الخطأ المُعادة.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "لا يوجد مسار مسموح به للطريقة المختارة.",
                "http_status": 404,
                "recovery": "احتفظ بتفاصيل الخطأ المُعادة.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "يتعذر على التعرفة المقبولة الحصول على كمية الإدخال المطلوبة أو حدّها.",
                "http_status": 422,
                "recovery": "احتفظ بالاستجابة؛ واستخدم صيغة تمثيل الإدخال التي تتطلبها التعرفة المقبولة.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "التخزين المطلوب أو المسار أو سعر الطريقة أو حجز الرصيد غير متاح.",
                "http_status": 503,
                "recovery": "احتفظ بالاستجابة الأصلية كاملة. حجز الرصيد غير المؤكد لا يمنح الإذن بإعادة الإرسال.",
                "type": null
              },
              {
                "code": null,
                "condition": "تتطلب النتيجة الأصلية أو الاستخدام أو التسوية التحقق.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "احتفظ بمعرّف الطلب الفعلي وبالاستجابة الأصلية. اقرأ السجل الموجود المملوك لك؛ ولا تعِد إرسال طلب الإنشاء.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID الفعلية وبالاستجابة كاملة. اقرأ الأصول الأصلية المملوكة لك وعناوين URL الدقيقة الموقّعة لمحتواها؛ ولا تعِد إرسال طلب إنشاء غير مؤكد النتيجة مطلقاً."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "متن الاستجابة الأصلي كاملاً، والحالة والترويسات المُمرَّرة. لا يضيف هذا المعالج بنية JSON عامة أو حقل نص أو حاوية مهمة."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "يقرأ المثال ملف PCM WAV الفعلي غير الفارغ لديك، ويُرمّز جميع بايتات الملف بترميز base64، ويرسل input_audio.format بالقيمة wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الدقيقة من سجل وسائط موجود مملوك لك",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "تفريغ صوتي",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "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.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/transcribe-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0b193d79e25b198a8e0c92df0751d83bbee6eec6e85835a420aa4c1b66378964",
    "input_html_sha256": "811e3dd269c57ce0eeafc05708f8f115b9c24e3047c86d6e29948a269ddd4478",
    "private_audit_sha256": "2c55b16bab92adfc964f132d5a08d989cab85c82f35aa0f9979bd868c4ad55da",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/fish-audio-transcribe-1/",
    "description": "يحوّل Transcribe 1 التسجيلات الصوتية القصيرة إلى نص مع كشف تلقائي للغة وطوابع زمنية اختيارية على مستوى الكلمات. استخدم التفريغ للملاحظات الصوتية أو المقاطع القابلة للبحث أو إعداد الترجمة النصية، مع فصل المقاطع الموقّتة عن النص الكامل المقروء.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/fish-audio-transcribe-1/index.md",
    "title": "Fish Audio: Transcribe 1 — Ailoot",
    "url": "https://ailoot.ai/models/ar/fish-audio-transcribe-1/"
  },
  "rawModel": {
    "about": "Transcribe 1 هو نموذج Fish Audio العام لتحويل الكلام إلى نص للتسجيلات القصيرة. يقبل ملفًا صوتيًا ويعيد الكلمات المتعرّف عليها كنص، مع مدة التسجيل ومقاطع موقّتة اختيارية ومعلومات اللغة عند معرفتها. يفيد النموذج لملاحظة صوتية قصيرة أو تعليمات منطوقة أو مقتطف من تسجيل أو مقطع صوتي يحتاج تمثيلًا نصيًا مقروءًا.\n\nيحتفظ مسار توضيحي للملاحظات الصوتية بالتسجيل مع تفريغه الكامل ومعرّف المقطع الأصلي. تستطيع خطوة لاحقة في التطبيق البحث في النص أو تنظيم الملاحظة أو إعداد ملخص مع الحفاظ على المصدر المنطوق. للأوامر، يزوّد التفريغ التطبيق بالكلمات المتعرّف عليها؛ وأي إجراء خطوة منفصلة للتفسير والتنفيذ. لمقتطف مقابلة، سجّل موضع المقطع في الصوت الكامل حتى يمكن التحقق من الاقتباس في موقعه الصحيح.\n\nيقبل المنتج WAV وMP3 وAAC بما فيه M4A/MP4 وFLAC وOgg الذي يحتوي Opus أو Vorbis. ينبغي تحويل تسجيلات المتصفح بصيغة WebM إلى Ogg/Opus أو MP3 أو WAV لهذا النموذج؛ وتوثّق Pro دعمًا أصليًا لحاويات إضافية. قدّم ملفًا صوتيًا واحدًا لكل طلب. يبلغ حد الطلب الموثق للنموذج الأساسي ٥٠ MiB، مع إبقاء ملفات MP3 وOpus دون ٢٥ MiB. حجم الملف وطول التسجيل اعتباران مختلفان: قد يقع الملف المضغوط ضمن حد الرفع مع استغراقه وقتًا طويلًا جدًا للمعالجة.\n\nصُمّم Transcribe 1 للتسجيلات القصيرة. يوصي المنتج بـPro للصوت الأطول من بضع دقائق؛ وقد يفشل طلب طويل للنموذج الأساسي إذا تجاوز حد زمن المعالجة. عند إعداد مصدر أطول لتفريغ مقاطع قصيرة، احتفظ بإزاحة بداية كل مقطع وتأكد من أن التفريغ المعاد يغطي المقطع كاملًا قبل جمع النتائج. أضف الإزاحة الأصلية إلى أزمنة المقاطع المحلية ليظل التنقل مرتبطًا بالتسجيل الكامل. ينبغي ألا تُفسَّر إرشادات النموذج الأساسي على أنها سماح Pro المنفصل البالغ ٦٠ دقيقة.\n\nيتضمن رد المنتج text وduration وsegments. تُعبَّر المدة بالثواني، وينبغي حفظ التفريغ الكامل المقروء بوصفه الصياغة الأساسية للمقطع. الطوابع الزمنية اختيارية: تكون ignore_timestamps بقيمة true افتراضيًا في API المنتج، بينما تطلب false مقاطع على مستوى الكلمات تتضمن النص وأزمنة البداية والنهاية بالثواني. يضيف طلب المحاذاة وقتًا للمعالجة. قد تعكس مصفوفة segments الفارغة تخطي التوقيت أو غياب الكلام أو عدم توافر المحاذاة مؤقتًا، لذا ينبغي ألا تُفسَّر تلقائيًا على أنها تفريغ كامل فارغ.\n\nتمثل المقاطع عادة كلمات، أو حرفًا أو بضعة أحرف في الصينية واليابانية. يحذف نصها علامات الترقيم، وقد يسوّي قيمة بطريقة تختلف عن التفريغ الكامل؛ فهو ليس نسخة حرفية من الرد المقروء. يمكن أن يكون للمقطع وقتا بداية ونهاية متساويان. استخدم المقاطع للعثور على موضع في التسجيل أو إعداد عرض موقّت، واستخدم النص الكامل عندما تهم الصياغة والترقيم. حافظ على تمييز هذين التمثيلين في المخرج الناتج.\n\nتُكتشف اللغة تلقائيًا سواء قُدّم تلميح لغة اختياري أم لا. يوثّق المنتج رموز ISO 639-1 بأحرف صغيرة للتلميحات، ويعيد رمز لغة لمنطق التطبيق مع اسم لغة للعرض عند معرفته. يبلّغ الرد عن لغة واحدة، لا كل اللغات في تسجيل ينتقل بينها. احتفظ بصياغة المصدر وبيانات اللغة الوصفية المتاحة مع النتيجة، بدل معاملة طلب التفريغ كعملية ترجمة.\n\nلمسار ترجمة نصية، اجمع المقاطع الموقّتة المتتالية في وحدات عرض مقروءة بدل إظهار كلمة واحدة كل مرة. مخرج مفيد هو ملف SRT أو WebVTT مرتبط بالمقطع الأصلي، بحدود وحدات تلائم الوقفات وكمية نص مناسبة على الشاشة. تحقق من التوقيت المفقود ومن أن نهاية كل وحدة تأتي بعد بدايتها. تجميع الوحدات وتنسيق الملف خطوتان في التطبيق مبنيتان على المحاذاة المعادة، وينبغي أن تلائم خيارات عرضهما المشغّل والجمهور.\n\nعناصر التحكم الموثقة في Transcribe 1 هي الصوت وتلميح اللغة واختيار الطوابع الزمنية. علامات المتحدثين في Pro وأدوارهم المنظّمة وعناصر أحداث المشاعر وتلميحات عدد المتحدثين ميزات منفصلة؛ وليست جزءًا من عقد الرد الموثق لهذا النموذج الأساسي. اختر المخرج المطلوب قبل المعالجة: نصًا مقروءًا بسيطًا لملاحظة، أو نصًا مع محاذاة للتنقل أثناء التشغيل والترجمة النصية. يجعل حفظ معرّف المقطع والتفريغ وأي توقيت متاح النتيجة مفيدة لمرحلة التطبيق التالية.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "التسعير الكامل للتكوين في التفاصيل."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1",
    "input": [
      "audio"
    ],
    "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.",
            "errors": [
              {
                "code": null,
                "condition": "متن JSON أو معرّف النموذج المعتمد الصريح غير صالح.",
                "http_status": 400,
                "recovery": "احتفظ بالاستجابة وصحّح حقل الطلب المشار إليه.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "مفتاح API الخاص بـAiloot غير صالح.",
                "http_status": 401,
                "recovery": "استخدم مفتاح API المخوَّل لك في Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "مجموعة المفتاح غير مخوّلة لاستخدام هذه الطريقة.",
                "http_status": 403,
                "recovery": "احتفظ بتفاصيل الخطأ المُعادة.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "لا يوجد مسار مسموح به للطريقة المختارة.",
                "http_status": 404,
                "recovery": "احتفظ بتفاصيل الخطأ المُعادة.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "يتعذر على التعرفة المقبولة الحصول على كمية الإدخال المطلوبة أو حدّها.",
                "http_status": 422,
                "recovery": "احتفظ بالاستجابة؛ واستخدم صيغة تمثيل الإدخال التي تتطلبها التعرفة المقبولة.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "التخزين المطلوب أو المسار أو سعر الطريقة أو حجز الرصيد غير متاح.",
                "http_status": 503,
                "recovery": "احتفظ بالاستجابة الأصلية كاملة. حجز الرصيد غير المؤكد لا يمنح الإذن بإعادة الإرسال.",
                "type": null
              },
              {
                "code": null,
                "condition": "تتطلب النتيجة الأصلية أو الاستخدام أو التسوية التحقق.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "احتفظ بمعرّف الطلب الفعلي وبالاستجابة الأصلية. اقرأ السجل الموجود المملوك لك؛ ولا تعِد إرسال طلب الإنشاء.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID الفعلية وبالاستجابة كاملة. اقرأ الأصول الأصلية المملوكة لك وعناوين URL الدقيقة الموقّعة لمحتواها؛ ولا تعِد إرسال طلب إنشاء غير مؤكد النتيجة مطلقاً."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "متن الاستجابة الأصلي كاملاً، والحالة والترويسات المُمرَّرة. لا يضيف هذا المعالج بنية JSON عامة أو حقل نص أو حاوية مهمة."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "يقرأ المثال ملف PCM WAV الفعلي غير الفارغ لديك، ويُرمّز جميع بايتات الملف بترميز base64، ويرسل input_audio.format بالقيمة wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الدقيقة من سجل وسائط موجود مملوك لك",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "تفريغ صوتي",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "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.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/transcribe-1",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "يحوّل Transcribe 1 التسجيلات الصوتية القصيرة إلى نص مع كشف تلقائي للغة وطوابع زمنية اختيارية على مستوى الكلمات. استخدم التفريغ للملاحظات الصوتية أو المقاطع القابلة للبحث أو إعداد الترجمة النصية، مع فصل المقاطع الموقّتة عن النص الكامل المقروء."
  },
  "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": "يحوّل Transcribe 1 التسجيلات الصوتية القصيرة إلى نص مع كشف تلقائي للغة وطوابع زمنية اختيارية على مستوى الكلمات. استخدم التفريغ للملاحظات الصوتية أو المقاطع القابلة للبحث أو إعداد الترجمة النصية، مع فصل المقاطع الموقّتة عن النص الكامل المقروء.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3b925d8fa01c9e8d559761a069382cf37773e0f11fe51332c111695c191ab1d6",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "2e8a5caa9af14ed0c9f3125d283156a0de99e81ed6b05908a21b8431f9df9576"
}
