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:
- Serviço Kubernetes do Azure.
- Instâncias de contêiner do Azure.
- Um cluster Kubernetes implantado no Azure Stack. Para obter mais informações, consulte Implantar o Kubernetes no Azure Stack.
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 suportar Advanced 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
- Analise configurar contêineres para obter as definições de configuração.
- Saiba como usar contêineres de serviço de fala com o Kubernetes e o Helm.
- Implantar e executar contêineres na Instância de Contêiner do Azure
- Use mais contêineres de IA do Azure.