Contêineres de texto para fala com o Docker

O contêiner de texto neural em fala converte texto em fala com som natural usando tecnologia de rede neural profunda, que permite uma fala sintetizada mais natural. Neste artigo, você aprenderá a baixar, instalar e executar um contêiner de texto em fala.

Para obter mais informações sobre pré-requisitos, validação de que um contêiner está em execução, execução de vários contêineres no mesmo host e execução de contêineres desconectados, consulte Instalar e executar contêineres de fala com o Docker.

Imagens de contentor

A imagem do contêiner de texto neural para fala para todas as versões e localidades suportadas pode ser encontrada no sindicato Microsoft Container Registry (MCR). Ele reside dentro do azure-cognitive-services/speechservices/ repositório e é chamado neural-text-to-speechde .

A screenshot of the search connectors and triggers dialog.

O nome da imagem de contêiner totalmente qualificada é, mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech. Anexe uma versão específica ou anexe :latest para obter a versão mais recente.

Versão Caminho
Mais Recente mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

A latest tag puxa a localidade e en-us-arianeural a en-US voz.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

Todas as tags, exceto latest, estão no seguinte formato e diferenciam maiúsculas de minúsculas:

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

As tags também estão disponíveis no formato JSON para sua conveniência. O corpo inclui o caminho do contêiner e a lista de tags. As tags não são classificadas por versão, mas "latest" são sempre incluídas no final da lista, conforme mostrado neste trecho:

{
  "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"
  ]
}

Importante

Aposentamos as vozes de síntese de fala padrão e o recipiente de texto para fala padrão em 31 de agosto de 2021. Em vez disso, você deve usar vozes neurais com o contêiner neural-text-to-speech versão 3.0 e superior.

A partir de 29 de fevereiro de 2024, as versões de contêiner de texto para fala e texto neural para fala 2.19 e anteriores não são suportadas. Para obter mais informações sobre como atualizar seu aplicativo, consulte Migrar de voz padrão para voz neural pré-criada.

Obter a imagem do contêiner com o docker pull

Você precisa dos pré-requisitos, incluindo o hardware necessário. Consulte também a alocação recomendada de recursos para cada contêiner de fala.

Use o comando docker pull para baixar uma imagem de contêiner do Microsoft Container Registry:

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

Importante

A latest tag puxa a localidade e en-us-arianeural a en-US voz. Para obter localidades e vozes adicionais, consulte imagens de contêiner de texto para fala.

Executar o contêiner com docker run

Use o comando docker run para executar o contêiner.

A tabela a seguir representa os vários docker run parâmetros e suas descrições correspondentes:

Parâmetro Description
{ENDPOINT_URI} O ponto de extremidade é necessário para medição e faturamento. Para obter mais informações, consulte argumentos de cobrança.
{API_KEY} A chave API é necessária. Para obter mais informações, consulte argumentos de cobrança.

Ao executar o contêiner de texto para fala, configure a porta, a memória e a CPU de acordo com os requisitos e recomendações do contêiner de texto para fala.

Aqui está um comando de exemplo docker run com valores de espaço reservado. Você deve especificar os ENDPOINT_URI valores e 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}

Este comando:

  • Executa um contêiner de texto neural para fala a partir da imagem do contêiner.
  • Aloca 6 núcleos de CPU e 12 GB de memória.
  • Expõe a porta TCP 5000 e aloca um pseudo-TTY para o contêiner.
  • Remove automaticamente o recipiente depois que ele sai. A imagem do contêiner ainda está disponível no computador host.

Para obter mais informações sobre docker run como contêineres de fala, consulte Instalar e executar contêineres de fala com o Docker.

Utilize o recipiente

Os contêineres de fala fornecem APIs de ponto de extremidade de consulta baseadas em websocket que são acessadas por meio do SDK de Fala e da CLI de Fala. Por padrão, o SDK de Fala e a CLI de Fala usam o serviço de Fala público. Para usar o contêiner, você precisa alterar o método de inicialização.

Importante

Ao usar o serviço de Fala com contêineres, certifique-se de usar a autenticação de host. Se você configurar a chave e a região, as solicitações irão para o serviço de Fala pública. Os resultados do serviço de Fala podem não ser os esperados. As solicitações de contêineres desconectados falharão.

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o host do contêiner:

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

Em vez de usar esta configuração de inicialização da nuvem do Azure:

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

Use esta configuração com o ponto de extremidade do contêiner:

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

Ao usar a CLI de fala em um contêiner, inclua a --host http://localhost:5000/ opção. Você também deve especificar --key none para garantir que a CLI não tente usar uma chave de fala para autenticação. Para obter informações sobre como configurar a CLI de Fala, consulte Introdução à CLI de Fala do Azure AI.

Experimente o início rápido de texto para fala usando a autenticação de host em vez de chave e região.

Elemento de voz SSML

Quando você constrói um texto neural para fala HTTP POST, a mensagem SSML requer um voice elemento com um name atributo. A localidade da voz deve corresponder à localidade do modelo de contêiner.

Por exemplo, um modelo que foi baixado por meio da latest tag (o padrão é "en-US") teria um nome de voz de 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>

Próximos passos