Текстовый текст в контейнеры речи с помощью Docker

Нейронный текст в контейнер речи преобразует текст в естественно-звуковую речь с помощью технологии глубокой нейронной сети, что позволяет более естественно синтезировать речь. Из этой статьи вы узнаете, как скачать, установить и запустить контейнер преобразования текста в речь.

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

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

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

A screenshot of the search connectors and triggers dialog.

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

Версия Путь
Latest mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

Тег latest извлекает языковой стандарт en-US и голосовые данные en-us-arianeural.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

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

<major>.<minor>.<patch>-<platform>-<voice>-<preview>

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

{
  "name": "azure-cognitive-services/speechservices/neural-text-to-speech",
  "tags": [
    <--redacted for brevity-->
    "3.1.0-amd64-en-us-arianeural",
    "3.1.0-amd64-en-us-guyneural",
    "3.1.0-amd64-en-us-jennymultilingualneural",
    "3.1.0-amd64-en-us-jennyneural",
    "3.1.0-amd64-en-us-michelleneural",
    "3.1.0-amd64-es-es-alvaroneural",
    "3.1.0-amd64-es-es-elviraneural",
    "3.1.0-amd64-es-mx-candelaneural",
    "3.1.0-amd64-es-mx-dalianeural",
    "3.1.0-amd64-es-mx-jorgeneural",
    <--redacted for brevity-->
    "latest"
  ]
}

Внимание

Мы отставили от стандартных голосов синтеза речи и стандартного текста в контейнер речи 31 августа 2021 года. Вместо этого следует использовать нейронные голоса с контейнером нейронного текста в речь версии 3.0 и выше.

Начиная с 29 февраля 2024 г. текст для речи и нейронного текста в контейнер речи версии 2.19 и более ранних версий не поддерживается. Дополнительные сведения об обновлении приложения см. в статье Переход со стандартного голоса на предварительно подготовленный нейронный голос.

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

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

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

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

Внимание

Тег latest извлекает языковой стандарт en-US и голосовые данные en-us-arianeural. Дополнительные языковые параметры и голоса см . в виде текста для изображений контейнеров речи.

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

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

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

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

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

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

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}

Команда:

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

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

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

Контейнеры службы "Речь" предоставляют 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".

Попробуйте использовать краткое руководство по использованию проверки подлинности узла, а не ключа и региона.

Элемент голосовой связи SSML

При создании нейронного текста для речи HTTP POST сообщение SSML требует voice элемента с атрибутом name . Языковой стандарт голоса должен соответствовать языковому стандарту модели контейнера.

Например, модель, скачаемая с помощью тега latest (по умолчанию — en-US), будет иметь голосовое имя en-US-AriaNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        This is the text that is spoken.
    </voice>
</speak>

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