Как распознать короткие аудиофайлы в SpeechKit

Сервис позволяет распознавать речь различными способами. В примере ниже аудиофайл распознается с помощью API синхронного распознавания. В этом API действуют ограничения:

  • максимальная длительность аудио — 30 секунд;
  • максимальный размер файла — 1 МБ.

Чтобы выполнить пример, подготовьте аудиофайл в одном из поддерживаемых форматов с учетом указанных выше ограничений.

Для работы с API в примере используется утилита cURL.

Аутентификация для работы с API

Для работы с API SpeechKit пройдите аутентификацию. Ее способ зависит от типа аккаунта:

  1. Получите IAM-токен для аккаунта на Яндексе, федеративного или локального аккаунта.
  2. Получите идентификатор каталога, на который у вашего аккаунта есть роли ai.speechkit-stt.user, ai.speechkit-tts.user или выше.
  3. При обращении к SpeechKit через API в каждом запросе передавайте полученные параметры:

    • Для API v1 и API v2:

      Указывайте IAM-токен в заголовке Authorization в следующем формате:

      Authorization: Bearer <IAM-токен>
              

      Идентификатор каталога указывайте в теле запроса в параметре folderId.

    • Для API v3:

      • в заголовке Authorization указывайте IAM-токен;
      • в заголовке x-folder-id указывайте идентификатор каталога.
      Authorization: Bearer <IAM-токен> 
              x-folder-id: <идентификатор_каталога>
              

SpeechKit поддерживает два способа аутентификации с сервисным аккаунтом:

  • С помощью IAM-токена:

    1. Получите IAM-токен.

    2. Полученный IAM-токен передавайте в заголовке Authorization в следующем формате:

      Authorization: Bearer <IAM-токен>
              
  • С помощью API-ключей.

    Используйте API-ключи, если у вас нет возможности автоматически запрашивать IAM-токен.

    1. Получите API-ключ.

    2. Полученный API-ключ передавайте в заголовке Authorization в следующем формате:

      Authorization: Api-Key <API-ключ>
              

Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.

В примере ниже аутентификация выполняется от имени аккаунта на Яндексе.

Выполните запрос

Отправьте запрос на распознавание речи:

export FOLDER_ID=<идентификатор_каталога>
        export IAM_TOKEN=<IAM-токен>
        curl \
          --request POST \
          --header "Authorization: Bearer ${IAM_TOKEN}" \
          --data-binary "@speech.ogg" \
          "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}&lang=ru-RU"
        

Где:

  • FOLDER_ID — идентификатор каталога, полученный ранее.
  • IAM_TOKEN — IAM-токен, полученный ранее.
  • langязык распознавания.
  • speech.ogg – подготовленный ранее аудиофайл с речью.

В ответе сервис вернет распознанный текст, например:

{
           "result":"Я яндекс спичкит я могу превратить любой текст в речь теперь вы можете"
        }
        

Дополнительная информация