Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex SpeechKit Hybrid
  • Системные требования
  • Архитектура сервиса
    • Создание стенда SpeechKit Hybrid
    • Поиск и устранение ошибок
  • Аутентификация в API
  • Правила тарификации
  • Релизы SpeechKit Hybrid

В этой статье:

  • Начните работу с Yandex Cloud
  • Установите дополнительные зависимости
  • Подготовьте репозиторий с конфигурацией Terraform
  • Подготовьте SSH-ключи
  • Добавьте переменные для конфигурации Terraform
  • Создайте инфраструктуру с помощью Terraform
  • Организуйте постоянный канал связи с сервером Yandex Cloud
  • Проведите нагрузочное тестирование распознавания и синтеза речи
  1. Создание демонстрационного стенда
  2. Создание стенда SpeechKit Hybrid

Создание демонстрационного стенда SpeechKit Hybrid

Статья создана
Yandex Cloud
Улучшена
Danila N.
Обновлена 27 ноября 2025 г.
  • Начните работу с Yandex Cloud
  • Установите дополнительные зависимости
  • Подготовьте репозиторий с конфигурацией Terraform
  • Подготовьте SSH-ключи
  • Добавьте переменные для конфигурации Terraform
  • Создайте инфраструктуру с помощью Terraform
  • Организуйте постоянный канал связи с сервером Yandex Cloud
  • Проведите нагрузочное тестирование распознавания и синтеза речи

SpeechKit Hybrid предоставляет возможности сервиса Yandex SpeechKit для распознавания и синтеза речи. Вы можете развернуть демонстрационный стенд SpeechKit Hybrid с помощью сервисов Yandex Cloud через Terraform. Так можно потестировать приложения распознавания и синтеза, размещаемые в Docker-контейнерах.

Работа по созданию демонстрационного стенда ведется на двух машинах:

  • Локальной. Ниже предполагается, что используется ОС Linux.
  • Виртуальной, соответствует системным требованиям SpeechKit Hybrid. На этой ВМ запускаются Docker-контейнеры.

В демонстрационном стенде рассматривается модель лицензирования Cloud Billing, поэтому сведения о каждом запросе к сервису SpeechKit Hybrid отправляются в сервис Yandex Cloud Billing.

Чтобы развернуть демонстрационный стенд SpeechKit Hybrid:

  1. Начните работу с Yandex Cloud.
  2. Установите дополнительные зависимости.
  3. Подготовьте SSH-ключи.
  4. Добавьте переменные для конфигурации Terraform.
  5. Создайте инфраструктуру с помощью Terraform.
  6. Организуйте постоянный канал связи с сервером Yandex Cloud.
  7. Проведите нагрузочное тестирование распознавания и синтеза речи.

В случае ошибок воспользуйтесь инструкцией по отладке.

Начните работу с Yandex CloudНачните работу с Yandex Cloud

  1. Зарегистрируйтесь в Yandex Cloud. Процесс регистрации различается для физических и юридических лиц:

    • регистрация физических лиц;
    • регистрация юридических лиц.
  2. Перейдите в консоль управления, затем войдите в Yandex Cloud.

  3. Создайте каталог в консоли управления. В нем будут располагаться ваши ресурсы:

    1. В консоли управления на панели сверху нажмите и выберите нужное облако.

    2. Справа от названия облака нажмите .

    3. Выберите Создать каталог.

      create-folder1

    4. Введите имя каталога. Требования к имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    5. (Опционально) Введите описание каталога.

    6. Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности. Также в этой сети будет создана группа безопасности по умолчанию, внутри которой весь сетевой трафик разрешен.

    7. Нажмите кнопку Создать.

      create-folder2

  4. Создайте сервисный аккаунт sk-hybrid-example.

    Сервисный аккаунт позволяет гибко настраивать права доступа. Подробнее о сервисном аккаунте читайте в разделе Сервисные аккаунты.

  5. Назначьте сервисному аккаунту роли:

    • compute.editor — чтобы создать ВМ Yandex Cloud;
    • container-registry.images.puller — чтобы работать с Docker-образами в реестре Yandex Container Registry;
    • iam.serviceAccounts.keyAdmin — чтобы создать API-ключ для авторизации в Yandex Cloud Billing.
  6. Создайте API-ключ.

    Сохраните идентификатор и секретную часть ключа. Их нельзя запросить позднее.

  7. Создайте реестр в Container Registry.

  8. Сообщите команде SpeechKit идентификатор реестра. В вашем реестре появятся необходимые контейнеры и образы.

Установите дополнительные зависимостиУстановите дополнительные зависимости

На локальной машине:

  1. Установите интерфейс командной строки Yandex Cloud (CLI).
  2. Аутентифицируйте свой сервисный аккаунт через CLI.
  3. Установите Terraform.

Подготовьте репозиторий с конфигурацией TerraformПодготовьте репозиторий с конфигурацией Terraform

На локальной машине:

  1. Склонируйте репозиторий с конфигурацией Terraform, из которой будет развернута необходимая инфраструктура:

    git clone git@github.com:yandex-cloud-examples/yc-speechkit-hybrid-deployment.git
    
  2. В терминале перейдите в директорию склонированного репозитория.

Подготовьте SSH-ключиПодготовьте SSH-ключи

SSH-ключи понадобятся для аутентификации при подключении к ВМ Yandex Cloud. Чтобы подготовить их, выполните следующие действия на локальной машине:

  1. Если у вас нет пары из открытого и закрытого SSH-ключей, создайте ее:

    ssh-keygen -t rsa -f $HOME/.ssh/speechkit_hybrid
    

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

  2. В директории склонированного репозитория создайте символическую ссылку, которая указывает на публичный SSH-ключ:

    ln -s ~/.ssh/<название_ключа>.pub ./keys/ssh-user-id-rsa.pub
    

    В команде передаются:

    • ~/.ssh/<название_ключа>.pub — файл с публичным SSH-ключом. Если вы создали ключ в предыдущем шаге, укажите ~/.ssh/speechkit_hybrid.pub.
    • ./keys/ssh-user-id-rsa.pub — символическая ссылка. Путь указан относительно текущей директории репозитория.

Добавьте переменные для конфигурации TerraformДобавьте переменные для конфигурации Terraform

В директории репозитория yc-speechkit-hybrid-deployment располагается файл terraform.tfvars.template. Он представляет собой Terraform-шаблон, по которому задаются переменные окружения. Эти переменные передаются CLI и Terraform во время выполнения команд.

Чтобы задать переменные для конфигурации Terraform, выполните следующие действия на локальной машине:

  1. Создайте копию Terraform-шаблона в директории репозитория yc-speechkit-hybrid-deployment:

    cp ./terraform.tfvars.template ./terraform.tfvars
    
  2. Укажите значения переменных в файле terraform.tfvars:

    • CR_REGISTRY_ID — идентификатор реестра Container Registry;
    • BILLING_STATIC_API_KEY — секретная часть API-ключа.
  3. (Опционально) Добавьте переменную NODES_GPU_INTERRUPTIBLE = false.

    Конфигурация Terraform в репозитории предполагает создание прерываемой ВМ. Вы можете отключить возможность прерывания с помощью переменной NODES_GPU_INTERRUPTIBLE. Ее значение по умолчанию — true, оно прописано в файле variables.tf в репозитории yc-speechkit-hybrid-deployment.

Создайте инфраструктуру с помощью TerraformСоздайте инфраструктуру с помощью Terraform

Инфраструктура, необходимая для работы со SpeechKit Hybrid, описана в файлах networks.tf и node-deploy.tf в репозитории yc-speechkit-hybrid-deployment. Файл networks.tf содержит конфигурацию сущностей:

  • сеть;
  • подсеть;
  • внутренняя зона DNS;
  • группа безопасности.

Файл node-deploy.tf содержит конфигурацию ВМ и сервиса SpeechKit Hybrid.

Подробнее о конфигурации сущностей читайте на сайте Terraform и в документации соответствующего сервиса Yandex Cloud.

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

Terraform
  1. В терминале перейдите в директорию репозитория yc-speechkit-hybrid-deployment.

  2. Получите данные для аутентификации сервисного аккаунта sk-hybrid-example. Вы можете добавить данные в переменные окружения или указать эти данные в файле main.tf, в блоке provider "yandex".

  3. Настройте и инициализируйте провайдеры Terraform.

    В репозитории в качестве конфигурационного файла с настройками провайдеров используется файл main.tf, поэтому повторно создавать такой файл не нужно.

  4. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    
  5. Создайте инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

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

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Организуйте постоянный канал связи с сервером Yandex CloudОрганизуйте постоянный канал связи с сервером Yandex Cloud

Для работы по модели лицензирования Cloud Billing обпеспечьте сетевую связность между узлом Yandex Cloud Billing billing.datasphere.yandexcloud.net:443 и ВМ, на которой разворачивается сервис SpeechKit Hybrid. Чтобы проверить доступность узла:

  1. На локальной машине получите публичный IP-адрес созданной ВМ:

    yc compute instance list
    

    Публичный адрес понадобится для подключения к ВМ.

    Пример результата:

    +-----------+-------------------------------+---------------+---------+-------------+--------------+
    |     ID    |              NAME             |    ZONE ID    | STATUS  | EXTERNAL IP | INTERNAL IP  |
    +-----------+-------------------------------+---------------+---------+-------------+--------------+
    | fhmjvr*** | sk-hybrid-compose-example-*** | ru-central1-a | RUNNING | 158.160.*** | 192.168.***  |
    | ...                                                                                              |
    +-----------+-------------------------------+---------------+---------+-------------+--------------+
    

    Публичный адрес указан в поле EXTERNAL IP.

  2. Подключитесь к ВМ по SSH:

    ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
    

    Здесь <имя_пользователя> — имя учетной записи пользователя ВМ.

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

    nc -vz billing.datasphere.yandexcloud.net 443
    

    Если узел доступен по сети, команда возвращает результат:

    Connection to billing.datasphere.yandexcloud.net 443 port [tcp/https] succeeded!
    

Проведите нагрузочное тестирование распознавания и синтеза речиПроведите нагрузочное тестирование распознавания и синтеза речи

Чтобы оценить корректность и производительность тестовой инсталляции SpeechKit Hybrid, используйте Docker-контейнеры с утилитой нагрузочного тестирования для распознавания и синтеза речи. Эти контейнеры описаны в файле node-deploy.tf, они были созданы вместе с инфраструктурой.

Чтобы провести нагрузочное тестирование:

  1. Подключитесь к ВМ по SSH.

  2. Убедитесь, что порты 8080 и 9080 открыты для приема клиентских запросов:

    telnet <публичный_адрес_ВМ> 8080 && telnet <публичный_адрес_ВМ> 9080
    
  3. Запустите распознавание речи:

    docker run --rm --name stt-tools \
       --env ENVOY_HOST=<публичный_адрес_ВМ> \
       --env ENVOY_PORT=8080 \
       --env CONNECTIONS=40 \
       cr.yandex/<идентификатор_реестра>/release/tools/stt-tools:0.20
    

    В команде укажите публичный IP-адрес ВМ и идентификатор созданного ранее реестра Container Registry.

    Здесь:

    • ENVOY_HOST — IP-адрес сервиса распознавания;
    • ENVOY_PORT — порт сервиса распознавания (по умолчанию 8080);
    • CONNECTIONS — количество одновременно активных каналов.
  4. Запустите синтез речи:

    docker run --rm --name tts-tools \
       --network=host \
       --env ENVOY_HOST=<публичный_адрес_ВМ> \
       --env ENVOY_TTS_PORT=9080 \
       --env RPS=20 \
       cr.yandex/<идентификатор_реестра>/release/tools/tts-tools:0.20
    

    В команде укажите публичный IP-адрес ВМ и идентификатор созданного ранее реестра Container Registry.

    Здесь:

    • ENVOY_HOST — IP-адрес сервиса синтеза;
    • ENVOY_TTS_PORT — порт сервиса синтеза (по умолчанию 9080);
    • RPS — количество запросов синтеза в секунду.
  5. Подождите несколько минут, пока проводятся распознавание и синтез речи.

  6. Посмотрите результаты тестирования в логах контейнера:

    • docker logs stt-tools — для распознавания речи;
    • docker logs tts-tools — для синтеза речи.

    Пока в логах не появится строка Load finished. Ready to serve requests on 0.0.0.0:17001, сервисы распознавания и синтеза речи не будут отвечать на запросы. Ожидание может занять 2–10 минут.

    Далее в логах появится сообщение о том, что компонент Envoy начал прослушивать порт 8080 для распознавания речи и порт 9080 для синтеза речи. Это означает, что сервис SpeechKit Hybrid запущен и готов обслуживать клиентские запросы.

  7. (Опционально) Остановите нагрузочное тестирование.

    Во время нагрузочного тестирования команды docker run не будут реагировать на сигналы прерывания Ctrl + C. Если вы хотите остановить работу контейнеров, выполните команду:

    • docker stop stt-tools — для распознавания речи;
    • docker stop tts-tools — для синтеза речи.

Была ли статья полезна?

Предыдущая
Архитектура сервиса
Следующая
Поиск и устранение ошибок
Проект Яндекса
© 2025 ООО «Яндекс.Облако»