Yandex SpeechKit API API

Отрасль: AI и нейросети. Актуально на 2026-10-24.

API распознавания и синтеза речи Yandex SpeechKit (Yandex Cloud / AI Studio). Синхронное распознавание коротких аудио (до 30 секунд), асинхронное распознавание длинных файлов из Object Storage (до 4 часов) и синтез речи из текста или SSML. Описаны REST-методы API v1 и v2; потоковое распознавание и синтез API v3 работают через gRPC и в этот файл не вошли.

Сценарии

Распознать короткое голосовое сообщение

Голосовые сообщения в боте, голосовой поиск, короткие команды — аудио до 30 секунд.

  1. Создай сервисный аккаунт с ролью ai.speechkit-stt.user и API-ключ; передавай его в заголовке Authorization: Api-Key <ключ>. С пользовательским аккаунтом (IAM-токен) нужен ещё параметр folderId.
  2. Отправь аудио: POST /speech/v1/stt:recognize на stt.api.cloud.yandex.net — в теле двоичное содержимое файла (до 1 МБ, до 30 секунд, один канал), в строке запроса lang = ru-RU и format.
  3. Голосовые из Telegram и большинства мессенджеров — OggOpus, это формат по умолчанию. Для «сырого» PCM передай format = lpcm и sampleRateHertz.
  4. Распознанный текст — в поле result. Числа по умолчанию приходят цифрами; число тарифицированных единиц — в заголовке YaCloud-Billing-Units.
curl -X POST "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?lang=ru-RU&format=oggopus" \
  -H "Authorization: Api-Key $YANDEX_API_KEY" \
  --data-binary @voice.ogg
# → {"result": "привет хочу заказать доставку на завтра"}

Расшифровать длинную запись разговора

Расшифровки звонков колл-центра, интервью, совещаний — файлы до 4 часов.

  1. Асинхронное распознавание доступно только сервисному аккаунту с ролями ai.speechkit-stt.user и storage.uploader.
  2. Загрузи файл в бакет Yandex Object Storage и получи ссылку на него.
  3. Запусти распознавание: POST /speech/stt/v2/longRunningRecognize на transcribe.api.cloud.yandex.net с config.specification (languageCode, audioEncoding — OGG_OPUS, MP3 или LINEAR16_PCM) и audio.uri — ссылкой на файл. В ответе — ID операции.
  4. Забирай результат: GET /operations/{operationId} на operation.api.cloud.yandex.net. Минута одноканального аудио распознаётся примерно за 10 секунд — не опрашивай слишком часто. Результат хранится 3 дня.
  5. Для стерео-записи звонков с LPCM укажи audioChannelCount — каналы распознаются раздельно.
OP=$(curl -s -X POST https://transcribe.api.cloud.yandex.net/speech/stt/v2/longRunningRecognize \
  -H "Authorization: Api-Key $YANDEX_API_KEY" -H 'Content-Type: application/json' \
  -d '{
        "config": {"specification": {"languageCode": "ru-RU", "audioEncoding": "MP3"}},
        "audio": {"uri": "https://storage.yandexcloud.net/<бакет>/calls/2026-10-24-call-1042.mp3"}
      }' | jq -r .id)

curl https://operation.api.cloud.yandex.net/operations/$OP -H "Authorization: Api-Key $YANDEX_API_KEY"

Озвучить текст

Голосовые ответы бота, озвучка уведомлений и IVR-меню.

  1. Отправь текст: POST /speech/v1/tts:synthesize на tts.api.cloud.yandex.net. Параметры передаются URL-кодированными в теле: text (до 5000 символов) или ssml, voice, speed (0.1–3.0) и format (oggopus, mp3 или lpcm).
  2. Ответ — сразу аудиофайл в выбранном формате, сохрани его или отдай пользователю.
  3. Для пауз, ударений и интонации используй ssml вместо text. Эмоциональную окраску задаёт emotion — доступность зависит от голоса.
  4. Лимит — 40 запросов в секунду.
curl -X POST https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize \
  -H "Authorization: Api-Key $YANDEX_API_KEY" \
  --data-urlencode 'text=Ваш заказ номер тысяча сорок два передан курьеру.' \
  -d lang=ru-RU -d voice=alena -d speed=1.0 -d format=mp3 \
  -o speech.mp3

Базовые URL

Авторизация

Тип: Bearer-токен

При авторизации пользовательским аккаунтом нужен параметр folderId; для сервисного аккаунта он не используется. Асинхронное распознавание доступно только сервисным аккаунтам (роли ai.speechkit-stt.user и storage.uploader).

Методы

POST /speech/v1/stt:recognize — Синхронное распознавание

Тело — двоичное содержимое аудиофайла: до 1 МБ, до 30 секунд, один канал.

Параметр Где Тип Обяз. Описание
lang query string нет Язык распознавания, по умолчанию ru-RU
topic query string нет Языковая модель, по умолчанию general
profanityFilter query boolean нет Исключать ненормативную лексику, по умолчанию false
rawResults query boolean нет Числа прописью (true) или цифрами (false, по умолчанию)
format query string нет lpcm (без WAV-заголовка) или oggopus (по умолчанию)
sampleRateHertz query integer нет 48000 (по умолчанию), 16000 или 8000; только для lpcm
folderId query string нет ID каталога (для пользовательского аккаунта)

Пример ответа:

HTTP/1.1 200 OK
YaCloud-Billing-Units: 15
{
  "result": "твой номер 212-85-06"
}

POST /speech/stt/v2/longRunningRecognize — Асинхронное распознавание

Хост transcribe.api.cloud.yandex.net. Возвращает ID операции; результат хранится 3 дня.

Параметр Где Тип Обяз. Описание
config.specification.languageCode body string нет Язык, по умолчанию ru-RU
config.specification.model body string нет Модель, по умолчанию general; влияет на стоимость
config.specification.profanityFilter body boolean нет Маскировать ненормативную лексику
config.specification.literature_text body boolean нет Режим нормализации текста
config.specification.audioEncoding body string нет LINEAR16_PCM, OGG_OPUS (по умолчанию) или MP3
config.specification.sampleRateHertz body integer нет 48000 (по умолчанию), 16000, 8000; обязателен для LINEAR16_PCM
config.specification.audioChannelCount body integer нет Число каналов, только для LPCM, по умолчанию 1
config.specification.rawResults body boolean нет Числа прописью
audio.uri body string да Ссылка на файл в Yandex Object Storage

GET /operations/{operationId} — Результат асинхронного распознавания

Хост operation.api.cloud.yandex.net. Минута одноканального аудио распознаётся примерно за 10 секунд; запросы результата ограничены по частоте.

Параметр Где Тип Обяз. Описание
operationId path string да ID операции из ответа longRunningRecognize

POST /speech/v1/tts:synthesize — Синтез речи

Хост tts.api.cloud.yandex.net. Параметры передаются URL-кодированными в теле POST-запроса (до 15 КБ). Ответ — двоичный аудиофайл в формате format.

Параметр Где Тип Обяз. Описание
text body string нет Текст в UTF-8, до 5000 символов; взаимоисключающее с ssml
ssml body string нет Текст в формате SSML
lang body string нет Только ru-RU (по умолчанию)
voice body string нет Голос из списка голосов
emotion body string нет Эмоциональная окраска (для ru-RU, зависит от голоса)
speed body string нет Скорость от 0.1 до 3.0, по умолчанию 1.0
format body string нет lpcm, oggopus (по умолчанию) или mp3
sampleRateHertz body string нет 48000 (по умолчанию), 16000, 8000; только для lpcm
folderId body string нет ID каталога (для пользовательского аккаунта)

Нюансы

Ошибки

Код Описание
400 Некорректные параметры запроса
401 Нужна аутентификация
403 Недостаточно прав
429 Превышена квота запросов
500 Внутренняя ошибка
503 Сервис временно недоступен

Ограничения

Источники


Если этого недостаточно — официальная документация: https://aistudio.yandex.ru/ru/docs/speechkit/ JSON: https://mcp-everything.ru/api/integrations/yandex-speechkit. MCP: https://mcp-everything.ru/mcp