Контейнеры идентификации языка с помощью Docker

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

Примечание.

Контейнер идентификации языка речи доступен в общедоступной предварительной версии. Контейнеры в предварительной версии по-прежнему находятся в процессе разработки и не соответствуют требованиям к стабильности и поддержке Корпорации Майкрософт.

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

Совет

Чтобы получить наиболее полезные результаты, используйте контейнер идентификации языка речи с речью для текста или пользовательской речи в текстовые контейнеры.

Образы контейнеров

Образ контейнера идентификации языка речи для всех поддерживаемых версий и языковых стандартов можно найти в синдикате Реестра контейнеров Майкрософт (MCR ). Он находится в репозитории azure-cognitive-services/speechservices/ и называется language-detection.

A screenshot of the search connectors and triggers dialog.

Полное имя образа контейнера — mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection. Добавьте определенную версию или добавьте :latest ее, чтобы получить последнюю версию.

Версия Путь
Latest mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.12.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.12.0-amd64-preview

Все теги, кроме latest, имеют следующий формат и учитывают регистр:

<major>.<minor>.<patch>-<platform>-<prerelease>

Теги также доступны в формате JSON для удобства. Текст содержит путь к контейнеру и список тегов. Теги не отсортированы по версии, но "latest" всегда включаются в конец списка, как показано в этом фрагменте кода:

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    <--redacted for brevity-->
    "1.8.0-amd64-preview",
    "latest"
  ]
}

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

Необходимые компоненты , включая необходимое оборудование. Также см. рекомендуемое выделение ресурсов для каждого контейнера службы "Речь".

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

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

Запуск контейнера с помощью запуска Docker

Воспользуйтесь командой docker run для запуска контейнера.

В следующей таблице представлены различные параметры docker run и соответствующие им описания.

Параметр Описание
{ENDPOINT_URI} Для оценки и выставления счетов требуется конечная точка. Дополнительные сведения см . в разделе аргументов выставления счетов.
{API_KEY} Ключ API не требуется. Дополнительные сведения см . в разделе аргументов выставления счетов.

При запуске контейнера идентификации языка речи настройте порт, память и ЦП в соответствии с требованиями и рекомендациями к контейнеру идентификации языка.

Ниже приведен пример docker run команды со значениями заполнителей. Необходимо указать ENDPOINT_URI значения и API_KEY значения:

docker run --rm -it -p 5000:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Команда:

  • Запускает контейнер идентификации языка речи из образа контейнера.
  • выделяет 1 ядро ЦП и 1 Гб памяти.
  • предоставляет TCP-порт 5000 и выделяет псевдотелетайп для контейнера;
  • автоматически удаляет контейнер после завершения его работы. Образ контейнера остается доступным на главном компьютере.

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

Запуск с помощью преобразования речи в текстовый контейнер

Если вы хотите запустить контейнер идентификации языка с речью в текстовый контейнер, можно использовать этот образ Docker. После запуска обоих контейнеров выполните следующую docker run команду speech-to-text-with-languagedetection-client:

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

Увеличение числа одновременных вызовов может сказаться на надежности передачи и задержке. Для идентификации языка рекомендуется задать не более 1 одновременных вызовов, использующих 1 ЦП и объем памяти 1 ГБ. Для узлов с двумя процессорами и 2 ГБ памяти рекомендуется не более шести одновременных вызовов.

Использование контейнера

Контейнеры службы "Речь" предоставляют API конечных точек запросов на основе websocket, к которым обращается пакет SDK службы "Речь" и CLI службы "Речь". По умолчанию пакет SDK службы "Речь" и cli службы "Речь" используют общедоступную службу "Речь". Чтобы использовать контейнер, вам необходимо изменить метод инициализации.

Важно!

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

Вместо использования этой конфигурации инициализации в облаке Azure:

var config = SpeechConfig.FromSubscription(...);

Используйте эту конфигурацию с узлом контейнера:

var config = SpeechConfig.FromHost(
    new Uri("http://localhost:5000"));

Вместо использования этой конфигурации инициализации в облаке Azure:

auto speechConfig = SpeechConfig::FromSubscription(...);

Используйте эту конфигурацию с узлом контейнера:

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

Вместо использования этой конфигурации инициализации в облаке Azure:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

Используйте эту конфигурацию с узлом контейнера:

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

Вместо использования этой конфигурации инициализации в облаке Azure:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

Используйте эту конфигурацию с узлом контейнера:

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

Вместо использования этой конфигурации инициализации в облаке Azure:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

Используйте эту конфигурацию с узлом контейнера:

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

Вместо использования этой конфигурации инициализации в облаке Azure:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

Используйте эту конфигурацию с узлом контейнера:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

Вместо использования этой конфигурации инициализации в облаке Azure:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

Используйте эту конфигурацию с узлом контейнера:

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

Вместо использования этой конфигурации инициализации в облаке Azure:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

Используйте эту конфигурацию с конечной точкой контейнера:

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

При использовании интерфейса командной строки службы "Речь" в контейнере включите --host http://localhost:5000/ этот параметр. Необходимо также указать --key none , чтобы интерфейс командной строки не использовал ключ службы "Речь" для проверки подлинности. Сведения о настройке интерфейса командной строки службы "Речь" см. в статье "Начало работы с azure AI Speech CLI".

Попробуйте использовать идентификацию языка с помощью проверки подлинности узла вместо ключа и региона. При запуске идентификатора языка в контейнере используйте SourceLanguageRecognizer объект вместо SpeechRecognizer него.TranslationRecognizer

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