Семейство ElevenLabs
Речевые модели ElevenLabs — всего две: Eleven v4 для синтеза речи и Scribe v2 для транскрибации. Обе вызываются через OpenAI-совместимые аудиоэндпоинты.
elevenlabs/eleven_v4POST /v1/audio/speechelevenlabs/scribe_v2POST /v1/audio/transcriptionsОбщие параметры эндпоинтов описаны в разделах Audio Speech API и Audio Transcriptions API. Актуальные цены см. на странице модели : синтез речи оплачивается по числу символов, транскрибация — по длительности аудио.
Синтез речи Eleven v4
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
with client.audio.speech.with_streaming_response.create(
model="elevenlabs/eleven_v4",
voice="21m00Tcm4TlvDq8ikWAM",
input="Здравствуйте! Добро пожаловать в синтез речи OfoxAI.",
response_format="mp3",
) as resp:
resp.stream_to_file("speech.mp3")В наших тестах фраза на китайском длиной около 20 иероглифов возвращалась примерно за 2 секунды, а длительность сгенерированного аудио составляла около 4 секунд.
Транскрибация Scribe v2
Помимо текста транскрипции, Scribe v2 возвращает время начала и конца каждого слова и умеет различать дикторов.
Python
import json
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="elevenlabs/scribe_v2",
file=f,
extra_body={"provider_options": json.dumps({"elevenlabs": {"diarize": True}})},
)
print(result.text)
for w in (result.model_extra or {}).get("words", [])[:10]:
print(w.get("speaker"), w["start"], w["end"], w["word"])Структура ответа:
- Разделение дикторов включается через
provider_options:{"elevenlabs": {"diarize": true}}передаётся JSON-строкой в поле формы. response_formatподдерживаетjsonиverbose_json, оба возвращают одинаковое содержимое. Если нужен файл субтитров, сформируйте его самостоятельно по временным меткам изwords.
Распространённые ошибки
Другие ошибки — в разделах Audio Speech API и Audio Transcriptions API.
Официальная документация
Часто задаваемые вопросы
Что указывать в voice для ElevenLabs?
ID голоса (20 символов), например 21m00Tcm4TlvDq8ikWAM; его можно найти в библиотеке голосов ElevenLabs. Название голоса (например, Rachel) или голос OpenAI alloy возвращают 404 voice_id not found.
Какие аудиоформаты поддерживает Eleven v4?
mp3 (по умолчанию), opus, wav, pcm. aac и flac не поддерживаются.
Умеет ли Scribe v2 различать дикторов?
Да. Передайте через provider_options значение {"elevenlabs": {"diarize": true}} — каждое слово в words ответа получит поле speaker, например speaker_0, speaker_1.
Может ли Scribe v2 сразу выдавать субтитры srt?
Нет, response_format поддерживает только json и verbose_json. Субтитры можно сформировать самостоятельно по временным меткам start и end из words в ответе.
Как тарифицируется речь ElevenLabs?
Eleven v4 оплачивается по числу входных символов, Scribe v2 — по длительности аудио; цены см. на странице модели.