Установка и запуск контейнеров службы "Речь" с помощью Docker

С помощью контейнеров можно использовать подмножество функций службы "Речь" в собственной среде. Из этой статьи вы узнаете, как скачать, установить и запустить контейнер "Речь".

Примечание.

Цены на отключенные контейнеры и уровни обязательств зависят от стандартных контейнеров. Дополнительные сведения см. в разделе Цены на службы "Речь".

Необходимые компоненты

Прежде чем использовать контейнеры службы "Речь", необходимо выполнить следующие условия. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе. Необходимые компоненты:

  • Docker, установленный на главном компьютере. Docker нужно настроить таким образом, чтобы контейнеры могли подключать и отправлять данные о выставлении счетов в Azure.
    • В Windows для поддержки контейнеров Linux также должен быть настроен Docker.
    • Необходимо знать основные принципы и основные понятия Docker.
  • Ресурс службы "Речь" с бесплатной ценовой категорией (F0) или ценовой категорией "Стандартный" (S).

Аргументы для выставления счетов

Контейнеры службы "Речь" не лицензируются для запуска без подключения к Azure для измерения. Контейнер должен всегда настраивать для обмена данными о выставлении счетов с службой измерения.

Требуются три основных параметра для всех контейнеров ИИ Azure. Для условий лицензионного соглашения на использование программного обеспечения корпорации Майкрософт должно быть задано значение accept. Также требуются URI конечной точки и ключ API.

Запросы к контейнеру оплачиваются согласно ценовой категории ресурса Azure, используемого для параметра ApiKey.

Команда docker run запускает контейнер, когда все три из следующих параметров предоставляются с допустимыми значениями:

Параметр Описание
ApiKey Ключ API ресурса "Речь", который используется для отслеживания сведений о выставлении счетов.
Значение ApiKey используется для запуска контейнера и доступно на странице ключей портал Azure соответствующего ресурса "Речь". Перейдите на страницу Ключи и выберите значок Копировать в буфер обмена.
Billing Конечная точка ресурса "Речь", которая используется для отслеживания сведений о выставлении счетов.
Конечная точка доступна на странице обзора портал Azure соответствующего ресурса "Речь". Перейдите на страницу Обзор, наведите указатель мыши на конечную точку. Отобразится значок Копировать в буфер обмена. Скопируйте и используйте конечную точку по мере необходимости.
Eula Указывает, что вы приняли условия лицензии для контейнера.
Для этого параметра следует задать значение accept.

Важно!

Эти ключи подписки используются для доступа к API служб искусственного интеллекта Azure. Не предоставляйте доступ к ключам другим пользователям. Храните их в безопасном месте. Например, используйте Azure Key Vault. Также рекомендуется регулярно повторно создавать эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа второй ключ можно использовать для бесперебойного доступа к службе.

Для запуска контейнера необходимо указать значения аргументов, касающихся выставления счетов. Эти значения обеспечивают подключение контейнера к конечной точке выставления счетов. Отчеты об использовании контейнера примерно каждые 10—15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов. Попытки подключения выполняются 10 раз на протяжении одинакового интервала времени (10–15 минут). Если контейнеру не удается подключиться к конечной точке выставления счетов за 10 попыток, он останавливает запросы на обслуживание. Пример информации, отправляемой корпорации Майкрософт для выставления счетов, см . в документации по службам ИИ Azure.

Дополнительные сведения об этих параметрах см. в статье Настройка контейнеров.

Требования к контейнеру и рекомендации

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

Контейнер Минимальная конфигурация Рекомендуемая конфигурация Модель распознавания речи
Преобразование речи в текст 4 ядра, 4 ГБ памяти 8 ядер, 8 ГБ памяти +4–8 ГБ памяти
Настраиваемое преобразование речи в текст 4 ядра, 4 ГБ памяти 8 ядер, 8 ГБ памяти +4–8 ГБ памяти
Идентификация языка речи 1 ядро, 1 ГБ памяти 1 ядро, 1 ГБ памяти Н/Д
Нейронное преобразование текста в речь 6 ядер, 12 ГБ памяти 8 ядер, 16 ГБ памяти Н/Д

Частота каждого ядра должна быть минимум 2,6 ГГц.

Ядро и память соответствуют параметрам --cpus и --memory, которые используются как часть команды docker run.

Примечание.

Минимальные и рекомендуемые распределения основаны на ограничениях Docker, а не на ресурсах сервера. Например, речь в текстовых контейнерах памяти сопоставляет части большой языковой модели. Рекомендуется, чтобы весь файл соответствовал памяти. Для загрузки моделей речи необходимо добавить дополнительно 4–8 ГБ (см. предыдущую таблицу). Кроме того, первый запуск любого контейнера может занять больше времени, так как модели разбиваются в памяти на страницы.

Требования к главному компьютеру и рекомендации

Узел — это 64-разрядный компьютер, на котором выполняется контейнер Docker. Это может быть компьютер в локальной среде или служба размещения Docker в Azure, включая следующие решения:

Примечание.

Контейнеры поддерживают сжатый речевой ввод для пакета SDK для распознавания речи с помощью GStreamer. Чтобы установить GStreamer в контейнере, выполните инструкции в Linux для GStreamer в разделе Использование сжатых звуковых данных кодека с помощью пакета SDK для распознавания речи.

Поддержка расширения Advanced Vector Extensions

Главным является компьютер, на котором выполняется контейнер Docker. Узел должен поддерживать расширение Advanced Vector Extensions (AVX2). Проверить наличие поддержки AVX2 вы можете на узлах Linux с помощью следующей команды:

grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected

Предупреждение

Для поддержки AVX2 требуется главный компьютер. Контейнер не будет работать правильно без поддержки AVX2.

Запуск контейнера

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

Обратите внимание на следующие рекомендации с docker run помощью команды:

  • Символ продолжения строки: в следующих разделах команда Docker в качестве символа продолжения строки использует обратную косую черту\. Замените или удалите этот символ на основе требований операционной системы узла.
  • Порядок аргументов: не изменяйте порядок аргументов, если вы плохо знакомы с контейнерами Docker.

Используйте команду docker images, чтобы получить список скачанных образов контейнеров. Следующая команда содержит идентификатор, репозиторий и тег каждого скачаемого образа контейнера, отформатированного в виде таблицы:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

Ниже приведен пример результата:

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Проверка состояния контейнера

Проверить это можно несколькими способами. Получите адрес и открытый порт для рассматриваемого контейнера из его параметра Внешний IP-адрес и запустите веб-браузер. Используйте приведенные ниже URL-адреса запросов, чтобы убедиться, что контейнер работает.

В примерах в качестве URL-адресов запросов используется значение http://localhost:5000, однако ваш конкретный контейнер может иметь отличия. Убедитесь в правильности внешнего IP-адреса и открытого порта контейнера.

Запросить URL-адрес Характер использования
http://localhost:5000/ Контейнер предоставляет домашнюю страницу.
http://localhost:5000/ready При запросе с помощью команды GET этот URL-адрес подтверждает, что контейнер готов принять запрос к модели. Этот запрос может использоваться для проб активности и готовности Kubernetes.
http://localhost:5000/status Этот URL-адрес, который можно также запросить с помощью GET, проверяет, действителен ли ключ API, используемый для запуска контейнера, без запроса конечной точки. Этот запрос может использоваться для проб активности и готовности Kubernetes.
http://localhost:5000/swagger Контейнер предоставляет полный набор документации по конечным точкам и функции Попробовать. Эта функция позволяет ввести параметры в веб-форму HTML и создать запрос без необходимости писать код. После возвращения результатов запроса предоставляется пример команды CURL с примером требуемого формата HTTP-заголовков и текста.

Остановка контейнера

Чтобы завершить работу контейнера, в среде командной строки, где выполняется контейнер, нажмите комбинацию клавиш Ctrl+C.

Запуск нескольких контейнеров на одном узле

Если вы планируете запускать несколько контейнеров при открытых портах, обязательно назначьте каждому контейнеру отдельный открытый порт. Например, запускайте первый контейнер на порте 5000, а второй — на порте 5001.

Этот контейнер можно использовать и другой контейнер ИИ Azure, работающий вместе на узле HOST. Вы также можете использовать несколько контейнеров одного и того же контейнера ИИ Azure.

URL-адреса узлов

Примечание.

Если вы задействуете несколько контейнеров, используйте уникальный номер порта.

Протокол URL-адрес узла Контейнеры
WS ws://localhost:5000 Речь к тексту

Настраиваемое преобразование речи в текст
HTTP http://localhost:5000 Нейронный текст для речи

Идентификация языка речи

Дополнительные сведения об использовании протоколов Windows SharePoint Services и HTTPS см. в документации по службам ИИ Azure.

Устранение неполадок

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

Совет

Дополнительные сведения об устранении неполадок и рекомендации см. в статье "Часто задаваемые вопросы о контейнерах ИИ Azure" (часто задаваемые вопросы) в документации по службам ИИ Azure.

Параметры ведения журнала

Контейнеры службы "Речь" поддерживают ведение журнала ASP.NET Core. Ниже приведен пример neural-text-to-speech container начала ведения журнала по умолчанию в консоли:

docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
Logging:Console:LogLevel:Default=Information

Дополнительные сведения о ведении журнала см. в разделе "Настройка контейнеров службы "Речь" и записей об использовании в документации по службам ИИ Azure.

Контейнер Microsoft диагностика

Если у вас возникли проблемы с запуском контейнера ИИ Azure, можно попробовать использовать контейнер Microsoft диагностика. Используйте этот контейнер для диагностики распространенных ошибок в среде развертывания, которые могут предотвратить работу контейнеров ИИ Azure должным образом.

Чтобы получить контейнер, используйте следующую команду docker pull:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Затем запустите контейнер. Замените {ENDPOINT_URI} на URI конечной точки, а {API_KEY} — на свой ключ для ресурса:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Тесты контейнера для сетевого подключения к конечной точке выставления счетов.

Запуск отключенных контейнеров

Чтобы запустить отключенные контейнеры (не подключенные к Интернету), необходимо отправить эту форму запроса и ждать утверждения. Дополнительные сведения о применении и приобретении плана обязательств по использованию контейнеров в отключенных средах см . в документации по службам ИИ Azure с использованием контейнеров в отключенных средах .

Следующие шаги