Содержание
Руководство по синтезу речи (TTS)
Руководство по синтезу речи (TTS)
POST /v1/audio/speech совместим с OpenAI-compatible форматом: отправьте JSON и получите аудиофайл в бинарном виде. Семейство ElevenLabs включает elevenlabs/eleven-v4, eleven-v4-turbo, eleven-v3, eleven-v3-conversational, eleven-multilingual-v2, eleven-flash-v2.5, eleven-flash-v2, eleven-turbo-v2.5, eleven-turbo-v2. Актуальный список: GET /v1/models?output_modalities=speech. GET /v1/models по умолчанию возвращает только текстовые модели; добавьте ?output_modalities=speech (или all), чтобы увидеть список.
/v1/audio/speechПараметры
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
| model | string | Да | ID модели речи, например elevenlabs/eleven-flash-v2.5. |
| input | string | Да | Текст для синтеза: до 4 096 символов на запрос (10 000 для elevenlabs/eleven-v4 и eleven-v4-turbo). Более длинный текст разбейте на несколько запросов. |
| voice | string | Да | Используемый голос; формат зависит от модели. См. правила выбора голоса ниже. |
| response_format | string | Нет | mp3 (по умолчанию) или pcm. opus, aac, flac и wav API принимает, но модели ElevenLabs сейчас отклоняют их с 400. |
| speed | number | Нет | Скорость речи от 0.25 до 4.0. Не каждая модель применяет её. |
| instructions | string | Нет | Указания по стилю голоса. Не каждая модель применяет их. |
| stability | number | Нет | Стабильность голоса, 0–1 (по умолчанию 0,5). Ниже — выразительнее, выше — ровнее. Действует для моделей elevenlabs/*, когда запрос обслуживается нашим прямым голосовым маршрутом; заголовок ответа X-Voice-Settings сообщает applied или ignored. |
| similarity_boost | number | Нет | Сходство с исходным голосом, 0–1 (по умолчанию 0,75). Eleven v3 не использует. |
| style | number | Нет | Усиление стиля, 0–1 (по умолчанию 0). Значения выше 0 увеличивают задержку. Eleven v4 не использует. |
| use_speaker_boost | boolean | Нет | Усиливает сходство с исходным говорящим (по умолчанию true); немного увеличивает задержку. |
| clone_strength | number | Нет | Сила клона, 0–1 (для большинства голосов рекомендуется 0). Только для ваших собственных профессиональных клонов (voice_…), обученных для Eleven v4. |
| language_code | string | Нет | Двухбуквенный код языка строчными буквами (ISO 639-1), например ar, ja или en, чтобы задать язык озвучивания. Модели multilingual-v2 не используют. |
| audio_effects | object | Нет | Необязательный объект аудиоэффектов: filter_preset_id (фильтр, например phone, old_radio), environment_id (реверберация, например small_room, hall), background_noise_id (например cafe), distance (0–1), send_level (уровень реверберации, 0–1) и pan (−1…1). ID — строчные буквы, цифры и подчёркивания; без доплаты. Реверберация или pan не равный 0 дают стерео и несовместимы с выводом pcm. |
Семь настроек голоса выше необязательны; если их не указывать, ничего не меняется. Значение вне диапазона даёт 400 и не отправляется и не тарифицируется. Заголовок ответа X-Voice-Settings показывает, были ли использованы ваши настройки: applied — использованы; ignored — ответил резервный маршрут, поэтому настройки не использованы (аудио всё равно создаётся); нет заголовка — вы не передавали настроек голоса. Пример: stability 0 читает выразительнее, 1 — ровнее.
Правила выбора голоса
Модели ElevenLabs (elevenlabs/…) принимают одно из этих имён голосов (регистр не важен): george, sarah, adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, harry, jessica, laura, liam, lily, matilda, river, roger, will. Для моделей ElevenLabs voice можно опустить (по умолчанию george). Любое другое значение даёт 400 invalid_voice. Ваш собственный голос (voice_…) описан в разделе «Собственные голоса» ниже.
Имена голосов OpenAI-style, например alloy, echo или nova, работают только с моделями, где они перечислены. Проверьте голоса на странице модели.
Собственные голоса (клонирование) открываются поэтапно: см. раздел «Собственные голоса» ниже (POST /v1/voices). Пока они не включены для вашего аккаунта, используйте одно из 21 готовых имён выше или публичный voice ID.
Встроенные голоса
Укажите в voice одно из имён ниже (строчными буквами). У каждого голоса есть короткий собственный пример, а GET /api/v1/audio/voices возвращает полный список (пол, возрастная группа, акцент, стиль и ссылки на примеры).
?lang= (en, zh-TW, zh-CN; по умолчанию Accept-Language) выбирает только язык description. Ссылки на примеры от него не зависят: preview_urls.en (то же, что preview_url) — английский клип, preview_urls.zh (то же, что preview_url_zh) — китайский.
| Голос | Описание | Прослушать |
|---|---|---|
| george | Male, middle-aged, British accent. Mature and steady, suited to narration and storytelling. | |
| sarah | Female, young adult, American accent. Professional and clear, suited to broadcast-style reading. | |
| adam | Male, middle-aged, American accent. Everyday and approachable, suited to short social videos. | |
| alice | Female, middle-aged, British accent. Professional and informative, suited to explainers and teaching. | |
| bella | Female, middle-aged, American accent. Professional and informative, suited to explainers and teaching. | |
| bill | Male, senior, American accent. Crisp and direct, suited to advertising voice-overs. | |
| brian | Male, middle-aged, American accent. Polished and refined, suited to social and brand content. | |
| callum | Male, middle-aged, American accent. Expressive, suited to characters and animation. | |
| charlie | Male, young adult, Australian accent. Energetic and lively, suited to conversation. | |
| chris | Male, middle-aged, American accent. Relaxed and casual, suited to conversation. | |
| daniel | Male, middle-aged, British accent. Formal and measured, suited to news-style and educational reading. | |
| eric | Male, middle-aged, American accent. Polished and warm, suited to conversation. | |
| harry | Male, young adult, American accent. Rough and gritty, suited to character voices. | |
| jessica | Female, young adult, American accent. Bright and cute, suited to conversation. | |
| laura | Female, young adult, American accent. Playful with attitude, suited to social content. | |
| liam | Male, young adult, American accent. Confident and upbeat, suited to social content. | |
| lily | Female, middle-aged, British accent. Confident and clear, suited to explainers and teaching. | |
| matilda | Female, middle-aged, American accent. Upbeat and friendly, suited to explainers and teaching. | |
| river | Neutral voice, middle-aged, American accent. Calm and even, suited to conversation. | |
| roger | Male, middle-aged, American accent. Polished and confident, suited to conversation. | |
| will | Male, young adult, American accent. Laid-back and easygoing, suited to conversation. |
Теги эмоций и действий (audio tags)
Пишите теги в квадратных скобках прямо в input, например [laughs], [whispers], [excited], [sighs], [crying], [curious] или [softly]. Теги передаются модели в точности как набраны и задают манеру произнесения следующих слов. Даже если текст не на английском, оставляйте теги на английском.
curl https://api.bazaarlink.ai/v1/audio/speech \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"elevenlabs/eleven-v3","input":"[laughs] That was actually funny. [whispers] Do not tell anyone.","voice":"george","response_format":"mp3"}' \
--output audio-tags.mp3Поддерживаются моделью elevenlabs/eleven-v3 и семейством elevenlabs/eleven-v4. Другие модели речи не интерпретируют теги и могут прочитать скобки вслух, поэтому сначала проверьте короткую фразу.
Теги входят в число символов input и тарифицируются так же, как остальной текст.
Форматы вывода
Если response_format опущен, используется mp3 (Content-Type audio/mpeg); pcm (audio/pcm, сырой 16-bit PCM) тоже работает. API принимает opus, aac, flac и wav, но модели ElevenLabs сейчас отклоняют их с 400. Сохраняйте файл по заголовку Content-Type ответа.
Стоимость
Синтез речи оплачивается по числу символов ввода. Цена за символ указана на странице модели в /models и в GET /v1/models как pricing.character. На странице модели она показана за миллион символов.
Примеры
curl https://api.bazaarlink.ai/v1/audio/speech \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"elevenlabs/eleven-flash-v2.5","input":"Hello from BazaarLink.","voice":"george","response_format":"mp3"}' \
--output speech.mp3Частые ошибки
| Статус | Причина и решение |
|---|---|
| 400 | Неверный запрос: нет model, input или voice; input длиннее 4 096 символов; speed вне 0.25–4.0; неподдерживаемый response_format; Unknown voice; unknown_model (проверьте ID в /models). |
| 401 | Ключ API отсутствует или недействителен. Отправьте Authorization: Bearer с ключом BazaarLink. |
| 402 | Недостаточно средств. Пополните баланс и повторите запрос. |
| 403 | Административный ключ не может вызывать модели либо учётная запись заблокирована. Используйте обычный ключ API. |
| 429 | Превышен лимит запросов. Подождите согласно Retry-After и повторите. |
| 502 | Сервис модели временно недоступен или передача аудио прервалась. Повторите запрос; неудачные запросы не оплачиваются. |
Синтез речи
Преобразует текст в аудио по ID модели из /v1/models?output_modalities=speech. Оплата — по цене за миллион символов на странице модели. Аудио полностью буферизуется и затем возвращается бинарными данными; пошаговая потоковая выдача не поддерживается. Поля управления маршрутизацией provider, transforms, route, service_tier и preset игнорируются.
/v1/audio/speech/v1/chat/completionsПередайте audio или input_audio в /v1/chat/completions и выберите аудиомодель. Настроенные ставки входных и выходных токенов единообразно применяются ко всем учтённым текстовым и аудиотокенам.
curl https://api.bazaarlink.ai/v1/chat/completions \
-H "$BAZAARLINK_AUTH_HEADER" \
-H "Content-Type: application/json" \
-d '{"model":"<audio-chat-model-id>","messages":[{"role":"user","content":"Say hi."}],"stream":true,"modalities":["text","audio"],"audio":{"voice":"alloy","format":"pcm16"},"max_tokens":32}'