{
  "aboutHtml": "<h4>דיבור מהיר לתשובה אינטראקטיבית</h4><p>Speech 02 Turbo מיועד לסינתזת דיבור אינטראקטיבית. היצרן מתאר שילוב של מהירות עם קצב יציב וצליל טבעי; בין התרחישים: תשובות קוליות, אמירות במשחקים ותוכן אינטראקטיבי. המודל מקבל טקסט ומפיק אודיו של דיבור.</p><h4>בחירת אופי הצליל</h4><p>משפחת Speech 02 מאפשרת לשלב קול, שפה, מבטא ואופי רגשי. Transformer אוטורגרסיבי ומקודד דובר שמאומנים יחד קושרים את גוון הקול לתוכן. אפשר לסנתז טקסט בקול מוכן; יצירת קול משוכפל חדש שייכת להכנה נפרדת.</p><p>המודל בוחר בעצמו אינטונציה רגשית לפי הטקסט או מקבל מצב שהוגדר: שמחה, עצב, כעס, פחד, גועל, הפתעה או רוגע. בנוסף נשלטים המהירות, גובה הצליל והעוצמה, כדי להתאים את האמירה לקצב האינטראקציה הרצוי.</p><h4>שפות וקריאת מילים</h4><p>נתמכים דיבור ברוסית ושפות אחרות, כולל אנגלית, סינית, קנטונזית, יפנית, קוריאנית, צרפתית, גרמנית, ספרדית, פורטוגזית, טורקית, ערבית ואוקראינית. ל־Speech 02 המפרט הנוכחי מחריג בנפרד פרסית, פיליפינית וטמילית.</p><p>אפשר לדייק את ההגייה באמצעות מילון החלפות, ייצוג פונטי בין־לאומי, פיניין סיני ואפשרויות קריאה ביפנית. הפסקות בין החלקים המוקראים מוגדרות בטווח <strong>0,01–99,99 שניות</strong>. משך ההפסקה מוגדר בדיוק של שתי ספרות אחרי הפסיק; הסמנים ממוקמים בין המקטעים המוקראים ולא ברצף זה אחרי זה. המודל מספק מהירות <strong>0,5–2</strong>, עוצמה מעל 0 ועד <strong>10</strong>, ושינוי גובה צליל בין <strong>−12 ל־12</strong>.</p><h4>אודיו להשמעה</h4><p>הקלט הסינכרוני מוגבל לטקסט עם פחות מ־<strong>10 000 תווים</strong>; לנפח מעל 3000 תווים היצרן ממליץ על פלט הדרגתי. יכולות המודל כוללות MP3, WAV, FLAC ו־PCM; בהגדרות הכלליות מתוארים גם Opus ו־G.711 μ-law, עם ערוץ אודיו אחד או שניים.</p><p>כרטיס זה של Ailoot מקבל טקסט ומחזיר דיבור. המהירות של Turbo מתייחסת לייעוד גרסת המודל; משך התשובה המסוימת וזמינות הפורמטים המורחבים נקבעים לפי דרך הפנייה שנבחרה.</p><p>הגדרות אודיו נוספות כוללות קצבי דגימה של <strong>8, 16, 22,05, 24, 32 ו־44,1 קילו־הרץ</strong>. ל־MP3 זמין קצב סיביות של <strong>32, 64, 128 או 256 קילו־ביט לשנייה</strong>. אפשר גם לשנות את גוון הקול ולהחיל אפקט אחד: הד מרחבי, הד אולם, צליל טלפון או קול רובוטי. אפקטים לשינוי קול נתמכים ב־MP3, WAV ו־FLAC בקבלת האודיו בשלמותו, ובפלט זורם רק ב־MP3. פורמטי G.711 μ-law משתמשים בקצב של 8 קילו־הרץ. היכולות האלה מתייחסות להגדרות הסינתזה של MiniMax.</p><p>היצרן מספק סנכרון בין דיבור לטקסט: חותמות זמן לפי משפטים, לפי מילים או לפי מילים בפלט הדרגתי. תוצאה כזו מסייעת להתאים את ההגייה להצגת הטקסט. היכולת הנוספת הזו דורשת תמיכה בפורמט התשובה המתאים.</p>",
  "aboutText": "### דיבור מהיר לתשובה אינטראקטיבית\n\nSpeech 02 Turbo מיועד לסינתזת דיבור אינטראקטיבית. היצרן מתאר שילוב של מהירות עם קצב יציב וצליל טבעי; בין התרחישים: תשובות קוליות, אמירות במשחקים ותוכן אינטראקטיבי. המודל מקבל טקסט ומפיק אודיו של דיבור.\n\n### בחירת אופי הצליל\n\nמשפחת Speech 02 מאפשרת לשלב קול, שפה, מבטא ואופי רגשי. Transformer אוטורגרסיבי ומקודד דובר שמאומנים יחד קושרים את גוון הקול לתוכן. אפשר לסנתז טקסט בקול מוכן; יצירת קול משוכפל חדש שייכת להכנה נפרדת.\n\nהמודל בוחר בעצמו אינטונציה רגשית לפי הטקסט או מקבל מצב שהוגדר: שמחה, עצב, כעס, פחד, גועל, הפתעה או רוגע. בנוסף נשלטים המהירות, גובה הצליל והעוצמה, כדי להתאים את האמירה לקצב האינטראקציה הרצוי.\n\n### שפות וקריאת מילים\n\nנתמכים דיבור ברוסית ושפות אחרות, כולל אנגלית, סינית, קנטונזית, יפנית, קוריאנית, צרפתית, גרמנית, ספרדית, פורטוגזית, טורקית, ערבית ואוקראינית. ל־Speech 02 המפרט הנוכחי מחריג בנפרד פרסית, פיליפינית וטמילית.\n\nאפשר לדייק את ההגייה באמצעות מילון החלפות, ייצוג פונטי בין־לאומי, פיניין סיני ואפשרויות קריאה ביפנית. הפסקות בין החלקים המוקראים מוגדרות בטווח **0,01–99,99 שניות**. משך ההפסקה מוגדר בדיוק של שתי ספרות אחרי הפסיק; הסמנים ממוקמים בין המקטעים המוקראים ולא ברצף זה אחרי זה. המודל מספק מהירות **0,5–2**, עוצמה מעל 0 ועד **10**, ושינוי גובה צליל בין **−12 ל־12**.\n\n### אודיו להשמעה\n\nהקלט הסינכרוני מוגבל לטקסט עם פחות מ־**10 000 תווים**; לנפח מעל 3000 תווים היצרן ממליץ על פלט הדרגתי. יכולות המודל כוללות MP3, WAV, FLAC ו־PCM; בהגדרות הכלליות מתוארים גם Opus ו־G.711 μ-law, עם ערוץ אודיו אחד או שניים.\n\nכרטיס זה של Ailoot מקבל טקסט ומחזיר דיבור. המהירות של Turbo מתייחסת לייעוד גרסת המודל; משך התשובה המסוימת וזמינות הפורמטים המורחבים נקבעים לפי דרך הפנייה שנבחרה.\n\nהגדרות אודיו נוספות כוללות קצבי דגימה של **8, 16, 22,05, 24, 32 ו־44,1 קילו־הרץ**. ל־MP3 זמין קצב סיביות של **32, 64, 128 או 256 קילו־ביט לשנייה**. אפשר גם לשנות את גוון הקול ולהחיל אפקט אחד: הד מרחבי, הד אולם, צליל טלפון או קול רובוטי. אפקטים לשינוי קול נתמכים ב־MP3, WAV ו־FLAC בקבלת האודיו בשלמותו, ובפלט זורם רק ב־MP3. פורמטי G.711 μ-law משתמשים בקצב של 8 קילו־הרץ. היכולות האלה מתייחסות להגדרות הסינתזה של MiniMax.\n\nהיצרן מספק סנכרון בין דיבור לטקסט: חותמות זמן לפי משפטים, לפי מילים או לפי מילים בפלט הדרגתי. תוצאה כזו מסייעת להתאים את ההגייה להצגת הטקסט. היכולת הנוספת הזו דורשת תמיכה בפורמט התשובה המתאים.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "2bf91c8a5c62cddd6ee70c6e7c62e5529b424a9e84f1fae26bc503658d0fd276",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "he",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">speech-02-turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>speech-02-turbo</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Core|speech|/v1/audio/speech|speech-02-turbo\">הקראה</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">Speech-02 Turbo מיועד לסינתזת דיבור מהירה עם קצב יציב וצליל רב־לשוני.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט</dd></div><div><dt>תוצאות</dt><dd>speech</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><h4>דיבור מהיר לתשובה אינטראקטיבית</h4><p>Speech 02 Turbo מיועד לסינתזת דיבור אינטראקטיבית. היצרן מתאר שילוב של מהירות עם קצב יציב וצליל טבעי; בין התרחישים: תשובות קוליות, אמירות במשחקים ותוכן אינטראקטיבי. המודל מקבל טקסט ומפיק אודיו של דיבור.</p><h4>בחירת אופי הצליל</h4><p>משפחת Speech 02 מאפשרת לשלב קול, שפה, מבטא ואופי רגשי. Transformer אוטורגרסיבי ומקודד דובר שמאומנים יחד קושרים את גוון הקול לתוכן. אפשר לסנתז טקסט בקול מוכן; יצירת קול משוכפל חדש שייכת להכנה נפרדת.</p><p>המודל בוחר בעצמו אינטונציה רגשית לפי הטקסט או מקבל מצב שהוגדר: שמחה, עצב, כעס, פחד, גועל, הפתעה או רוגע. בנוסף נשלטים המהירות, גובה הצליל והעוצמה, כדי להתאים את האמירה לקצב האינטראקציה הרצוי.</p><h4>שפות וקריאת מילים</h4><p>נתמכים דיבור ברוסית ושפות אחרות, כולל אנגלית, סינית, קנטונזית, יפנית, קוריאנית, צרפתית, גרמנית, ספרדית, פורטוגזית, טורקית, ערבית ואוקראינית. ל־Speech 02 המפרט הנוכחי מחריג בנפרד פרסית, פיליפינית וטמילית.</p><p>אפשר לדייק את ההגייה באמצעות מילון החלפות, ייצוג פונטי בין־לאומי, פיניין סיני ואפשרויות קריאה ביפנית. הפסקות בין החלקים המוקראים מוגדרות בטווח <strong>0,01–99,99 שניות</strong>. משך ההפסקה מוגדר בדיוק של שתי ספרות אחרי הפסיק; הסמנים ממוקמים בין המקטעים המוקראים ולא ברצף זה אחרי זה. המודל מספק מהירות <strong>0,5–2</strong>, עוצמה מעל 0 ועד <strong>10</strong>, ושינוי גובה צליל בין <strong>−12 ל־12</strong>.</p><h4>אודיו להשמעה</h4><p>הקלט הסינכרוני מוגבל לטקסט עם פחות מ־<strong>10 000 תווים</strong>; לנפח מעל 3000 תווים היצרן ממליץ על פלט הדרגתי. יכולות המודל כוללות MP3, WAV, FLAC ו־PCM; בהגדרות הכלליות מתוארים גם Opus ו־G.711 μ-law, עם ערוץ אודיו אחד או שניים.</p><p>כרטיס זה של Ailoot מקבל טקסט ומחזיר דיבור. המהירות של Turbo מתייחסת לייעוד גרסת המודל; משך התשובה המסוימת וזמינות הפורמטים המורחבים נקבעים לפי דרך הפנייה שנבחרה.</p><p>הגדרות אודיו נוספות כוללות קצבי דגימה של <strong>8, 16, 22,05, 24, 32 ו־44,1 קילו־הרץ</strong>. ל־MP3 זמין קצב סיביות של <strong>32, 64, 128 או 256 קילו־ביט לשנייה</strong>. אפשר גם לשנות את גוון הקול ולהחיל אפקט אחד: הד מרחבי, הד אולם, צליל טלפון או קול רובוטי. אפקטים לשינוי קול נתמכים ב־MP3, WAV ו־FLAC בקבלת האודיו בשלמותו, ובפלט זורם רק ב־MP3. פורמטי G.711 μ-law משתמשים בקצב של 8 קילו־הרץ. היכולות האלה מתייחסות להגדרות הסינתזה של MiniMax.</p><p>היצרן מספק סנכרון בין דיבור לטקסט: חותמות זמן לפי משפטים, לפי מילים או לפי מילים בפלט הדרגתי. תוצאה כזו מסייעת להתאים את ההגייה להצגת הטקסט. היכולת הנוספת הזו דורשת תמיכה בפורמט התשובה המתאים.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot · הקראה</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code></dd></div><div><dt>סוגי פלט</dt><dd><code>speech</code></dd></div><div><dt>פורמט פלט</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>speech-02-turbo</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>אורך מזערי: ⁦1⁩</div><div>אורך מרבי ללא ערך הגבול: ⁦10,000⁩</div><div>יחידה: תווי Unicode</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תבנית: ^[A-Za-z0-9_-]{1,128}$</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>mp3</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b>text_to_speech</b> · נדרש: input</p></details><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_controls</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr></tbody></table></div><p>מחזור חיים: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · ערך task_id שהוחזר בפועל או רשומה בספריית המדיה</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><h4>תעריפי שיטות Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> הקראה</b><code>POST /v1/audio/speech</code></header><dl><div><dt>קלט</dt><dd>⁦‏60.00 ‏$⁩ <em>לכל 1 מיליון תווים</em></dd></div></dl></section><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot · הקראה</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-468-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-468-panel-0\" aria-selected=\"true\" tabindex=\"0\">דוגמת דיבור</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-468-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-468-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}&quot;\nexport AILOOT_TEXT_FILE\n: &quot;${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;speech-02-turbo&quot;, &quot;input&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=text\nimport re\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nif not re.fullmatch(r&quot;[A-Za-z0-9_-]{1,128}&quot;,voice):raise SystemExit(&quot;Set an actual accepted voice ID&quot;)\np[&quot;voice&quot;]=voice\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot · הקראה</h4><p class=\"note-s\">mp3</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.</p><p class=\"note-s\">שמרו את התוצאה הבינארית המלאה ואת הכותרות. אם מוחזרים JSON או פלטים מרובים, שמרו כל פריט נתונים והורידו כל נכס מה־URL החתום שלו שהוחזר בפועל.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">שמרו את operation_id/X-Client-Request-ID המקורי לצורך התאמת רישומים ללא שליחה מחדש; אין נתיב ייעודי לתשאול סטטוס אודיו.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>bytes</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>תקנו את השדות שצוינו לפני בקשת יצירה חדשה.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span><code>server_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=speech-02-turbo&amp;route=Core&amp;caller=speech-02-turbo&amp;fmt=speech\"><code>speech-02-turbo</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=speech-02-turbo&amp;route=Core&amp;caller=speech-02-turbo&amp;fmt=speech\"><code>speech-02-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "speech-02-turbo",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "speech-02-turbo",
        "route_label": "Core"
      },
      "method_key": "Core|speech|/v1/audio/speech|speech-02-turbo",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              }
            ],
            "hints": [
              "MiniMax accepts optionalresponse_formatmp3. Actual voice IDs come from the selected model voice profile.",
              "The facade uses bufferedMP3; provider speed/volume/pitch/sample-rate fields are fixed by the adapter, not callercontrols."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "שמרו את operation_id/X-Client-Request-ID המקורי לצורך התאמת רישומים ללא שליחה מחדש; אין נתיב ייעודי לתשאול סטטוס אודיו."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "שמרו את התוצאה הבינארית המלאה ואת הכותרות. אם מוחזרים JSON או פלטים מרובים, שמרו כל פריט נתונים והורידו כל נכס מה־URL החתום שלו שהוחזר בפועל.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "speech-02-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_length_exclusive": 10000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "תווי Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "voice",
                "pattern": "^[A-Za-z0-9_-]{1,128}$",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "ערך task_id שהוחזר בפועל או רשומה בספריית המדיה",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\n: \"${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"speech-02-turbo\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nimport re\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nif not re.fullmatch(r\"[A-Za-z0-9_-]{1,128}\",voice):raise SystemExit(\"Set an actual accepted voice ID\")\np[\"voice\"]=voice\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "הקראה",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 60,
                "amount_unit": "usd_per_display_unit",
                "key": "tts_million_chars",
                "label": "per 1 million characters",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "speech-02-turbo",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "tts_million_chars",
        "units": [
          {
            "key": "tts_million_chars",
            "label": "per 1 million characters",
            "side": "in",
            "usd": 60
          }
        ]
      }
    }
  ],
  "model_id": "speech-02-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c9e2ad2a3840dc5c1d086cd2a31c47224387aec009173cbe1d942ab56e194a18",
    "input_html_sha256": "21d433d3921c52c4a28dda863da564d8f5cc3f79a966ed83f1b9d86c0ad01fc0",
    "private_audit_sha256": "3be8027d3a485e0b7dc82c3d9849aec2226f9e5fcefd5c85148e165f28c8397d",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/speech-02-turbo/",
    "description": "Speech-02 Turbo מיועד לסינתזת דיבור מהירה עם קצב יציב וצליל רב־לשוני.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/speech-02-turbo/index.md",
    "title": "speech-02-turbo — Ailoot",
    "url": "https://ailoot.ai/models/he/speech-02-turbo/"
  },
  "rawModel": {
    "about": "### דיבור מהיר לתשובה אינטראקטיבית\n\nSpeech 02 Turbo מיועד לסינתזת דיבור אינטראקטיבית. היצרן מתאר שילוב של מהירות עם קצב יציב וצליל טבעי; בין התרחישים: תשובות קוליות, אמירות במשחקים ותוכן אינטראקטיבי. המודל מקבל טקסט ומפיק אודיו של דיבור.\n\n### בחירת אופי הצליל\n\nמשפחת Speech 02 מאפשרת לשלב קול, שפה, מבטא ואופי רגשי. Transformer אוטורגרסיבי ומקודד דובר שמאומנים יחד קושרים את גוון הקול לתוכן. אפשר לסנתז טקסט בקול מוכן; יצירת קול משוכפל חדש שייכת להכנה נפרדת.\n\nהמודל בוחר בעצמו אינטונציה רגשית לפי הטקסט או מקבל מצב שהוגדר: שמחה, עצב, כעס, פחד, גועל, הפתעה או רוגע. בנוסף נשלטים המהירות, גובה הצליל והעוצמה, כדי להתאים את האמירה לקצב האינטראקציה הרצוי.\n\n### שפות וקריאת מילים\n\nנתמכים דיבור ברוסית ושפות אחרות, כולל אנגלית, סינית, קנטונזית, יפנית, קוריאנית, צרפתית, גרמנית, ספרדית, פורטוגזית, טורקית, ערבית ואוקראינית. ל־Speech 02 המפרט הנוכחי מחריג בנפרד פרסית, פיליפינית וטמילית.\n\nאפשר לדייק את ההגייה באמצעות מילון החלפות, ייצוג פונטי בין־לאומי, פיניין סיני ואפשרויות קריאה ביפנית. הפסקות בין החלקים המוקראים מוגדרות בטווח **0,01–99,99 שניות**. משך ההפסקה מוגדר בדיוק של שתי ספרות אחרי הפסיק; הסמנים ממוקמים בין המקטעים המוקראים ולא ברצף זה אחרי זה. המודל מספק מהירות **0,5–2**, עוצמה מעל 0 ועד **10**, ושינוי גובה צליל בין **−12 ל־12**.\n\n### אודיו להשמעה\n\nהקלט הסינכרוני מוגבל לטקסט עם פחות מ־**10 000 תווים**; לנפח מעל 3000 תווים היצרן ממליץ על פלט הדרגתי. יכולות המודל כוללות MP3, WAV, FLAC ו־PCM; בהגדרות הכלליות מתוארים גם Opus ו־G.711 μ-law, עם ערוץ אודיו אחד או שניים.\n\nכרטיס זה של Ailoot מקבל טקסט ומחזיר דיבור. המהירות של Turbo מתייחסת לייעוד גרסת המודל; משך התשובה המסוימת וזמינות הפורמטים המורחבים נקבעים לפי דרך הפנייה שנבחרה.\n\nהגדרות אודיו נוספות כוללות קצבי דגימה של **8, 16, 22,05, 24, 32 ו־44,1 קילו־הרץ**. ל־MP3 זמין קצב סיביות של **32, 64, 128 או 256 קילו־ביט לשנייה**. אפשר גם לשנות את גוון הקול ולהחיל אפקט אחד: הד מרחבי, הד אולם, צליל טלפון או קול רובוטי. אפקטים לשינוי קול נתמכים ב־MP3, WAV ו־FLAC בקבלת האודיו בשלמותו, ובפלט זורם רק ב־MP3. פורמטי G.711 μ-law משתמשים בקצב של 8 קילו־הרץ. היכולות האלה מתייחסות להגדרות הסינתזה של MiniMax.\n\nהיצרן מספק סנכרון בין דיבור לטקסט: חותמות זמן לפי משפטים, לפי מילים או לפי מילים בפלט הדרגתי. תוצאה כזו מסייעת להתאים את ההגייה להצגת הטקסט. היכולת הנוספת הזו דורשת תמיכה בפורמט התשובה המתאים.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "speech-02-turbo",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              }
            ],
            "hints": [
              "MiniMax accepts optionalresponse_formatmp3. Actual voice IDs come from the selected model voice profile.",
              "The facade uses bufferedMP3; provider speed/volume/pitch/sample-rate fields are fixed by the adapter, not callercontrols."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "שמרו את operation_id/X-Client-Request-ID המקורי לצורך התאמת רישומים ללא שליחה מחדש; אין נתיב ייעודי לתשאול סטטוס אודיו."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "שמרו את התוצאה הבינארית המלאה ואת הכותרות. אם מוחזרים JSON או פלטים מרובים, שמרו כל פריט נתונים והורידו כל נכס מה־URL החתום שלו שהוחזר בפועל.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "speech-02-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_length_exclusive": 10000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "תווי Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "voice",
                "pattern": "^[A-Za-z0-9_-]{1,128}$",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "ערך task_id שהוחזר בפועל או רשומה בספריית המדיה",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\n: \"${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"speech-02-turbo\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nimport re\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nif not re.fullmatch(r\"[A-Za-z0-9_-]{1,128}\",voice):raise SystemExit(\"Set an actual accepted voice ID\")\np[\"voice\"]=voice\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "הקראה",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 60,
                "amount_unit": "usd_per_display_unit",
                "key": "tts_million_chars",
                "label": "per 1 million characters",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "speech-02-turbo",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "tts_million_chars",
        "units": [
          {
            "key": "tts_million_chars",
            "label": "per 1 million characters",
            "side": "in",
            "usd": 60
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "speech-02-turbo",
        "request_model_id": "speech-02-turbo",
        "route_label": "Core"
      }
    ],
    "name": "speech-02-turbo",
    "price": {
      "in": 60,
      "in_label": "per 1 million characters",
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "Speech-02 Turbo מיועד לסינתזת דיבור מהירה עם קצב יציב וצליל רב־לשוני."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Speech-02 Turbo מיועד לסינתזת דיבור מהירה עם קצב יציב וצליל רב־לשוני.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "04ad1d575feae5895deb48921d1b33a9ae151abc33c11db2fdee320a76e8b376",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "39bbaa7cdedc90851988f3c2c7583d7618752ee34f4205f2f9ecb78badbc92c9"
}
