[Документация Yandex Cloud](../../../index.md) > [speechkit](../../index.md) > [SDK](index.md) > Синхронное распознавание Python SDK

# Синхронное распознавание речи с помощью Python SDK

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

* [модель распознавания](../../stt/models.md#tags) — `general`;
* [язык](../../stt/models.md#languages) — русский.

Для работы с Python SDK нужен пакет `yandex-speechkit`.

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

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

1. [Создайте](../../../iam/operations/sa/create.md) сервисный аккаунт и [назначьте](../../../iam/operations/sa/assign-role-for-sa.md) ему роль `ai.speechkit-stt.user`.
1. Для сервисного аккаунта [получите](../../../iam/operations/authentication/manage-api-keys.md#create-api-key) и сохраните API-ключ.
1. Скачайте [пример](https://storage.yandexcloud.kz/doc-files/speech.wav) аудиофайла для распознавания или [сгенерируйте](synthesis.md) свой.

## Создайте приложение для синхронного распознавания речи {#create-an-application}

{% list tabs group=programming_language %}

- Python 3 {#python}

   1. Установите пакет `yandex-speechkit` с помощью менеджера пакетов [pip](https://pip.pypa.io/en/stable/):
      
      ```bash
      pip install yandex-speechkit
      ```
      
      Установка проверялась на Python 3.9. Минимально допустимую версию Python смотрите на [сайте SDK](https://pypi.org/project/yandex-speechkit/).
   1. Создайте файл `test.py` и добавьте в него код:


      
      ```python
      from argparse import ArgumentParser
      from speechkit import model_repository, configure_credentials, creds
      from speechkit.stt import AudioProcessingType

      # Аутентификация через API-ключ.
      configure_credentials(
         yandex_credentials=creds.YandexCredentials(
            api_key='<API-ключ>'
         )
      )

      def recognize(audio):
         custom_endpoint = ('tts.api.ml.yandexcloud.kz:443', True)
         model = model_repository.recognition_model(
            custom_endpoint=custom_endpoint
         )

         # Задайте настройки распознавания.
         model.model = 'general'
         model.language = 'ru-RU'
         model.audio_processing_type = AudioProcessingType.Full

         # Распознавание речи в указанном аудиофайле и вывод результатов в консоль.
         result = model.transcribe_file(audio)
         for c, res in enumerate(result):
            print('=' * 80)
            print(f'channel: {c}\n\nraw_text:\n{res.raw_text}\n\nnorm_text:\n{res.normalized_text}\n')
            if res.has_utterances():
               print('utterances:')
               for utterance in res.utterances:
                  print(utterance)

      if __name__ == '__main__':
         parser = ArgumentParser()
         parser.add_argument('--audio', type=str, help='audio path', required=True)

         args = parser.parse_args()

         recognize(args.audio)
      ```


      Где:

      * `api_key` — API-ключ для сервисного аккаунта.
      * `audio` — путь до файла для записи аудио.
      * `model` — модель распознавания.
      * `language` — язык, для которого будет выполнено распознавание.
      * `audio_processing_type` — способ обработки аудио.

         В Python SDK не поддержаны возможности [потокового](../../stt/streaming.md) и [асинхронного](../../stt/transcribation.md) распознавания, но их можно просимулировать. Для этого в файле `test.py`, в параметре `audio_processing_type`, укажите значение:
         
         * `AudioProcessingType.Stream` — для потокового распознавания;
         * `AudioProcessingType.Full` — для асинхронного распознавания.

   1. Выполните созданный файл:

      ```bash
      python3 test.py --audio speech.pcm
      ```

      Где `--audio` — путь к аудиофайлу, который необходимо распознать.

      Результат содержит распознанную речь:

      ```text
      channel: 0

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

      norm_text:
      Я Яндекс Спичкит, я могу превратить любой текст в речь, теперь и вы можете.

      utterances:
      - Я Яндекс Спичкит, я могу превратить любой текст в речь, теперь и вы можете. [0.419, 6.379]
      ```

{% endlist %}

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

* [Python SDK SpeechKit](https://pypi.org/project/yandex-speechkit/)
* [Пример использования API v1 синхронного распознавания](../../stt/api/request-examples.md)