Асинхронное распознавание

Асинхронное распознавание позволяет преобразовывать в текст многоканальные аудиофайлы следующих характеристик:

  • Максимальная длительность записи — 4 часа.
  • Максимальный размер файла — 1 ГБ.

Результаты распознавания хранятся на сервере 3 суток, после чего вы не сможете их получить.

Асинхронное распознавание не подходит для распознавания диалога в режиме реального времени. Если вам нужны промежуточные результаты и минимальное время ответа, используйте потоковое распознавание.

Список поддерживаемых языков см. в разделе Поддерживаемые языки распознавания.

Режимы работы асинхронного распознавания

Асинхронное распознавание доступно в двух режимах:

  1. В стандартном режиме распознавание обрабатывается в очереди со стандартным приоритетом. Режим работает при выборе модели general.
  2. В отложенном режиме аудиофайл для распознавания попадает в очередь с низким приоритетом и обрабатывается в наименее нагруженное время. На отложенное распознавание действуют специальные тарифы. Для распознавания в отложенном режиме укажите модель deferred-general.

И в стандартном, и в отложенном режиме асинхронное распознавание может длиться от нескольких минут до 24 часов. Точное время обработки зависит от размера файла и загруженности сервиса.

Как асинхронно распознать предзаписанное аудио

Для асинхронного распознавания речи используются API v2 и v3 SpeechKit. Чтобы распознать предзаписанное аудио:

  1. Создайте сервисный аккаунт.

  2. Назначьте ему роли:

    • ai.speechkit-stt.user — для распознавания речи;
    • storage.uploader — для загрузки аудиофайла в бакет Yandex Object Storage;
    • (Опционально) storage.configurer, kms.keys.encrypter и kms.keys.decrypter — для шифрования и расшифровки объектов в бакете. Эти роли нужны, только если вы используете шифрование в Object Storage.
  3. Получите IAM-токен или API-ключ для вашего сервисного аккаунта, они понадобятся для аутентификации в API.

  4. Создайте бакет Yandex Object Storage.

  5. Загрузите аудиофайл в бакет.

  6. Получите ссылку на загруженный файл.

    Для бакета с ограниченным доступом в ссылке присутствуют дополнительные query-параметры (после знака ?). Эти параметры не нужно передавать в SpeechKit — они игнорируются.

  7. Отправьте API-запрос на распознавание файла через gRPC API или REST API. В теле запроса передайте ссылку на аудиофайл. В HTTP-заголовке укажите данные аутентификации:

    • Authorization: Bearer <IAM-токен> — для аутентификации с IAM-токеном;
    • Authorization: Api-Key <API-ключ> — для аутентификации с API-ключом.

    В ответе на запрос возвращается идентификатор операции распознавания. Сохраните его — он понадобится в следующем запросе.

    Важно

    Результаты хранятся на сервере 3 суток. После этого вы не сможете запросить результаты распознавания, используя полученный идентификатор.

  8. Подождите, пока закончится распознавание. Одна минута одноканального аудио распознается примерно за 10 секунд.

  9. Отправьте API-запрос на получение результатов распознавания:

    В HTTP-заголовке укажите те же данные аутентификации.

    Результаты содержат распознанный текст целиком и список распознанных слов.

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