# Yandex SpeechKit API: Расшифровать длинную запись разговора

Сценарий из mcp-everything. Актуально на 2026-10-24.

Расшифровки звонков колл-центра, интервью, совещаний — файлы до 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 — каналы распознаются раздельно.

```bash
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"
```

## Базовые URL

- Синхронное распознавание: `https://stt.api.cloud.yandex.net`
- Асинхронное распознавание: `https://transcribe.api.cloud.yandex.net`
- Синтез речи: `https://tts.api.cloud.yandex.net`
- Операции: `https://operation.api.cloud.yandex.net`

## Авторизация

Тип: Bearer-токен

- IAM-токен: `Authorization: Bearer <IAM-токен>`
- API-ключ сервисного аккаунта: `Authorization: Api-Key <API-ключ>`

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

## Методы сценария

### 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 |

## Нюансы

- Число тарифицируемых единиц возвращается в заголовке ответа `YaCloud-Billing-Units`.
- Для `lpcm` передаётся «сырое» аудио без WAV-заголовка; частота задаётся явно.
- Для OggOpus и MP3 число каналов не указывается — оно есть в самом файле.
- Для асинхронного распознавания файл сначала загружают в бакет Object Storage.

## Другие сценарии

- [Распознать короткое голосовое сообщение](https://mcp-everything.ru/integrations/yandex-speechkit/scenarios/raspoznat-korotkoe-golosovoe-soobschenie.md)
- [Озвучить текст](https://mcp-everything.ru/integrations/yandex-speechkit/scenarios/ozvuchit-tekst.md)

---

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