[Документация Yandex Cloud](../../../index.md) > [speechkit](../../index.md) > Пошаговые инструкции > Распознавание > Асинхронное распознавание формата LPCM — API v2

# Асинхронное распознавание аудиофайлов в формате LPCM в API v2


{% note warning %}

Функциональность доступна только в [регионе Россия](../../../overview/concepts/region.md).

{% endnote %}


Ниже рассмотрен пример [асинхронного распознавания речи](../transcribation.md) из аудиофайла с помощью [API v2](transcribation-api.md) SpeechKit. В примере заданы параметры:

* [язык](../models.md#languages) — русский;
* [языковая модель](../models.md#tags) — `general`;
* формат передаваемого аудиофайла — [LPCM](../../formats.md#LPCM) с частотой дискретизации 8000 Гц;
* [количество аудиоканалов](transcribation-api.md#sendfile-params) — 1 (значение по умолчанию);
* остальные параметры оставлены по умолчанию.

Вы можете сформировать и отправить запрос на распознавание речи с помощью утилиты [cURL](https://curl.haxx.se).

Аутентификация происходит от имени сервисного аккаунта с помощью [IAM-токена](../../../iam/concepts/authorization/iam-token.md). Подробнее об [аутентификации в API SpeechKit](../../concepts/auth.md).

## Перед началом работы {#before-you-begin}

1. [Создайте](../../../storage/operations/buckets/create.md) бакет и [загрузите](../../../storage/operations/objects/upload.md) в него аудиофайл, который вы хотите распознать.
1. [Создайте](../../../iam/operations/sa/create.md) сервисный аккаунт.

   {% note warning %}

   Асинхронно распознать аудиофайлы можно только от имени сервисного аккаунта. Не используйте для этого [другие аккаунты в Yandex Cloud](../../../iam/concepts/users/accounts.md).

   {% endnote %}

1. [Назначьте](../../../iam/operations/sa/assign-role-for-sa.md) сервисному аккаунту роли `storage.uploader` и `ai.speechkit-stt.user` на каталог, в котором вы ранее создали бакет.
1. Получите [IAM-токен](../../../iam/operations/iam-token/create-for-sa.md) или [API-ключ](../../../iam/operations/authentication/manage-api-keys.md#create-api-key) для созданного сервисного аккаунта.

Если у вас нет аудиофайла формата LPCM, вы можете скачать [пример файла](https://storage.yandexcloud.kz/speechkit/speech.pcm).

## Выполните распознавание с помощью API {#recognize-using-api}

{% list tabs group=programming_language %}

- cURL {#curl}

   1. [Получите ссылку на аудиофайл](../../../storage/operations/objects/link-for-download.md) в Object Storage.
   1. Создайте файл `body.json` и добавьте в него код:
   
      ```json
      {
         "config": {
            "specification": {
               "languageCode": "ru-RU",
               "model": "general",
               "audioEncoding": "LINEAR16_PCM",
               "sampleRateHertz": 8000,
               "audioChannelCount": 1
            }
         },
         "audio": {
            "uri": "<ссылка_на_аудиофайл>"
         }
      }
      ```
   
      Где:
   
      
      * `languageCode` — [язык](../models.md#languages), для которого будет выполнено распознавание.
      * `model` — [модель распознавания речи](../models.md#tags).
      * `audioEncoding` — [формат](../../formats.md) передаваемого аудиофайла.
   
      * `sampleRateHertz` — частота дискретизации аудиофайла в Гц.
      * `audioChannelCount` — количество аудиоканалов.
      * `uri` — ссылка на аудиофайл в Object Storage. Пример ссылки: `https://storage.yandexcloud.net/speechkit/speech.pcm`.
   
         Для бакета с ограниченным доступом в ссылке присутствуют дополнительные query-параметры (после знака `?`). Эти параметры не нужно передавать в SpeechKit — они игнорируются.
   
   1. Выполните созданный файл:
   
      ```bash
      export API_KEY=<API-ключ_сервисного_аккаунта> && \
      curl \
        --insecure \
        --header "Authorization: Api-Key ${API_KEY}" \
        --data "@body.json"\
        https://transcribe.api.cloud.yandex.net/speech/stt/v2/longRunningRecognize
      ```
   
      Пример результата:
   
      ```text
      {
         "done": false,
         "id": "e03sup6d5h1q********",
         "createdAt": "2019-04-21T22:49:29Z",
         "createdBy": "ajes08feato8********",
         "modifiedAt": "2019-04-21T22:49:29Z"
      }
      ```
   
      Сохраните идентификатор (`id`) операции распознавания, полученный в ответе.
   
   1. Дождитесь, когда завершится распознавание. Одна минута одноканального аудио распознается примерно за 10 секунд.
   1. Отправьте запрос на [получение информации об операции](../../../api-design-guide/concepts/operation.md#monitoring):
   
      ```bash
      curl \
        --insecure \
        --header "Authorization: Api-key ${API_KEY}" \
        https://operation.api.cloud.yandex.net/operations/<идентификатор_операции_распознавания>
      ```
   
      Пример результата:
   
      ```text
      {
         "done": true,
         "response": {
            "@type": "type.googleapis.com/yandex.cloud.ai.stt.v2.LongRunningRecognitionResponse",
            "chunks": [
               {
                  "alternatives": [
                     {
                        "words": [
                           {
                              "startTime": "0.160s",
                              "endTime": "0.500s",
                              "word": "привет",
                              "confidence": 1
                           },
                           {
                              "startTime": "0.580s",
                              "endTime": "0.800s",
                              "word": "мир",
                              "confidence": 1
                           }
                        ],
                        "text": "Привет мир",
                        "confidence": 1
                     }
                  ],
                  "channelTag": "1"
               }
            ]
         },
         "id": "e03jjenu23uc********",
         "createdAt": "2024-08-22T11:39:22Z",
         "createdBy": "aje3bg430agh********",
         "modifiedAt": "2024-08-22T11:39:23Z"
      }
      ```
   
      Если распознать речь в переданном файле не удалось, секция `response.chunks` может отсутствовать в ответе.

{% endlist %}

#### Полезные ссылки {#see-also}

* [API v2 асинхронного распознавания](transcribation-api.md)
* [Асинхронное распознавание аудиофайлов в формате OggOpus в API v2](transcribation-ogg.md)
* [Регулярное асинхронное распознавание аудиофайлов из Yandex Object Storage](batch-transcribation.md)
* [Аутентификация в API SpeechKit](../../concepts/auth.md)