Instalar e executar contêineres de fala com o Docker

Usando contêineres, você pode usar um subconjunto dos recursos do serviço de Fala em seu próprio ambiente. Neste artigo, você aprenderá a baixar, instalar e executar um contêiner de fala.

Nota

Os preços de contêineres desconectados e os níveis de compromisso variam dos contêineres padrão. Para obter mais informações, consulte Preços do serviço de fala.

Pré-requisitos

Você deve atender aos seguintes pré-requisitos antes de usar contêineres de serviço de fala. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Necessita de:

  • Docker instalado em um computador host. O Docker deve ser configurado para permitir que os contêineres se conectem e enviem dados de cobrança para o Azure.
    • No Windows, o Docker também deve ser configurado para suportar contêineres Linux.
    • Você deve ter uma compreensão básica dos conceitos do Docker.
  • Um recurso de serviço de Fala com o nível de preço gratuito (F0) ou padrão (S).

Argumentos de faturação

Os contêineres de fala não são licenciados para serem executados sem estarem conectados ao Azure para medição. Você deve configurar seu contêiner para comunicar informações de faturamento com o serviço de medição sempre.

Três parâmetros principais para todos os contêineres de IA do Azure são necessários. Os Termos de Licença para Software Microsoft devem estar presentes com um valor de aceitação. Um URI do ponto de extremidade e uma chave de API também são necessários.

As consultas ao contêiner são cobradas na camada de preço do recurso do Azure usado para o ApiKey parâmetro.

O docker run comando inicia o contêiner quando todas as três opções a seguir são fornecidas com valores válidos:

Opção Description
ApiKey A chave de API do recurso de Fala que é usada para rastrear informações de cobrança.
O ApiKey valor é usado para iniciar o contêiner e está disponível na página Chaves do portal do Azure do recurso de Fala correspondente. Vá para a página Teclas e selecione o ícone Copiar para área de transferência .
Billing O ponto de extremidade do recurso de Fala usado para rastrear informações de cobrança.
O ponto de extremidade está disponível na página Visão geral do portal do Azure do recurso de Fala correspondente. Vá para a página Visão geral , passe o mouse sobre o ponto de extremidade e um ícone Copiar para área de transferência será exibido. Copie e use o ponto de extremidade onde necessário.
Eula Indica que você aceitou a licença para o contêiner.
O valor desta opção deve ser definido como accept.

Importante

Essas chaves de assinatura são usadas para acessar sua API de serviços de IA do Azure. Não partilhe as suas chaves. Armazene-os de forma segura. Por exemplo, use o Azure Key Vault. Também recomendamos que regenere essas chaves regularmente. Só é necessária uma chave para fazer uma chamada à API. Ao regenerar a primeira chave, você pode usar a segunda chave para acesso contínuo ao serviço.

O contêiner precisa dos valores do argumento de faturamento para ser executado. Esses valores permitem que o contêiner se conecte ao ponto de extremidade de faturamento. O contêiner relata o uso a cada 10 a 15 minutos. Se o contêiner não se conectar ao Azure dentro da janela de tempo permitida, o contêiner continuará a ser executado, mas não atenderá consultas até que o ponto de extremidade de cobrança seja restaurado. A conexão é tentada 10 vezes no mesmo intervalo de tempo de 10 a 15 minutos. Se ele não puder se conectar ao ponto de extremidade de faturamento dentro das 10 tentativas, o contêiner interromperá o atendimento de solicitações. Para obter um exemplo das informações enviadas à Microsoft para cobrança, consulte as Perguntas frequentes sobre o contêiner do Azure AI na documentação dos serviços do Azure AI.

Para obter mais informações sobre essas opções, consulte Configurar contêineres.

Requisitos e recomendações de contêineres

A tabela a seguir descreve a alocação mínima e recomendada de recursos para cada contêiner de fala:

Contentor Mínimo Recomendado Modelo de Fala
Voz em texto 4 núcleos, 4 GB de memória 8 núcleos, 8 GB de memória +4 a 8 GB de memória
Conversão de voz em texto personalizada 4 núcleos, 4 GB de memória 8 núcleos, 8 GB de memória +4 a 8 GB de memória
Identificação fonoaudiológica 1 núcleo, 1 GB de memória 1 núcleo, 1 GB de memória n/d
Conversão de texto em voz neural 6 núcleos, 12 GB de memória 8 núcleos, 16 GB de memória n/d

Cada núcleo deve ter pelo menos 2,6 gigahertz (GHz) ou mais rápido.

O núcleo e a memória correspondem às --cpus configurações e --memory , que são usadas como parte do docker run comando.

Nota

As alocações mínimas e recomendadas são baseadas nos limites do Docker, não nos recursos da máquina host. Por exemplo, a memória de contêineres de fala para texto mapeia partes de um modelo de linguagem grande. Recomendamos que todo o arquivo caiba na memória. Você precisa adicionar mais 4 a 8 GB para carregar os modelos de fala (consulte a tabela anterior). Além disso, a primeira execução de qualquer contêiner pode levar mais tempo porque os modelos estão sendo paginados na memória.

Requisitos e recomendações do computador host

O host é um computador baseado em x64 que executa o contêiner do Docker. Pode ser um computador em suas instalações ou um serviço de hospedagem do Docker no Azure, como:

Nota

Os contêineres suportam a entrada de áudio compactado para o SDK de fala usando o GStreamer. Para instalar o GStreamer em um contêiner, siga as instruções do Linux para GStreamer em Usar entrada de áudio compactado de codec com o SDK de fala.

Suporte avançado de extensão vetorial

O host é o computador que executa o contêiner do Docker. O host deve suportarAdvanced Vetor Extensions (AVX2). Você pode verificar o suporte a AVX2 em hosts Linux com o seguinte comando:

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

Aviso

O computador host é necessário para suportar AVX2. O contêiner não funcionará corretamente sem suporte a AVX2.

Executar o contêiner

Use o comando docker run para executar o contêiner. Uma vez em execução, o contêiner continua a ser executado até que você pare o contêiner.

Tome nota das seguintes práticas recomendadas com o docker run comando:

  • Caractere de continuação de linha: Os comandos do Docker nas seções a seguir usam a barra invertida, , \como um caractere de continuação de linha. Substitua ou remova esse caractere com base nos requisitos do sistema operacional do host.
  • Ordem dos argumentos: não altere a ordem dos argumentos, a menos que esteja familiarizado com os contêineres do Docker.

Você pode usar o comando docker images para listar as imagens de contêiner baixadas. O comando a seguir lista o ID, o repositório e a tag de cada imagem de contêiner baixada, formatada como uma tabela:

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

Aqui está um exemplo de resultado:

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

Validar se um contêiner está em execução

Há várias maneiras de validar se o contêiner está em execução. Localize o endereço IP externo e a porta exposta do contêiner em questão e abra seu navegador da Web favorito. Use as várias URLs de solicitação a seguir para validar que o contêiner está em execução.

Os URLs de solicitação de exemplo listados aqui são http://localhost:5000, mas seu contêiner específico pode variar. Certifique-se de confiar no endereço IP externo e na porta exposta do contêiner.

URL do Pedido Propósito
http://localhost:5000/ O contentor fornece uma home page.
http://localhost:5000/ready Solicitada com GET, essa URL fornece uma verificação de que o contêiner está pronto para aceitar uma consulta no modelo. Essa solicitação pode ser usada para sondas de vivacidade e prontidão do Kubernetes.
http://localhost:5000/status Também solicitada com GET, essa URL verifica se a chave de api usada para iniciar o contêiner é válida sem causar uma consulta de ponto de extremidade. Essa solicitação pode ser usada para sondas de vivacidade e prontidão do Kubernetes.
http://localhost:5000/swagger O contentor fornece um conjunto completo de documentação para os pontos finais e uma funcionalidade Experimentar. Com esse recurso, você pode inserir suas configurações em um formulário HTML baseado na Web e fazer a consulta sem ter que escrever nenhum código. Depois que a consulta retorna, um comando CURL de exemplo é fornecido para demonstrar os cabeçalhos HTTP e o formato de corpo necessários.

Parar o contentor

Para desligar o contêiner, no ambiente de linha de comando em que o contêiner está sendo executado, selecione Ctrl+C.

Executar vários contêineres no mesmo host

Se você pretende executar vários contêineres com portas expostas, certifique-se de executar cada contêiner com uma porta exposta diferente. Por exemplo, execute o primeiro contêiner na porta 5000 e o segundo contêiner na porta 5001.

Você pode ter esse contêiner e um contêiner de IA do Azure diferente em execução no HOST juntos. Você também pode ter vários contêineres do mesmo contêiner do Azure AI em execução.

Host URLs

Nota

Use um número de porta exclusivo se estiver executando vários contêineres.

Protocolo URL do anfitrião Contentores
WS ws://localhost:5000 Conversão de fala em texto

Conversão de voz em texto personalizada
HTTP http://localhost:5000 Conversão neural de texto em fala

Identificação fonoaudiológica

Para obter mais informações sobre como usar protocolos WSS e HTTPS, consulte Segurança de contêiner na documentação de serviços de IA do Azure.

Resolução de Problemas

Ao iniciar ou executar o contêiner, você pode ter problemas. Utilize uma montagem de saída e ative o registo. Isso permite que o contêiner gere arquivos de log que são úteis quando você soluciona problemas.

Gorjeta

Para obter mais informações e orientações sobre solução de problemas, consulte Perguntas frequentes (FAQ) sobre contêineres do Azure AI na documentação dos serviços de IA do Azure.

Definições de registo

Os contêineres de fala vêm com suporte ao log ASP.NET Core. Aqui está um exemplo do início com o neural-text-to-speech container registro padrão no console:

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

Para obter mais informações sobre log, consulte Configurar contêineres de fala e registros de uso na documentação de serviços de IA do Azure.

Contêiner de diagnóstico da Microsoft

Se você estiver tendo problemas para executar um contêiner de IA do Azure, tente usar o contêiner de diagnóstico da Microsoft. Use esse contêiner para diagnosticar erros comuns em seu ambiente de implantação que podem impedir que os contêineres de IA do Azure funcionem conforme o esperado.

Para obter o contêiner, use o seguinte docker pull comando:

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

Em seguida, execute o contêiner. Substitua {ENDPOINT_URI} pelo ponto de extremidade e substitua {API_KEY} pela chave do recurso:

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

O contêiner testa a conectividade de rede com o ponto de extremidade de faturamento.

Executar contêineres desconectados

Para executar contêineres desconectados (não conectados à internet), você deve enviar este formulário de solicitação e aguardar a aprovação. Para obter mais informações sobre como aplicar e comprar um plano de compromisso para usar contêineres em ambientes desconectados, consulte Usar contêineres em ambientes desconectados na documentação de serviços de IA do Azure.

Próximos passos