[Документация Yandex Cloud](../../index.md) > [speechkit](../index.md) > [Начало работы](index.md) > Как синтезировать речь в API v3

# Как синтезировать речь в SpeechKit API v3

В этом разделе вы научитесь синтезировать речь из текста с помощью SpeechKit [API v3](../tts-v3/api-ref/grpc/index.md) ([gRPC](../../glossary/grpc.md)).

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

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

{% list tabs group=authentication %}

- Аккаунт на Яндексе, федеративный или локальный аккаунт {#yandex-account}

  1. Получите IAM-токен для [аккаунта на Яндексе](../../iam/operations/iam-token/create.md), [федеративного](../../iam/operations/iam-token/create-for-federation.md) или [локального](../../iam/operations/iam-token/create-for-local.md) аккаунта.
  1. Получите [идентификатор каталога](../../resource-manager/operations/folder/get-id.md), на который у вашего аккаунта есть роли `ai.speechkit-stt.user`, `ai.speechkit-tts.user` или выше.
  1. При обращении к 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: <идентификатор_каталога>
        ```

- Сервисный аккаунт {#service-account}

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

   * С помощью [IAM-токена](../../iam/concepts/authorization/iam-token.md):

      1. [Получите IAM-токен](../../iam/operations/iam-token/create-for-sa.md).
      1. Полученный IAM-токен передавайте в заголовке `Authorization` в следующем формате:

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

   * С помощью [API-ключей](../../iam/concepts/authorization/api-key.md).

     Используйте API-ключи, если у вас нет возможности автоматически запрашивать [IAM-токен](../../iam/concepts/authorization/iam-token.md).

      1. [Получите API-ключ](../../iam/operations/authentication/manage-api-keys.md#create-api-key).
      1. Полученный API-ключ передавайте в заголовке `Authorization` в следующем формате:

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

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

{% endlist %}

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

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

1. Установите [утилиту grpcurl](https://github.com/fullstorydev/grpcurl#installation).
1. Установите [утилиту jq](https://stedolan.github.io/jq/) для потоковой обработки JSON-файлов:

   ```bash
   sudo apt update && sudo apt install jq
   ```

{% note info %}

Вы можете реализовать синтез речи в SpeechKit API v3 как с помощью указанных утилит, так и другими способами.

{% endnote %}

## Преобразуйте текст в аудиофайл {#text-to-wav-file}

Чтобы синтезировать речь из текста в [TTS-разметке](../tts/markup/tts-markup.md) в файл формата [WAV](https://ru.wikipedia.org/wiki/WAV):

1. Создайте файл c телом запроса API и текстом для синтеза речи:

   {% cut "tts_req.json" %}

   ```json
   {
    "text": "Я Яндекс Спичк+ит. Я могу превратить любой текст в речь. Теперь и в+ы — можете!",
    "outputAudioSpec": {
      "containerAudio": {
        "containerAudioType": "WAV"
      }
    },
    "hints": [
        {
            "voice": "jane"
        },
        {
            "role": "good"
        }
    ],
    "loudnessNormalizationType": "LUFS"
   }
   ```

   {% endcut %}

1. Выполните команды:

   ```bash
   export FOLDER_ID=<идентификатор_каталога>
   export IAM_TOKEN=<IAM-токен>
   jq . -c tts_req.json | \
   grpcurl -H "authorization: Bearer ${IAM_TOKEN}" \
           -H "x-folder-id: ${FOLDER_ID}" \
           -d @ tts.api.ml.yandexcloud.kz:443 speechkit.tts.v3.Synthesizer/UtteranceSynthesis | \
   jq -r '.audioChunk.data' | base64 -d > speech.wav
   ```

   Где:

   * `FOLDER_ID` — идентификатор каталога, полученный [ранее](#auth).

       Если вы используете IAM-токен сервисного аккаунта, не указывайте в запросе идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
   * `IAM_TOKEN` — IAM-токен, полученный [ранее](#auth).
   * `speech.wav` – файл, в который будет записан ответ.

В результате в папке будет создан файл `speech.wav` с синтезированной речью.

#### Полезные ссылки {#what-is-next}

* [Подробнее про API v3](../tts-v3/api-ref/grpc/index.md)
* [Аутентификация в API](../concepts/auth.md)
* [Синтез речи в API v3](../tts/api/tts-examples-v3.md)