Транскрипция аудио
Транскрибируйте аудио через совместимую с OpenAI конечную точку POST /v1/audio/transcriptions. Поддерживаемые модели, ограничения на файлы, примеры на curl и Python, а также дополнительный API асинхронных задач по URL.
Аудио, совместимое с OpenAI
Используйте JSON-структуру OpenAI для синтеза речи. Ответ содержит аудиобайты и по умолчанию использует MP3.
curl https://getvibeapi.com/v1/audio/speech \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chatterbox-turbo",
"input": "Hello from GetVibe",
"voice": "default",
"response_format": "mp3",
"speed": 1
}' \
--output speech.mp3Доступные модели — tts, gemini-tts, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts, gemini-3.8-flash-tts-lite, chatterbox-tts, kokoro-tts, chatterbox-turbo и gpt-4o-mini-tts. response_format (mp3, opus, aac, flac, wav, pcm) и speed используют формат OpenAI; на страницах моделей перечислены любые более узкие нативные ограничения. gpt-4o-mini-tts принимает 13 голосов OpenAI (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse, marin, cedar) и необязательное поле instructions, которое управляет подачей простыми словами, например "speak calmly and warmly".
Клонирование голоса
Модель voice-clone-tts озвучивает любой текст вашим голосом, в том числе на русском. Сначала один раз создайте голос на основе записи длительностью от 3 до 60 секунд (wav или mp3, до 10 MB) — это бесплатно. Требуется consent: true: вы подтверждаете, что это ваш голос или что у вас есть согласие его владельца. До 20 новых голосов за 24 часа.
curl https://getvibeapi.com/api/media/voices \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My voice",
"consent": true,
"audio_url": "https://example.com/my-voice.wav"
}'В ответе есть voice.id (voice_…). Передайте его как opts.voice_id в обычном медиазапросе; движок qwen3 (по умолчанию, лучшее качество) или chatterbox (экономный). Цена за 1000 символов текста, до 4000 символов на запрос.
Премиум-голос — максимальное сходство. Добавьте "engine": "premium" при его создании; запись должна быть длительностью 10–60 секунд. Создание стоит $2.00 однократно и списывается, только если голос создан: при ошибке не списывается ничего, а баланс ниже цены возвращает 402 ещё до отправки записи. Синтезируйте с помощью движка MiniMax: minimax-speech-2.8-hd, minimax-speech-2.6-hd или minimax-speech-02-hd ($0.125 за 1000 символов) и их Turbo-версии ($0.075); старые названия premium / premium-turbo означают speech-02. Сразу после создания мы произносим этим голосом одно короткое слово — MiniMax удаляет голос, не использованный 7 дней. Удалённый Premium-голос перестаёт работать сразу, но сервис синтеза не предлагает удаление, и плата за создание не возвращается.
curl https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-clone-tts",
"prompt": "Hello! This is my cloned voice.",
"opts": { "voice_id": "voice_Ab12Cd34Ef56Gh78Ij90", "language": "auto" }
}'Голос доступен только вашему аккаунту. Просмотрите их с помощью GET /api/media/voices; удалите один с помощью DELETE /api/media/voices/{voice_id} — запись удаляется и из сервиса синтеза. Сами мы запись не храним.
Голос ElevenLabs. Когда он включён, GET /api/media/voices показывает его цены в разделе pricing.elevenlabs_*. Создайте голос с помощью engine: "elevenlabs" из записи длительностью 10–60 секунд (число голосов ограничено: когда места заканчиваются, ответ 409 voice_slots_full), затем синтезируйте через elevenlabs-v4 или elevenlabs-v4-turbo — stability, similarity_boost, speed, seed, language и звуковые теги вроде [laughs] прямо в тексте. Второй файл результата — JSON с субтитрами и таймингами слов. Цена за 1000 символов: v4 $0.044, v4 Turbo $0.022 — промо-цена до 12 октября 2026 года, затем $0.16 и $0.08. Хранение — $0.70 за голос в месяц (первый месяц включён; далее списывается ежемесячно в день создания голоса). Если баланс слишком мал, голос сохраняется ещё на месяц и удаляется, только если плата всё ещё не внесена к следующему списанию — мы предварительно пишем вам. Все ваши голоса и их статус — в разделе My voices.
Несколько записей. Голос ElevenLabs вмещает до 25 записей: при создании — массив samples (каждый {"audio_url"} или {"audio_base64"}, wav/mp3 до 10 МБ, суммарно до 50 МБ и 10–300 секунд), а позже — через POST /api/media/voices/{voice_id}/samples {"samples": […]}. Добавление бесплатно; плата за хранение остаётся одна на голос. С "remove_background_noise": true ElevenLabs бесплатно удаляет фоновый шум из записей (по умолчанию выключено: может испортить чистую запись).
Транскрибация, совместимая с OpenAI
Отправьте multipart-запрос с file и model. Размер файлов ограничен 50 MB. Ответ — { text: "..." }.
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F language=en
# → {"text":"..."}Доступные модели: speech-to-text, whisper-large-v3-turbo, nemotron-asr-multilingual и whisper-large-v3. Актуальные цены за минуту указаны в каталоге аудиомоделей. Размер файлов должен составлять от 1 байта до 50 MB.
Временные метки и субтитры
response_format соответствует OpenAI: json (по умолчанию, { text }), text (обычный текст), verbose_json (JSON с language, duration и segments[] — id, start, end, text в секундах), srt и vtt (готовые субтитры). Для получения временных меток слов отправьте timestamp_granularities[]=word с verbose_json (поле words[]: word, start, end); segment и word можно комбинировать. Цена не зависит от формата.
# SRT subtitles (or vtt); verbose_json returns JSON with segments[] and words[]
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=srt
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=verbose_json \
-F "timestamp_granularities[]=segment" \
-F "timestamp_granularities[]=word"
# → {"task":"transcribe","language":"en","duration":5.9,"text":"...",
# "segments":[{"id":0,"start":0.03,"end":0.71,"text":"Hello!"}, ...],
# "words":[{"word":"Hello!","start":0.03,"end":0.51}, ...]}Временные метки предоставляют whisper-large-v3, whisper-large-v3-turbo, nemotron-asr-multilingual, qwen3-asr-1.7b и speech-to-text (сегменты последней модели формируются на основе временных меток слов). universal-2, voxtral-small-24b-2507 и nemotron-3-diarization не возвращают временные метки, поэтому запросы с verbose_json / srt / vtt для них отклоняются с кодом 400 до списания средств.
universal-2 недоступен на этих маршрутах. Более старый /api/transcribe принимает публичный audio_url, работает асинхронно и включается оператором с помощью TRANSCRIBE_ENABLED; иначе он возвращает 503.Устаревший вариант URL
Асинхронная транскрипция аудио по публичному URL. Вы создаёте задачу и опрашиваете результат по нашему id.
Параметры создания
| Параметр | Тип | Описание |
|---|---|---|
audio_urlreq. | string (URL) | Публичная ссылка на аудиофайл. |
language | string | Код языка, например ru, en (2–10 символов). Необязательно — определяется автоматически. |
redact_pii | boolean | Обезличивание персональных данных. Включено по умолчанию (соответствие 152-ФЗ); отключается только явным redact_pii: false. |
Создание и опрос
Создание возвращает 202 с { id, status: "processing" }. Опрашивайте GET /api/transcribe/{id}, пока статус не станет success (или fail); затем ответ содержит text, durationSec, priceRub.
# 1. create a transcription job (audio by public URL)
curl https://getvibeapi.com/api/transcribe \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/audio.mp3",
"language": "en",
"redact_pii": true
}'
# → {"id":"...","status":"processing"}