{
  "aboutHtml": "<p>Qwen-Audio-3.0-TTS-Flash преобразует предоставленный текст в речь; версия Flash ориентирована на взаимодействие в реальном времени. Qwen называет её основными применениями голосовых помощников, интерактивный диалог и интеллектуальное обслуживание клиентов. По сравнению с предыдущей версией производитель описывает более широкую поддержку языков с ограниченным объёмом обучающих данных и китайских диалектов, более естественное диалектное произношение и улучшенное управление эмоцией, тоном, характером, скоростью, громкостью и манерой речи. Также сообщается об улучшении разборчивости и устойчивости в условиях шума или реверберации. Это синтез аудио по тексту, а не распознавание входящей речи или модель голосового диалога.</p><p>Flash отдаёт приоритет быстрому началу речи в интерактивном обмене. Qwen сообщает, что при синтезе этой моделью в реальном времени задержка первого пакета не превышает 200 миллисекунд; в руководстве по использованию также отмечается, что первоначальное установление соединения влияет на измеренную задержку первой отправки. Готовьте слова, которые должны прозвучать, отдельно от желаемой манеры исполнения. Например, для ответа голосового помощника можно совместить краткий ответ с инструкцией произнести его спокойно и чётко. Нужный результат — сгенерированная речь для этого текста; воспроизведением и остальным диалогом управляет приложение.</p><p>Список системных голосов производителя включает варианты для конкретной модели, например Long An Feng Yue с естественной, дружелюбной подачей и Long An Xiao Xin с дружелюбной, живой подачей; оба указаны для путунхуа и английского. В нём есть и английские голоса, например loongmary с британским акцентом и loongjohn со спокойным, дружелюбным американским акцентом. Кроме того, у каждой модели более 500 базовых голосов. Для стабильности Qwen рекомендует начинать с системных голосов, а при выборе базового голоса прослушивать образцы. Голос должен относиться к выбранной модели, а текст — быть на поддерживаемом этим голосом языке.</p><p>Клонированные голоса расширяют документированный набор языков до китайского, английского, японского, корейского, русского, французского, немецкого, португальского, тайского, индонезийского, вьетнамского, испанского, итальянского, малайского, филиппинского и арабского. Поддержка китайского охватывает путунхуа, кантонский, чунцинский, северо-восточные говоры, ганьсуский, гуйчжоуский, чжэцзянский, хэбэйский, хэнаньский, хубэйский, хунаньский, цзянсийский, нинбоский, нинсяский, циндаоский, шэньсийский, шаньсийский, шаньдунский, шанхайский, сычуаньский и юньнаньский варианты; диалект выбирается через инструкции. Таблица моделей указывает поддержку клонирования голоса по образцу и отличает её от создания нового голоса исключительно по текстовому описанию, которое эта версия не поддерживает.</p><p>Для клонирования производитель рекомендует запись длительностью 10–20 секунд, с максимумом 60 секунд и размером файла не более 10 МБ. Поддерживаемые форматы образца — 16-битный WAV, MP3 и M4A, с частотой дискретизации не менее 16 кГц. В записи должно быть не менее пяти секунд непрерывной разборчивой речи; остальные паузы не должны превышать двух секунд. Избегайте фоновых звуков, других голосов и пения. Стереозапись принимается, но обрабатывается только первый канал. Процесс клонирования возвращает идентификатор голоса, привязанный к точной целевой модели; после готовности голоса синтез использует этот идентификатор. Для Flash и Plus по одной и той же записи нужно создавать отдельные клонированные голоса.</p><p>Инструкции на естественном языке управляют подачей как системных, так и клонированных голосов. Описывайте слышимые качества: мягкий тон, чёткую артикуляцию или слегка замедленный темп. Встроенные в текст теги дают другой способ управления: [empathetic] или [serious] задаёт стиль для последующего текста, а [laughing] или [sighing] вставляет голосовой эффект в определённом месте. Управляющий тег действует до следующего управляющего тега или автоматического разделения на предложения. Эти теги эмоций и речевой выразительности документированы только для однонаправленного потокового режима, а не для режима двунаправленной передачи текста. Готовьте выразительную реплику в режиме, подходящем для этих средств управления.</p><p>Речевой интерфейс производителя поддерживает PCM, WAV, MP3 и Opus. Перечислены частоты дискретизации 8 000, 16 000, 22 050, 24 000, 44 100 и 48 000 Гц; по умолчанию используются MP3 и 22 050 Гц. Громкость задаётся в диапазоне от 0 до 100, скорость речи и высота тона — каждая от 0,5 до 2,0. Для MP3 и Opus также доступен битрейт от 6 до 510 кбит/с. Выберите формат и частоту дискретизации под нужный проигрыватель или процесс обработки. Для интерактивного приложения производитель документирует потоковые аудиокадры и метаданные предложений; в потоковом выводе подходящих голосов, включая клонированные, доступны временные метки отдельных слов.</p><p>Документированный текстовый протокол WebSocket принимает до 20 000 символов в одном текстовом сообщении и суммарно 200 000 символов в задаче; между отправками должно проходить не более 23 секунд. Это ограничения протокола производителя, а не универсальный предел длительности аудио на выходе модели. Протокол поддерживает отмену текущего этапа синтеза и запуск следующей задачи в том же соединении. Сохраняйте предполагаемый порядок произнесения текстовых сегментов и завершайте ввод, когда весь текст передан. Для подготовки произношения производитель документирует подсказки о целевом языке, аннотации пиньинем и замены текста — они полезны, если цифры, сокращения или символы произносятся неожиданным образом.</p><p>SSML — отдельный вариант разметки с условиями по голосам и режиму взаимодействия: Qwen документирует его для клонированных голосов при непотоковых или однонаправленных потоковых вызовах и с единственной отправкой текста при включённом SSML. Не следует считать, что он поддерживается каждым готовым голосом или двунаправленным потоком. Для обычного диалога начните с совместимого голоса, чистого текста для произнесения и конкретной инструкции о подаче; добавляйте точечные настройки произношения или выразительности там, где этого требует задача. Так профиль Flash остаётся ориентированным на речь с быстрым откликом по подготовленному тексту, а не на возможности других аудиомоделей Qwen.</p>",
  "aboutText": "Qwen-Audio-3.0-TTS-Flash преобразует предоставленный текст в речь; версия Flash ориентирована на взаимодействие в реальном времени. Qwen называет её основными применениями голосовых помощников, интерактивный диалог и интеллектуальное обслуживание клиентов. По сравнению с предыдущей версией производитель описывает более широкую поддержку языков с ограниченным объёмом обучающих данных и китайских диалектов, более естественное диалектное произношение и улучшенное управление эмоцией, тоном, характером, скоростью, громкостью и манерой речи. Также сообщается об улучшении разборчивости и устойчивости в условиях шума или реверберации. Это синтез аудио по тексту, а не распознавание входящей речи или модель голосового диалога.\n\nFlash отдаёт приоритет быстрому началу речи в интерактивном обмене. Qwen сообщает, что при синтезе этой моделью в реальном времени задержка первого пакета не превышает 200 миллисекунд; в руководстве по использованию также отмечается, что первоначальное установление соединения влияет на измеренную задержку первой отправки. Готовьте слова, которые должны прозвучать, отдельно от желаемой манеры исполнения. Например, для ответа голосового помощника можно совместить краткий ответ с инструкцией произнести его спокойно и чётко. Нужный результат — сгенерированная речь для этого текста; воспроизведением и остальным диалогом управляет приложение.\n\nСписок системных голосов производителя включает варианты для конкретной модели, например Long An Feng Yue с естественной, дружелюбной подачей и Long An Xiao Xin с дружелюбной, живой подачей; оба указаны для путунхуа и английского. В нём есть и английские голоса, например loongmary с британским акцентом и loongjohn со спокойным, дружелюбным американским акцентом. Кроме того, у каждой модели более 500 базовых голосов. Для стабильности Qwen рекомендует начинать с системных голосов, а при выборе базового голоса прослушивать образцы. Голос должен относиться к выбранной модели, а текст — быть на поддерживаемом этим голосом языке.\n\nКлонированные голоса расширяют документированный набор языков до китайского, английского, японского, корейского, русского, французского, немецкого, португальского, тайского, индонезийского, вьетнамского, испанского, итальянского, малайского, филиппинского и арабского. Поддержка китайского охватывает путунхуа, кантонский, чунцинский, северо-восточные говоры, ганьсуский, гуйчжоуский, чжэцзянский, хэбэйский, хэнаньский, хубэйский, хунаньский, цзянсийский, нинбоский, нинсяский, циндаоский, шэньсийский, шаньсийский, шаньдунский, шанхайский, сычуаньский и юньнаньский варианты; диалект выбирается через инструкции. Таблица моделей указывает поддержку клонирования голоса по образцу и отличает её от создания нового голоса исключительно по текстовому описанию, которое эта версия не поддерживает.\n\nДля клонирования производитель рекомендует запись длительностью 10–20 секунд, с максимумом 60 секунд и размером файла не более 10 МБ. Поддерживаемые форматы образца — 16-битный WAV, MP3 и M4A, с частотой дискретизации не менее 16 кГц. В записи должно быть не менее пяти секунд непрерывной разборчивой речи; остальные паузы не должны превышать двух секунд. Избегайте фоновых звуков, других голосов и пения. Стереозапись принимается, но обрабатывается только первый канал. Процесс клонирования возвращает идентификатор голоса, привязанный к точной целевой модели; после готовности голоса синтез использует этот идентификатор. Для Flash и Plus по одной и той же записи нужно создавать отдельные клонированные голоса.\n\nИнструкции на естественном языке управляют подачей как системных, так и клонированных голосов. Описывайте слышимые качества: мягкий тон, чёткую артикуляцию или слегка замедленный темп. Встроенные в текст теги дают другой способ управления: [empathetic] или [serious] задаёт стиль для последующего текста, а [laughing] или [sighing] вставляет голосовой эффект в определённом месте. Управляющий тег действует до следующего управляющего тега или автоматического разделения на предложения. Эти теги эмоций и речевой выразительности документированы только для однонаправленного потокового режима, а не для режима двунаправленной передачи текста. Готовьте выразительную реплику в режиме, подходящем для этих средств управления.\n\nРечевой интерфейс производителя поддерживает PCM, WAV, MP3 и Opus. Перечислены частоты дискретизации 8 000, 16 000, 22 050, 24 000, 44 100 и 48 000 Гц; по умолчанию используются MP3 и 22 050 Гц. Громкость задаётся в диапазоне от 0 до 100, скорость речи и высота тона — каждая от 0,5 до 2,0. Для MP3 и Opus также доступен битрейт от 6 до 510 кбит/с. Выберите формат и частоту дискретизации под нужный проигрыватель или процесс обработки. Для интерактивного приложения производитель документирует потоковые аудиокадры и метаданные предложений; в потоковом выводе подходящих голосов, включая клонированные, доступны временные метки отдельных слов.\n\nДокументированный текстовый протокол WebSocket принимает до 20 000 символов в одном текстовом сообщении и суммарно 200 000 символов в задаче; между отправками должно проходить не более 23 секунд. Это ограничения протокола производителя, а не универсальный предел длительности аудио на выходе модели. Протокол поддерживает отмену текущего этапа синтеза и запуск следующей задачи в том же соединении. Сохраняйте предполагаемый порядок произнесения текстовых сегментов и завершайте ввод, когда весь текст передан. Для подготовки произношения производитель документирует подсказки о целевом языке, аннотации пиньинем и замены текста — они полезны, если цифры, сокращения или символы произносятся неожиданным образом.\n\nSSML — отдельный вариант разметки с условиями по голосам и режиму взаимодействия: Qwen документирует его для клонированных голосов при непотоковых или однонаправленных потоковых вызовах и с единственной отправкой текста при включённом SSML. Не следует считать, что он поддерживается каждым готовым голосом или двунаправленным потоком. Для обычного диалога начните с совместимого голоса, чистого текста для произнесения и конкретной инструкции о подаче; добавляйте точечные настройки произношения или выразительности там, где этого требует задача. Так профиль Flash остаётся ориентированным на речь с быстрым откликом по подготовленному тексту, а не на возможности других аудиомоделей Qwen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "41ae3c3dac15808b1026ee632b6ad734869776cba375cc0ea66c49c6c2c53c0c",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ru",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Qwen: Qwen-Audio-3.0-TTS Flash</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Закрыть\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen/qwen-audio-3.0-tts-flash</code><button type=\"button\" id=\"copy-id\">Скопировать ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Разделы карточки модели\"><button type=\"button\" data-card-jump=\"overview\">Начало</button><button type=\"button\" data-card-jump=\"methods\">Входные данные и методы</button><button type=\"button\" data-card-jump=\"pricing\">Тарифы</button><button type=\"button\" data-card-jump=\"examples\">Примеры</button><button type=\"button\" data-card-jump=\"results\">Результаты</button><button type=\"button\" data-card-jump=\"aliases\">Псевдонимы</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Методы API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash\">Озвучка</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\">Qwen-Audio-3.0-TTS-Flash — модель Qwen для преобразования текста в речь, ориентированная на голосовых помощников с быстрым откликом и интерактивный диалог. Она сочетает потоковый синтез, предназначенные для этой модели готовые или клонированные голоса и инструкции или теги для выразительной речи.</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>Qwen-Audio-3.0-TTS-Flash преобразует предоставленный текст в речь; версия Flash ориентирована на взаимодействие в реальном времени. Qwen называет её основными применениями голосовых помощников, интерактивный диалог и интеллектуальное обслуживание клиентов. По сравнению с предыдущей версией производитель описывает более широкую поддержку языков с ограниченным объёмом обучающих данных и китайских диалектов, более естественное диалектное произношение и улучшенное управление эмоцией, тоном, характером, скоростью, громкостью и манерой речи. Также сообщается об улучшении разборчивости и устойчивости в условиях шума или реверберации. Это синтез аудио по тексту, а не распознавание входящей речи или модель голосового диалога.</p><p>Flash отдаёт приоритет быстрому началу речи в интерактивном обмене. Qwen сообщает, что при синтезе этой моделью в реальном времени задержка первого пакета не превышает 200 миллисекунд; в руководстве по использованию также отмечается, что первоначальное установление соединения влияет на измеренную задержку первой отправки. Готовьте слова, которые должны прозвучать, отдельно от желаемой манеры исполнения. Например, для ответа голосового помощника можно совместить краткий ответ с инструкцией произнести его спокойно и чётко. Нужный результат — сгенерированная речь для этого текста; воспроизведением и остальным диалогом управляет приложение.</p><p>Список системных голосов производителя включает варианты для конкретной модели, например Long An Feng Yue с естественной, дружелюбной подачей и Long An Xiao Xin с дружелюбной, живой подачей; оба указаны для путунхуа и английского. В нём есть и английские голоса, например loongmary с британским акцентом и loongjohn со спокойным, дружелюбным американским акцентом. Кроме того, у каждой модели более 500 базовых голосов. Для стабильности Qwen рекомендует начинать с системных голосов, а при выборе базового голоса прослушивать образцы. Голос должен относиться к выбранной модели, а текст — быть на поддерживаемом этим голосом языке.</p><p>Клонированные голоса расширяют документированный набор языков до китайского, английского, японского, корейского, русского, французского, немецкого, португальского, тайского, индонезийского, вьетнамского, испанского, итальянского, малайского, филиппинского и арабского. Поддержка китайского охватывает путунхуа, кантонский, чунцинский, северо-восточные говоры, ганьсуский, гуйчжоуский, чжэцзянский, хэбэйский, хэнаньский, хубэйский, хунаньский, цзянсийский, нинбоский, нинсяский, циндаоский, шэньсийский, шаньсийский, шаньдунский, шанхайский, сычуаньский и юньнаньский варианты; диалект выбирается через инструкции. Таблица моделей указывает поддержку клонирования голоса по образцу и отличает её от создания нового голоса исключительно по текстовому описанию, которое эта версия не поддерживает.</p><p>Для клонирования производитель рекомендует запись длительностью 10–20 секунд, с максимумом 60 секунд и размером файла не более 10 МБ. Поддерживаемые форматы образца — 16-битный WAV, MP3 и M4A, с частотой дискретизации не менее 16 кГц. В записи должно быть не менее пяти секунд непрерывной разборчивой речи; остальные паузы не должны превышать двух секунд. Избегайте фоновых звуков, других голосов и пения. Стереозапись принимается, но обрабатывается только первый канал. Процесс клонирования возвращает идентификатор голоса, привязанный к точной целевой модели; после готовности голоса синтез использует этот идентификатор. Для Flash и Plus по одной и той же записи нужно создавать отдельные клонированные голоса.</p><p>Инструкции на естественном языке управляют подачей как системных, так и клонированных голосов. Описывайте слышимые качества: мягкий тон, чёткую артикуляцию или слегка замедленный темп. Встроенные в текст теги дают другой способ управления: [empathetic] или [serious] задаёт стиль для последующего текста, а [laughing] или [sighing] вставляет голосовой эффект в определённом месте. Управляющий тег действует до следующего управляющего тега или автоматического разделения на предложения. Эти теги эмоций и речевой выразительности документированы только для однонаправленного потокового режима, а не для режима двунаправленной передачи текста. Готовьте выразительную реплику в режиме, подходящем для этих средств управления.</p><p>Речевой интерфейс производителя поддерживает PCM, WAV, MP3 и Opus. Перечислены частоты дискретизации 8 000, 16 000, 22 050, 24 000, 44 100 и 48 000 Гц; по умолчанию используются MP3 и 22 050 Гц. Громкость задаётся в диапазоне от 0 до 100, скорость речи и высота тона — каждая от 0,5 до 2,0. Для MP3 и Opus также доступен битрейт от 6 до 510 кбит/с. Выберите формат и частоту дискретизации под нужный проигрыватель или процесс обработки. Для интерактивного приложения производитель документирует потоковые аудиокадры и метаданные предложений; в потоковом выводе подходящих голосов, включая клонированные, доступны временные метки отдельных слов.</p><p>Документированный текстовый протокол WebSocket принимает до 20 000 символов в одном текстовом сообщении и суммарно 200 000 символов в задаче; между отправками должно проходить не более 23 секунд. Это ограничения протокола производителя, а не универсальный предел длительности аудио на выходе модели. Протокол поддерживает отмену текущего этапа синтеза и запуск следующей задачи в том же соединении. Сохраняйте предполагаемый порядок произнесения текстовых сегментов и завершайте ввод, когда весь текст передан. Для подготовки произношения производитель документирует подсказки о целевом языке, аннотации пиньинем и замены текста — они полезны, если цифры, сокращения или символы произносятся неожиданным образом.</p><p>SSML — отдельный вариант разметки с условиями по голосам и режиму взаимодействия: Qwen документирует его для клонированных голосов при непотоковых или однонаправленных потоковых вызовах и с единственной отправкой текста при включённом SSML. Не следует считать, что он поддерживается каждым готовым голосом или двунаправленным потоком. Для обычного диалога начните с совместимого голоса, чистого текста для произнесения и конкретной инструкции о подаче; добавляйте точечные настройки произношения или выразительности там, где этого требует задача. Так профиль Flash остаётся ориентированным на речь с быстрым откликом по подготовленному тексту, а не на возможности других аудиомоделей Qwen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Доступно в Ailoot · входные данные и методы</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Озвучка</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Входные данные</dt><dd><code>text</code></dd></div><div><dt>Результат</dt><dd><code>audio</code></dd></div><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>qwen/qwen-audio-3.0-tts-flash</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>Единица: символы 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>loongjohn, longanhuan_v3.6</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>content_type</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>model, input, voice, response_format</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>voice_ids</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>loongjohn, longanhuan_v3.6</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>response_format</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>mp3</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>max_input_characters</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>other_options</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>false</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>input</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>точный текст UTF-8; количество символов Unicode без нормализации</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>text</td></tr></tbody></table></div><p>Жизненный цикл: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Фактически возвращённый task_id или запись в медиатеке</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Выберите точный голос из профиля этой модели.</p><p class=\"note-s\">Входные символы и секунды аудио — разные единицы учёта.</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>Режим flex</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><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>—</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>Ultra</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>—</td><td data-cell-label=\"Оплачиваемое количество\"><span class=\"card-cell-label\">Оплачиваемое количество</span>Каждая кодовая точка Unicode считается одним символом, включая символы Han.</td><td data-cell-label=\"Расчётная единица\"><span class=\"card-cell-label\">Расчётная единица</span>за 1K входных символов</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · входной символ</span> <b>$0.03</b> <span class=\"price-unit\">за 1K входных символов</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Сведения о справочном тарифе</h4><p class=\"note-s\">Справочные шкалы модели не меняют выбор метода, расчёт стоимости или списания. Действующая плата определяется ставками выбранного метода Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Qwen: Qwen-Audio-3.0-TTS Flash</summary><h4>Цены по конфигурациям</h4><div class=\"tw\" data-pricing-profiles><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>Qwen: Qwen-Audio-3.0-TTS Flash · Стандартная конфигурация</th><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,00003 $</b> <span class=\"price-unit\">за входной символ</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. <a href=\"/docs/ru/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-2360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2360-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</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-2360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2360-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&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;qwen/qwen-audio-3.0-tts-flash&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;loongjohn&quot;, &quot;longanhuan_v3.6&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\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 Ultra · Озвучка</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><details class=\"card-about\"><summary>Чтение другого содержимого</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Варианты кода\"><button class=\"cg-tab\" id=\"model-code-2361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-0\" aria-selected=\"true\" tabindex=\"0\">Медиатека</button><button class=\"cg-tab\" id=\"model-code-2361-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Статус задачи</button><button class=\"cg-tab\" id=\"model-code-2361-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Сведения о материале</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-2361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Сохраняйте все готовые результаты</h5><p class=\"note-s\">Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.</p><p class=\"note-s\">Сохраняйте полный бинарный результат и заголовки. Если возвращаются 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>Сохраните исходный возвращённый ID операции или задачи, заголовки запроса и ответ; продолжайте поддерживаемые операции чтения исходной операции. Не отправляйте запрос создания повторно.</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=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</code></a></span></p><h4>Псевдонимы путей метода</h4><p class=\"note-s\">Используйте пути методов, указанные выше.</p><h4>Связанные ID для вызова</h4><p class=\"note-s\"><a href=\"#m=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": 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": "Сохраните исходный возвращённый ID операции или задачи, заголовки запроса и ответ; продолжайте поддерживаемые операции чтения исходной операции. Не отправляйте запрос создания повторно.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "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",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "символы Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Выберите точный голос из профиля этой модели.",
            "Входные символы и секунды аудио — разные единицы учёта."
          ],
          "input": {
            "content_type": "application/json",
            "input": "точный текст UTF-8; количество символов Unicode без нормализации",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "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."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Конфигурация по умолчанию"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Стандартная конфигурация",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\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": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    }
  ],
  "model_id": "qwen/qwen-audio-3.0-tts-flash",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "fb5ede698340b64ded1b0241ad3632c752009d6ede13811e58cdd0d48a00bb9f",
    "input_html_sha256": "122d5bee38020e9dbe2bec983553995fedbbeab87c35a919ca65eb154e7daeef",
    "private_audit_sha256": "d55ea64df629eec785d9b1ab840be9c70f68b5f038506ce26fbf4a46bc1451a5",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ru/qwen-qwen-audio-3-0-tts-flash/",
    "description": "Qwen-Audio-3.0-TTS-Flash — модель Qwen для преобразования текста в речь, ориентированная на голосовых помощников с быстрым откликом и интерактивный диалог. Она сочетает потоковый синтез, предназначенные для этой модели готовые или клонированные голоса и инструкции или теги для выразительной речи.",
    "locale": "ru",
    "md_url": "https://ailoot.ai/models/ru/qwen-qwen-audio-3-0-tts-flash/index.md",
    "title": "Qwen: Qwen-Audio-3.0-TTS Flash — Ailoot",
    "url": "https://ailoot.ai/models/ru/qwen-qwen-audio-3-0-tts-flash/"
  },
  "rawModel": {
    "about": "Qwen-Audio-3.0-TTS-Flash преобразует предоставленный текст в речь; версия Flash ориентирована на взаимодействие в реальном времени. Qwen называет её основными применениями голосовых помощников, интерактивный диалог и интеллектуальное обслуживание клиентов. По сравнению с предыдущей версией производитель описывает более широкую поддержку языков с ограниченным объёмом обучающих данных и китайских диалектов, более естественное диалектное произношение и улучшенное управление эмоцией, тоном, характером, скоростью, громкостью и манерой речи. Также сообщается об улучшении разборчивости и устойчивости в условиях шума или реверберации. Это синтез аудио по тексту, а не распознавание входящей речи или модель голосового диалога.\n\nFlash отдаёт приоритет быстрому началу речи в интерактивном обмене. Qwen сообщает, что при синтезе этой моделью в реальном времени задержка первого пакета не превышает 200 миллисекунд; в руководстве по использованию также отмечается, что первоначальное установление соединения влияет на измеренную задержку первой отправки. Готовьте слова, которые должны прозвучать, отдельно от желаемой манеры исполнения. Например, для ответа голосового помощника можно совместить краткий ответ с инструкцией произнести его спокойно и чётко. Нужный результат — сгенерированная речь для этого текста; воспроизведением и остальным диалогом управляет приложение.\n\nСписок системных голосов производителя включает варианты для конкретной модели, например Long An Feng Yue с естественной, дружелюбной подачей и Long An Xiao Xin с дружелюбной, живой подачей; оба указаны для путунхуа и английского. В нём есть и английские голоса, например loongmary с британским акцентом и loongjohn со спокойным, дружелюбным американским акцентом. Кроме того, у каждой модели более 500 базовых голосов. Для стабильности Qwen рекомендует начинать с системных голосов, а при выборе базового голоса прослушивать образцы. Голос должен относиться к выбранной модели, а текст — быть на поддерживаемом этим голосом языке.\n\nКлонированные голоса расширяют документированный набор языков до китайского, английского, японского, корейского, русского, французского, немецкого, португальского, тайского, индонезийского, вьетнамского, испанского, итальянского, малайского, филиппинского и арабского. Поддержка китайского охватывает путунхуа, кантонский, чунцинский, северо-восточные говоры, ганьсуский, гуйчжоуский, чжэцзянский, хэбэйский, хэнаньский, хубэйский, хунаньский, цзянсийский, нинбоский, нинсяский, циндаоский, шэньсийский, шаньсийский, шаньдунский, шанхайский, сычуаньский и юньнаньский варианты; диалект выбирается через инструкции. Таблица моделей указывает поддержку клонирования голоса по образцу и отличает её от создания нового голоса исключительно по текстовому описанию, которое эта версия не поддерживает.\n\nДля клонирования производитель рекомендует запись длительностью 10–20 секунд, с максимумом 60 секунд и размером файла не более 10 МБ. Поддерживаемые форматы образца — 16-битный WAV, MP3 и M4A, с частотой дискретизации не менее 16 кГц. В записи должно быть не менее пяти секунд непрерывной разборчивой речи; остальные паузы не должны превышать двух секунд. Избегайте фоновых звуков, других голосов и пения. Стереозапись принимается, но обрабатывается только первый канал. Процесс клонирования возвращает идентификатор голоса, привязанный к точной целевой модели; после готовности голоса синтез использует этот идентификатор. Для Flash и Plus по одной и той же записи нужно создавать отдельные клонированные голоса.\n\nИнструкции на естественном языке управляют подачей как системных, так и клонированных голосов. Описывайте слышимые качества: мягкий тон, чёткую артикуляцию или слегка замедленный темп. Встроенные в текст теги дают другой способ управления: [empathetic] или [serious] задаёт стиль для последующего текста, а [laughing] или [sighing] вставляет голосовой эффект в определённом месте. Управляющий тег действует до следующего управляющего тега или автоматического разделения на предложения. Эти теги эмоций и речевой выразительности документированы только для однонаправленного потокового режима, а не для режима двунаправленной передачи текста. Готовьте выразительную реплику в режиме, подходящем для этих средств управления.\n\nРечевой интерфейс производителя поддерживает PCM, WAV, MP3 и Opus. Перечислены частоты дискретизации 8 000, 16 000, 22 050, 24 000, 44 100 и 48 000 Гц; по умолчанию используются MP3 и 22 050 Гц. Громкость задаётся в диапазоне от 0 до 100, скорость речи и высота тона — каждая от 0,5 до 2,0. Для MP3 и Opus также доступен битрейт от 6 до 510 кбит/с. Выберите формат и частоту дискретизации под нужный проигрыватель или процесс обработки. Для интерактивного приложения производитель документирует потоковые аудиокадры и метаданные предложений; в потоковом выводе подходящих голосов, включая клонированные, доступны временные метки отдельных слов.\n\nДокументированный текстовый протокол WebSocket принимает до 20 000 символов в одном текстовом сообщении и суммарно 200 000 символов в задаче; между отправками должно проходить не более 23 секунд. Это ограничения протокола производителя, а не универсальный предел длительности аудио на выходе модели. Протокол поддерживает отмену текущего этапа синтеза и запуск следующей задачи в том же соединении. Сохраняйте предполагаемый порядок произнесения текстовых сегментов и завершайте ввод, когда весь текст передан. Для подготовки произношения производитель документирует подсказки о целевом языке, аннотации пиньинем и замены текста — они полезны, если цифры, сокращения или символы произносятся неожиданным образом.\n\nSSML — отдельный вариант разметки с условиями по голосам и режиму взаимодействия: Qwen документирует его для клонированных голосов при непотоковых или однонаправленных потоковых вызовах и с единственной отправкой текста при включённом SSML. Не следует считать, что он поддерживается каждым готовым голосом или двунаправленным потоком. Для обычного диалога начните с совместимого голоса, чистого текста для произнесения и конкретной инструкции о подаче; добавляйте точечные настройки произношения или выразительности там, где этого требует задача. Так профиль Flash остаётся ориентированным на речь с быстрым откликом по подготовленному тексту, а не на возможности других аудиомоделей Qwen.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "qwen/qwen-audio-3.0-tts-flash",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ],
        "summary": "Полная информация о ценах конфигурации — в подробностях."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "qwen/qwen-audio-3.0-tts-flash",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": 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": "Сохраните исходный возвращённый ID операции или задачи, заголовки запроса и ответ; продолжайте поддерживаемые операции чтения исходной операции. Не отправляйте запрос создания повторно.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "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",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "символы Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Выберите точный голос из профиля этой модели.",
            "Входные символы и секунды аудио — разные единицы учёта."
          ],
          "input": {
            "content_type": "application/json",
            "input": "точный текст UTF-8; количество символов Unicode без нормализации",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "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."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Конфигурация по умолчанию"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Стандартная конфигурация",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\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": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen: Qwen-Audio-3.0-TTS Flash",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "International",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "International",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "Mainland China",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000275042",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "Mainland China",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "qwen/qwen-audio-3.0-tts-flash",
    "short": "Qwen-Audio-3.0-TTS-Flash — модель Qwen для преобразования текста в речь, ориентированная на голосовых помощников с быстрым откликом и интерактивный диалог. Она сочетает потоковый синтез, предназначенные для этой модели готовые или клонированные голоса и инструкции или теги для выразительной речи."
  },
  "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": "Qwen-Audio-3.0-TTS-Flash — модель Qwen для преобразования текста в речь, ориентированная на голосовых помощников с быстрым откликом и интерактивный диалог. Она сочетает потоковый синтез, предназначенные для этой модели готовые или клонированные голоса и инструкции или теги для выразительной речи.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "39faa5d836d7eeb3a72abeda2596cc01409adff45ca67c6187d32bca38f65d9a",
    "renderer_sha256": "aa692ffec412026bdeaf316df24a58e6c5083045e5246f6033f898d132afa5ff"
  },
  "sourceRevision": "f851081d86418216487897859150ca9975049eb8d558b02bdc689470950dd0f8"
}
