[Документация Yandex Cloud](../../../index.md) > [speechkit](../../index.md) > Справочники API > Распознавание > API v2 > API потокового распознавания

# API v2 для потокового распознавания


{% note info %}

В [регионе Казахстан](../../../overview/concepts/region.md) доступна только версия API v3.

{% endnote %}


Сервис потокового распознавания располагается по адресу: `stt.api.cloud.yandex.net:443`

### Сообщение с настройками распознавания {#specification-msg}

Параметр | Описание
----- | -----
config | **object**<br>Поле с настройками распознавания и идентификатором каталога.
config<br>.specification | **object**<br>Настройки распознавания.
config<br>.specification<br>.languageCode | **string**<br>Язык, для которого будет выполнено распознавание.<br/>Допустимые значения смотрите в [описании модели](../models.md). Значение по умолчанию — `ru-RU`  — русский язык.
config<br>.specification<br>.model | **string**<br>Языковая модель, которую следует использовать при распознавании.<br/>Чем точнее выбрана модель, тем лучше результат распознавания. В одном запросе можно указать только одну модель.<br/>[Допустимые значения](../models.md) зависят от выбранного языка. Значение параметра по умолчанию: `general`.
config<br>.specification<br>.profanityFilter | **boolean**<br>Фильтр ненормативной лексики.<br/>Допустимые значения:<ul><li>`true` — исключать ненормативную лексику из результатов распознавания.</li><li>`false` (по умолчанию) — не исключать ненормативную лексику.</li></ul>
config<br>.specification<br>.partialResults | **boolean**<br>Фильтр промежуточных результатов.<br/>Допустимые значения:<ul><li>`true` — возвращать промежуточные результаты (часть распознанного высказывания). Для промежуточных результатов `final` равно `false`.</li><li>`false` (по умолчанию) — возвращать только финальные результаты (распознанное высказывание целиком).
config<br>.specification<br>.singleUtterance | **boolean**<br>Флаг, отключающий распознавание после первой фразы.<br/>Допустимые значения:<ul><li>`true` — распознать только первую фразу, прекратить распознавание и ожидать разрыва соединения пользователем.</li><li>`false` (по умолчанию) — продолжать распознавание до окончания сессии.</li></ul>
config<br>.specification<br>.audioEncoding | **string**<br>[Формат](../../formats.md) передаваемого аудио.<br/>Допустимые значения:<ul><li>`LINEAR16_PCM` — [LPCM без WAV-заголовка](../../formats.md#lpcm).</li><li>`OGG_OPUS` (по умолчанию) — формат [OggOpus](../../formats.md#oggopus).</li></ul>
config<br>.specification<br>.sampleRateHertz | **integer** (int64)<br>Частота дискретизации передаваемого аудио.<br/>Этот параметр обязателен, если значение `format` равно `LINEAR16_PCM`. Допустимые значения:<ul><li>`48000` (по умолчанию) — частота дискретизации 48 кГц;</li><li>`16000` — частота дискретизации 16 кГц;</li><li>`8000` — частота дискретизации 8 кГц.</li></ul>
config.<br>specification.<br>rawResults | **boolean** <br>Флаг, указывающий, как писать числа. `true` — писать прописью, `false` (по умолчанию) — писать цифрами.
folderId | **string**<br><p>[Идентификатор каталога](../../../resource-manager/operations/folder/get-id.md), к которому у вас есть доступ. Требуется для аутентификации с пользовательским аккаунтом (смотрите раздел [Аутентификация в API SpeechKit](../../concepts/auth.md)). Не используйте это поле, если вы делаете запрос от имени сервисного аккаунта.</p> <p>Максимальная длина строки в символах — 50.</p>

### Экспериментальные дополнительные настройки распознавания {#additional-settings}

Для моделей потокового распознавания поддерживаются новые настройки распознавания. Они передаются через метаданные к gRPC-процедуре.

Параметр | Описание
----- | -----
`x-normalize-partials` | **boolean**<br>Флаг, позволяющий получать промежуточные результаты распознавания (части распознанного высказывания) в нормализованном виде: числа передаются цифрами, включен фильтр ненормативной лексики и т. д.<br>Допустимые значения:<ul><li>`true` — возвращать нормализованный результат.</li><li>`false` (по умолчанию) — возвращать ненормализованный результат.

### Сообщение с аудиофрагментом {#audio-msg}

Параметр | Описание
----- | -----
`audio_content` | Фрагмент аудио в виде массива байт. Аудио должно быть в формате, указанном в [сообщении с настройками распознавания](#specification-msg).


### Сообщение с результатами распознавания {#response}

При успешном распознавании фрагмента речи придет сообщение, содержащее список результатов распознавания `chunks[]`. Каждый результат содержит поля:

* `alternatives[]` - список вариантов распознанного текста. Каждый вариант содержит поля:
   * `text` - распознанный текст.
   * `confidence` - это поле сейчас не поддерживается, не используйте его.
* `final` - флаг, указывающий что этот результат распознавания финальный и больше меняться не будет. Если значение `false`, то результат распознавания промежуточный и может измениться при распознавании следующих фрагментов речи.
* `endOfUtterance` — флаг, указывающий что этот результат содержит конец фразы. Если значение `true`, то со следующего полученного результата начнется новая фраза.

  {% note info %}

  Если в настройках вы указали `singleUtterance=true`, то будет распознана только одна фраза за всю сессию. После сообщения, в котором `endOfUtterance` имеет значение `true`, сервер не будет распознавать следующие фразы и будет ждать, когда вы разорвете соединение.

  {% endnote %}

### Коды ошибок, возвращаемые сервером {#error_codes}

Соответствия gRPC-статусов с HTTP-кодами описаны в [google.rpc.Code](https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto).

Список возможных gRPC-ошибок, возвращаемых сервисом:

Код | Статус | Описание
----- | ----- | -----
3 | `INVALID_ARGUMENT` | Клиент некорректно указал параметры запроса. Детальная информация представлена в поле `details`.
9 | `RESOURCE_EXHAUSTED` | Клиент превысил одну из квот.
16 | `UNAUTHENTICATED` | Для выполнения операции необходима аутентификация. Проверьте IAM-токен и идентификатор каталога, которые вы передали.
13 | `INTERNAL` | Внутренняя ошибка сервера. Ошибка означает, что операция не может быть выполнена из-за технического состояния сервера. Например, из-за нехватки вычислительных ресурсов.

## Примеры использования {#examples}

* [Пример использования API v2 потокового распознавания](streaming-examples.md).