Instalar e executar contêineres do serviço de fala (versão prévia)Install and run Speech service containers (Preview)

Os contêineres permitem executar algumas das APIs do serviço de fala em seu próprio ambiente.Containers enable you to run some of the Speech service APIs in your own environment. Os contêineres são ótimos para requisitos específicos de segurança e governança de dados.Containers are great for specific security and data governance requirements. Neste artigo, você aprenderá a baixar, instalar e executar um contêiner de fala.In this article you'll learn how to download, install, and run a Speech container.

Os contêineres de fala permitem que os clientes criem uma arquitetura de aplicativo de fala otimizada para recursos de nuvem robustos e localidade de borda.Speech containers enable customers to build a speech application architecture that is optimized for both robust cloud capabilities and edge locality. Há quatro contêineres diferentes disponíveis.There are four different containers available. Os dois contêineres padrão são Text -to-Text e conversão de texto em fala.The two standard containers are Speech-to-text and Text-to-speech. Os dois contêineres personalizados são fala personalizada para texto e texto em fala personalizado.The two custom containers are Custom Speech-to-text and Custom Text-to-speech. Os contêineres de fala têm o mesmo preço que os serviços de fala do Azure baseados em nuvem.Speech containers have the same pricing as the cloud-based Azure Speech Services.

Importante

Atualmente, todos os contêineres de fala são oferecidos como parte de uma Visualização pública "restrita".All speech containers are currently offered as part of a Public "Gated" Preview. Um comunicado será feito quando os contêineres de fala progredirem para disponibilidade geral (GA).An announcement will be made when speech containers progress to General Availability (GA).

FunçãoFunction RecursosFeatures ÚltimaLatest
Conversão de fala em textoSpeech-to-text Analisa sentimentos e transcreve gravações contínuas em tempo real ou de áudio em lotes com resultados intermediários.Analyzes sentiment and transcribes continuous real-time speech or batch audio recordings with intermediate results. 2.3.12.3.1
Fala Personalizada para textoCustom Speech-to-text Usar um modelo personalizado do portal de fala personalizada, transcreve gravações contínuas em tempo real ou de áudio em lotes em texto com resultados intermediários.Using a custom model from the Custom Speech portal, transcribes continuous real-time speech or batch audio recordings into text with intermediate results. 2.3.12.3.1
Conversão de texto em falaText-to-speech Converte texto em fala natural-som com entrada de texto sem formatação ou SSML (linguagem de marcação de síntese de fala).Converts text to natural-sounding speech with plain text input or Speech Synthesis Markup Language (SSML). 1.5.01.5.0
Conversão de texto em fala personalizadaCustom Text-to-speech Usando um modelo personalizado do portal de voz personalizado, o converte o texto em fala de som natural com entrada de texto sem formatação ou SSML (linguagem de marcação de síntese de fala).Using a custom model from the Custom Voice portal, converts text to natural-sounding speech with plain text input or Speech Synthesis Markup Language (SSML). 1.5.01.5.0

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Pré-requisitosPrerequisites

Os seguintes pré-requisitos antes de usar os contêineres de fala:The following prerequisites before using Speech containers:

NecessáriaRequired FinalidadePurpose
Mecanismo DockerDocker Engine É necessário ter o Mecanismo Docker instalado em um computador host.You need the Docker Engine installed on a host computer. O Docker fornece pacotes que configuram o ambiente do Docker no macOS, Windows e Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Para instruções sobre conceitos básicos do Docker e de contêiner, consulte a visão geral do Docker.For a primer on Docker and container basics, see the Docker overview.

O Docker deve ser configurado para permitir que os contêineres conectem-se e enviem dados de cobrança para o Azure.Docker must be configured to allow the containers to connect with and send billing data to Azure.

No Windows, o Docker também deve ser configurado para dar suporte a contêineres do Linux.On Windows, Docker must also be configured to support Linux containers.

Familiaridade com o DockerFamiliarity with Docker É necessário ter uma compreensão básica de conceitos do Docker, como registros, repositórios, contêineres e imagens de contêiner, bem como conhecimento dos comandos básicos do docker.You should have a basic understanding of Docker concepts, like registries, repositories, containers, and container images, as well as knowledge of basic docker commands.
Recurso de falaSpeech resource Para usar esses contêineres, será necessário ter:In order to use these containers, you must have:

Um recurso de fala do Azure para obter a chave de API e o URI de ponto de extremidade associados.An Azure Speech resource to get the associated API key and endpoint URI. Ambos os valores estão disponíveis nas páginas visão geral de fala e chaves de portal do Azure.Both values are available on the Azure portal's Speech Overview and Keys pages. Eles são necessários para iniciar o contêiner.They are both required to start the container.

{Api_key}: uma das duas chaves de recurso disponíveis na página chaves{API_KEY}: One of the two available resource keys on the Keys page

{ENDPOINT_URI}: o ponto de extremidade conforme fornecido na página visão geral{ENDPOINT_URI}: The endpoint as provided on the Overview page

Solicitar acesso ao Registro de contêinerRequest access to the container registry

Preencha e envie o formulário de solicitação para solicitar acesso ao contêiner.Fill out and submit the request form to request access to the container.

O formulário solicita informações sobre você, sua empresa e o cenário do usuário para o qual você usará o contêiner.The form requests information about you, your company, and the user scenario for which you'll use the container. Depois de submetida, a equipe de Serviços Cognitivos do Azure revisa o formulário para garantir que você atenda aos critérios de acesso ao registro de contêiner privado.After you've submitted the form, the Azure Cognitive Services team reviews it to ensure that you meet the criteria for access to the private container registry.

Importante

Você deve usar um endereço de email associado a uma Conta Microsoft (MSA) ou uma conta do Microsoft Azure Active Directory (Azure AD) no formulário.You must use an email address that's associated with either a Microsoft Account (MSA) or Azure Active Directory (Azure AD) account in the form.

Se sua solicitação for aprovada, você receberá um email com instruções descrevendo como obter suas credenciais e acessar o registro de contêiner privado.If your request is approved, you'll receive an email with instructions that describe how to obtain your credentials and access the private container registry.

Use a CLI do Docker para autenticar o registro de contêiner privadoUse the Docker CLI to authenticate the private container registry

É possível autenticar com o registro de contêiner privado para Contêineres de Serviços Cognitivos, mas o método recomendado por meio da linha de comando é usando a CLI do Docker.You can authenticate with the private container registry for Cognitive Services Containers in any of several ways, but the recommended method from the command line is to use the Docker CLI.

Use o docker login comando, conforme mostrado no exemplo a seguir, para fazer logon no containerpreview.azurecr.io , o registro de contêiner privado para contêineres de serviços cognitivas.Use the docker login command, as shown in the following example, to log in to containerpreview.azurecr.io, the private container registry for Cognitive Services Containers. Substitua * < username > * pelo nome de usuário e * < senha > * pela senha fornecida nas credenciais que você recebeu da equipe de serviços cognitivas do Azure.Replace <username> with the user name and <password> with the password that's provided in the credentials you received from the Azure Cognitive Services team.

docker login containerpreview.azurecr.io -u <username> -p <password>

Se você tiver protegido suas credenciais em um arquivo de texto, poderá concatenar o conteúdo desse arquivo de texto, usando o comando cat para o comando docker login, conforme mostrado no exemplo a seguir.If you've secured your credentials in a text file, you can concatenate the contents of that text file, by using the cat command, to the docker login command, as shown in the following example. Substitua * < passwordfile > * pelo caminho e nome do arquivo de texto que contém a * < > senha e o nome de* usuário pelo que é fornecido em suas credenciais.Replace <passwordFile> with the path and name of the text file that contains the password and <username> with the user name that's provided in your credentials.

cat <passwordFile> | docker login containerpreview.azurecr.io -u <username> --password-stdin

Coletando parâmetros necessáriosGathering required parameters

Há três parâmetros principais para todos os contêineres de serviços cognitivas que são necessários.There are three primary parameters for all Cognitive Services' containers that are required. O contrato de licença de usuário final (EULA) deve estar presente com um valor de accept .The end-user license agreement (EULA) must be present with a value of accept. Além disso, uma URL de ponto de extremidade e uma chave de API são necessárias.Additionally, both an Endpoint URL and API Key are needed.

URI do ponto de extremidade{ENDPOINT_URI}Endpoint URI {ENDPOINT_URI}

O valor do URI do ponto de extremidade está disponível na página de visão geral portal do Azure do recurso de serviço cognitiva correspondente.The Endpoint URI value is available on the Azure portal Overview page of the corresponding Cognitive Service resource. Navegue até a página visão geral , focalize o ponto de extremidade e um Copy to clipboard ícone será exibido.Navigate to the Overview page, hover over the Endpoint, and a Copy to clipboard icon will appear. Copie e use onde for necessário.Copy and use where needed.

Coletar o URI do ponto de extremidade para uso posterior

Novas{API_KEY}Keys {API_KEY}

Essa chave é usada para iniciar o contêiner e está disponível na página chaves do portal do Azure do recurso de serviço cognitiva correspondente.This key is used to start the container, and is available on the Azure portal's Keys page of the corresponding Cognitive Service resource. Navegue até a página chaves e clique no Copy to clipboard ícone.Navigate to the Keys page, and click on the Copy to clipboard icon.

Obter uma das duas chaves para uso posterior

Importante

Essas chaves de assinatura são usadas para acessar sua API de serviço cognitiva.These subscription keys are used to access your Cognitive Service API. Não compartilhe suas chaves.Do not share your keys. Armazene-os com segurança, por exemplo, usando Azure Key Vault.Store them securely, for example, using Azure Key Vault. Também recomendamos regenerar essas chaves regularmente.We also recommend regenerating these keys regularly. Apenas uma chave é necessária para fazer uma chamada à API.Only one key is necessary to make an API call. Ao regenerar a primeira chave, você pode usar a segunda chave para obter acesso contínuo ao serviço.When regenerating the first key, you can use the second key for continued access to the service.

O computador hostThe host computer

O host é um computador baseado em x64 que executa o contêiner do Docker.The host is a x64-based computer that runs the Docker container. Ele pode ser um computador local ou um serviço de hospedagem do Docker no Azure, como:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Suporte à extensão de vetor avançadoAdvanced Vector Extension support

O host é o computador que executa o contêiner do Docker.The host is the computer that runs the docker container. O host deve dar suporte a extensões de vetor avançadas (AVX2).The host must support Advanced Vector Extensions (AVX2). Você pode verificar o suporte a AVX2 em hosts Linux com o seguinte comando:You can check for AVX2 support on Linux hosts with the following command:

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

Aviso

O computador host é necessário para dar suporte a AVX2.The host computer is required to support AVX2. O contêiner não funcionará corretamente sem o suporte do AVX2.The container will not function correctly without AVX2 support.

Recomendações e requisitos do contêinerContainer requirements and recommendations

A tabela a seguir descreve a alocação mínima e recomendada de recursos para cada contêiner de fala.The following table describes the minimum and recommended allocation of resources for each Speech container.

ContêinerContainer MínimoMinimum RecomendadasRecommended
Conversão de fala em textoSpeech-to-text 2 núcleos, 2 GB de memória2 core, 2-GB memory 4 núcleos, 4 GB de memória4 core, 4-GB memory
  • Cada núcleo precisa ser de pelo menos 2,6 GHz (gigahertz) ou mais rápido.Each core must be at least 2.6 gigahertz (GHz) or faster.

Memória e núcleo correspondem às configurações --cpus e --memory, que são usadas como parte do comando docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Observação

O mínimo e recomendado são baseados nos limites do Docker, não nos recursos da máquina host.The minimum and recommended are based off of Docker limits, not the host machine resources. Por exemplo, os contêineres de conversão de texto na memória mapeiam partes de um modelo de linguagem grande e é recomendável que todo o arquivo caiba na memória, que é de 4-6 GB adicionais.For example, speech-to-text containers memory map portions of a large language model, and it is recommended that the entire file fits in memory, which is an additional 4-6 GB. Além disso, a primeira execução de qualquer um dos contêineres pode levar mais tempo, pois os modelos estão sendo paginados na memória.Also, the first run of either container may take longer, since models are being paged into memory.

Obter a imagem de contêiner com docker pullGet the container image with docker pull

As imagens de contêiner para fala estão disponíveis no registro de contêiner a seguir.Container images for Speech are available in the following Container Registry.

ContêinerContainer RepositórioRepository
Conversão de fala em textoSpeech-to-text containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text:latest

Dica

Você pode usar o comando imagens do estivador para listar as imagens do contêiner transferidas por download.You can use the docker images command to list your downloaded container images. Por exemplo, o comando a seguir lista o ID, o repositório e a tag de cada imagem do contêiner transferida por download, formatada como uma tabela:For example, the following command lists the ID, repository, and tag of each downloaded container image, formatted as a table:

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

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

Pull do Docker para os contêineres de falaDocker pull for the Speech containers

Pull do Docker para o contêiner de conversão de fala em textoDocker pull for the Speech-to-text container

Use o comando Docker pull para baixar uma imagem de contêiner do registro de visualização de contêiner.Use the docker pull command to download a container image from Container Preview registry.

docker pull containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text:latest

Importante

A latest marca extrai a en-US localidade.The latest tag pulls the en-US locale. Para localidades adicionais, consulte localidades de fala para texto.For additional locales see Speech-to-text locales.

Localidades de conversão de fala em textoSpeech-to-text locales

Todas as marcas, exceto latest as estão no seguinte formato e diferenciam maiúsculas de minúsculas:All tags, except for latest are in the following format and are case-sensitive:

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

A marca a seguir é um exemplo do formato:The following tag is an example of the format:

2.3.1-amd64-en-us-preview

Para todas as localidades com suporte do contêiner de fala a texto , consulte marcas de imagem de fala para texto.For all of the supported locales of the speech-to-text container, please see Speech-to-text image tags.

Como usar o contêinerHow to use the container

Depois que o contêiner estiver no computador host, use o processo a seguir para trabalhar com o contêiner.Once the container is on the host computer, use the following process to work with the container.

  1. Execute o contêiner com as configurações de cobrança necessárias.Run the container, with the required billing settings. Há outros exemplos do comando docker run disponíveis.More examples of the docker run command are available.
  2. Consulte o ponto de extremidade de previsão do contêiner.Query the container's prediction endpoint.

Executar o contêiner com docker runRun the container with docker run

Use o comando docker run para executar o contêiner.Use the docker run command to run the container. Consulte coletando parâmetros necessários para obter detalhes sobre como obter os {Endpoint_URI} {API_Key} valores e.Refer to gathering required parameters for details on how to get the {Endpoint_URI} and {API_Key} values. Exemplos adicionais do docker run comando também estão disponíveis.Additional examples of the docker run command are also available.

Para executar o contêiner de conversão de fala em texto , execute o docker run comando a seguir.To run the Speech-to-text container, execute the following docker run command.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 4 \
containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Esse comando:This command:

  • Executa um contêiner de conversão de fala em texto da imagem de contêiner.Runs a Speech-to-text container from the container image.
  • Aloca 4 núcleos de CPU e 4 gigabytes (GB) de memória.Allocates 4 CPU cores and 4 gigabytes (GB) of memory.
  • Expõe a porta TCP 5000 e aloca um pseudo-TTY para o contêiner.Exposes TCP port 5000 and allocates a pseudo-TTY for the container.
  • Remove automaticamente o contêiner depois que ele sai.Automatically removes the container after it exits. A imagem de contêiner ainda fica disponível no computador host.The container image is still available on the host computer.

Analisar o sentimentos na saída de fala para textoAnalyze sentiment on the speech-to-text output

A partir do v 2.2.0 do contêiner de fala a texto, você pode chamar a API da análise de opiniões v3 na saída.Starting in v2.2.0 of the speech-to-text container, you can call the sentiment analysis v3 API on the output. Para chamar a análise de sentimentos, você precisará de um ponto de extremidade de recurso API de Análise de Texto.To call sentiment analysis, you will need a Text Analytics API resource endpoint. Por exemplo:For example:

  • https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0-preview.1/sentiment
  • https://localhost:5000/text/analytics/v3.0-preview.1/sentiment

Se você estiver acessando um ponto de extremidade de análise de texto na nuvem, será necessário uma chave.If you're accessing a Text analytics endpoint in the cloud, you will need a key. Se você estiver executando Análise de Texto localmente, talvez não seja necessário fornecer isso.If you're running Text Analytics locally, you may not need to provide this.

A chave e o ponto de extremidade são passados para o contêiner de fala como argumentos, como no exemplo a seguir.The key and endpoint are passed to the Speech container as arguments, as in the following example.

docker run -it --rm -p 5000:5000 \
containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
CloudAI:SentimentAnalysisSettings:TextAnalyticsHost={TEXT_ANALYTICS_HOST} \
CloudAI:SentimentAnalysisSettings:SentimentAnalysisApiKey={SENTIMENT_APIKEY}

Esse comando:This command:

  • Executa as mesmas etapas do comando acima.Performs the same steps as the command above.
  • Armazena um ponto de extremidade de API de Análise de Texto e uma chave para enviar solicitações de análise de sentimentos.Stores a Text Analytics API endpoint and key, for sending sentiment analysis requests.

Importante

As opções Eula, Billing e ApiKey devem ser especificadas para executar o contêiner; caso contrário, o contêiner não será iniciado.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Para mais informações, consulte Faturamento.For more information, see Billing.

Consultar o ponto de extremidade de previsão do contêinerQuery the container's prediction endpoint

Observação

Use um número de porta exclusivo se você estiver executando vários contêineres.Use a unique port number if you're running multiple containers.

ContêineresContainers URL do host do SDKSDK Host URL ProtocoloProtocol
Conversão de fala em texto e Fala Personalizada em textoSpeech-to-text and Custom Speech-to-text ws://localhost:5000 WSWS
Conversão de texto em fala e Text-to-Speech personalizadoText-to-speech and Custom Text-to-speech http://localhost:5000 HTTPHTTP

Para obter mais informações sobre como usar os protocolos do WSS e HTTPS, consulte segurança do contêiner.For more information on using WSS and HTTPS protocols, see container security.

Conversão de fala em texto ou Fala Personalizada em textoSpeech-to-text or Custom Speech-to-text

O contêiner fornece APIs de ponto de extremidade de consulta baseadas no WebSocket, que são acessadas por meio do SDK de fala.The container provides websocket-based query endpoint APIs, that are accessed through the Speech SDK. Por padrão, o SDK de fala usa os serviços de fala online.By default, the Speech SDK uses online speech services. Para usar o contêiner, você precisa alterar o método de inicialização.To use the container, you need to change the initialization method.

Dica

Ao usar o SDK de fala com contêineres, você não precisa fornecer a chave de assinatura de recurso de fala do Azure ou um token de portador de autenticação.When using the Speech SDK with containers, you do not need to provide the Azure Speech resource subscription key or an authentication bearer token.

Confira os exemplos abaixo.See the examples below.

Em vez de usar esta chamada de inicialização de nuvem do Azure:Change from using this Azure-cloud initialization call:

var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");

para essa chamada usando o hostdo contêiner:to this call using the container host:

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

Analisar sentimentoAnalyze sentiment

Se você forneceu suas credenciais de API de Análise de Texto para o contêiner, você pode usar o SDK de fala para enviar solicitações de reconhecimento de fala com análise de sentimentos.If you provided your Text Analytics API credentials to the container, you can use the Speech SDK to send speech recognition requests with sentiment analysis. Você pode configurar as respostas da API para usar um formato simples ou detalhado .You can configure the API responses to use either a simple or detailed format.

Para configurar o cliente de fala para usar um formato simples, adicione "Sentiment" como um valor para Simple.Extensions .To configure the Speech client to use a simple format, add "Sentiment" as a value for Simple.Extensions. Se você quiser escolher uma versão específica do modelo de Análise de Texto, substitua 'latest' na speechcontext-phraseDetection.sentimentAnalysis.modelversion configuração da propriedade.If you want to choose a specific Text Analytics model version, replace 'latest' in the speechcontext-phraseDetection.sentimentAnalysis.modelversion property configuration.

speech_config.set_service_property(
    name='speechcontext-PhraseOutput.Simple.Extensions',
    value='["Sentiment"]',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)
speech_config.set_service_property(
    name='speechcontext-phraseDetection.sentimentAnalysis.modelversion',
    value='latest',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)

Simple.Extensionsretornará o resultado de sentimentos na camada raiz da resposta.Simple.Extensions will return the sentiment result in root layer of the response.

{
   "DisplayText":"What's the weather like?",
   "Duration":13000000,
   "Id":"6098574b79434bd4849fee7e0a50f22e",
   "Offset":4700000,
   "RecognitionStatus":"Success",
   "Sentiment":{
      "Negative":0.03,
      "Neutral":0.79,
      "Positive":0.18
   }
}

Se você quiser desabilitar completamente a análise de sentimentos, adicione um false valor a sentimentanalysis.enabled .If you want to completely disable sentiment analysis, add a false value to sentimentanalysis.enabled.

speech_config.set_service_property(
    name='speechcontext-phraseDetection.sentimentanalysis.enabled',
    value='false',
    channel=speechsdk.ServicePropertyChannel.UriQueryParameter
)

Conversão de texto em fala ou personalizada para falaText-to-speech or Custom Text-to-speech

O contêiner fornece APIs de ponto de extremidade baseadas em REST.The container provides REST-based endpoint APIs. Há muitos projetos de código-fonte de exemplo para a plataforma, estrutura e variações de linguagem disponíveis.There are many sample source code projects for platform, framework, and language variations available.

Com o contêiner de conversão de texto em fala padrão , você deve confiar na localidade e na voz da marca de imagem que baixou.With the Standard Text-to-speech container, you should rely on the locale and voice of the image tag you downloaded. Por exemplo, se você baixou a latest marca, a localidade padrão é en-US e a JessaRUS voz.For example, if you downloaded the latest tag the default locale is en-US and the JessaRUS voice. {VOICE_NAME}Em seguida, o argumento seria en-US-JessaRUS .The {VOICE_NAME} argument would then be en-US-JessaRUS. Consulte o exemplo SSML abaixo:See the example SSML below:

<speak version="1.0" xml:lang="en-US">
    <voice name="en-US-JessaRUS">
        This text will get converted into synthesized speech.
    </voice>
</speak>

No entanto, para texto personalizado para fala , você precisará obter a voz/modelo do portal de voz personalizado.However, for Custom Text-to-speech you'll need to obtain the Voice / model from the custom voice portal. O nome do modelo personalizado é sinônimo do nome da voz.The custom model name is synonymous with the voice name. Navegue até a página de treinamento e copie a voz/modelo para usar como o {VOICE_NAME} argumento.Navigate to the Training page, and copy the Voice / model to use as the {VOICE_NAME} argument.

Modelo de voz personalizado-nome da voz

Consulte o exemplo SSML abaixo:See the example SSML below:

<speak version="1.0" xml:lang="en-US">
    <voice name="custom-voice-model">
        This text will get converted into synthesized speech.
    </voice>
</speak>

Vamos construir uma solicitação HTTP POST, fornecendo alguns cabeçalhos e uma carga de dados.Let's construct an HTTP POST request, providing a few headers and a data payload. Substitua o {VOICE_NAME} espaço reservado pelo seu próprio valor.Replace the {VOICE_NAME} placeholder with your own value.

curl -s -v -X POST http://localhost:5000/speech/synthesize/cognitiveservices/v1 \
 -H 'Accept: audio/*' \
 -H 'Content-Type: application/ssml+xml' \
 -H 'X-Microsoft-OutputFormat: riff-16khz-16bit-mono-pcm' \
 -d '<speak version="1.0" xml:lang="en-US"><voice name="{VOICE_NAME}">This is a test, only a test.</voice></speak>'

Esse comando:This command:

  • Constrói uma solicitação HTTP POST para o speech/synthesize/cognitiveservices/v1 ponto de extremidade.Constructs an HTTP POST request for the speech/synthesize/cognitiveservices/v1 endpoint.
  • Especifica um Accept cabeçalho deaudio/*Specifies an Accept header of audio/*
  • Especifica um Content-Type cabeçalho de application/ssml+xml , para obter mais informações, consulte corpo da solicitação.Specifies a Content-Type header of application/ssml+xml, for more information, see request body.
  • Especifica um X-Microsoft-OutputFormat cabeçalho de riff-16khz-16bit-mono-pcm , para obter mais opções, consulte saída de áudio.Specifies a X-Microsoft-OutputFormat header of riff-16khz-16bit-mono-pcm, for more options see audio output.
  • Envia a solicitação de linguagem de marcação de síntese de fala (SSML) de acordo {VOICE_NAME} com o ponto de extremidade.Sends the Speech Synthesis Markup Language (SSML) request given the {VOICE_NAME} to the endpoint.

Executar vários contêineres no mesmo hostRun multiple containers on the same host

Se você pretende executar vários contêineres com portas expostas, execute cada um deles com uma porta exposta diferente.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Por exemplo, execute o primeiro contêiner na porta 5000 e o segundo contêiner na porta 5001.For example, run the first container on port 5000 and the second container on port 5001.

É possível ter esse contêiner e um contêiner dos Serviços Cognitivos do Azure em execução no HOST juntos.You can have this container and a different Azure Cognitive Services container running on the HOST together. Também é possível ter vários contêineres do mesmo contêiner dos Serviços Cognitivos em execução.You also can have multiple containers of the same Cognitive Services container running.

Validar se um contêiner está em execuçãoValidate that a container is running

Há várias maneiras de validar se um contêiner está em execução.There are several ways to validate that the container is running. Localize o endereço IP externo e a porta exposta do contêiner em questão e abra seu navegador da Web favorito.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Use as várias URLs de solicitação abaixo para validar se o contêiner está em execução.Use the various request URLs below to validate the container is running. As URLs de solicitação de exemplo listadas abaixo são http://localhost:5000 , mas o seu contêiner específico pode variar.The example request URLs listed below are http://localhost:5000, but your specific container may vary. Tenha em mente que você depende do endereço IP externo do seu contêiner e da porta exposta.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL da solicitaçãoRequest URL FinalidadePurpose
http://localhost:5000/ O contêiner oferece uma home page.The container provides a home page.
http://localhost:5000/ready Solicitado com GET, isso fornece uma verificação de que o contêiner está pronto para aceitar uma consulta no modelo.Requested with GET, this provides a verification that the container is ready to accept a query against the model. Essa solicitação pode ser usada para testes de preparação e de execução do Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/status Também solicitado com GET, isso verifica se a chave de API usada para iniciar o contêiner é válida sem causar uma consulta de ponto de extremidade.Also requested with GET, this verifies if the api-key used to start the container is valid without causing an endpoint query. Essa solicitação pode ser usada para testes de preparação e de execução do Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger O contêiner fornece um conjunto completo de documentação para os pontos de extremidade e um recurso Experimente .The container provides a full set of documentation for the endpoints and a Try it out feature. Com esse recurso, é possível inserir suas configurações em um formulário HTML baseado na Web e realizar a consulta sem precisar escrever nenhum código.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Após a consulta ser retornada, um exemplo de comando CURL será fornecido para demonstrar o formato do corpo e dos cabeçalhos HTTP exigidos.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Home page do contêiner

Parar o contêinerStop the container

Para desligar o contêiner, no ambiente de linha de comando em que o contêiner está em execução, selecione Ctrl + C.To shut down the container, in the command-line environment where the container is running, select Ctrl+C.

Solução de problemasTroubleshooting

Ao iniciar ou executar o contêiner, você poderá ter problemas.When starting or running the container, you may experience issues. Use uma montagem de saída e habilite o registro em log.Use an output mount and enable logging. Isso permitirá que o contêiner gere arquivos de log que são úteis ao solucionar problemas.Doing so will allow the container to generate log files that are helpful when troubleshooting issues.

Dica

Para obter mais informações e diretrizes de solução de problemas, consulte perguntas frequentes sobre os contêineres de serviços cognitivas.For more troubleshooting information and guidance, see Cognitive Services containers frequently asked questions (FAQ).

CobrançaBilling

Os contêineres de fala enviam informações de cobrança para o Azure, usando um recurso de fala em sua conta do Azure.The Speech containers send billing information to Azure, using a Speech resource on your Azure account.

Consultas ao contêiner são cobradas pelo tipo de preço do recurso do Azure usado para ApiKey.Queries to the container are billed at the pricing tier of the Azure resource that's used for the ApiKey.

Os contêineres de serviços cognitivas do Azure não são licenciados para serem executados sem serem conectados ao ponto de extremidade de medição/cobrança.Azure Cognitive Services containers aren't licensed to run without being connected to the metering / billing endpoint. Você precisa permitir que os contêineres comuniquem as informações de cobrança com o ponto de extremidade de cobrança em todos os momentos.You must enable the containers to communicate billing information with the billing endpoint at all times. Os contêineres dos Serviços Cognitivos não enviam dados do cliente, como imagem ou texto que está sendo analisado, para a Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Conecte-se ao AzureConnect to Azure

O contêiner precisa dos valores de argumento de cobrança para ser executado.The container needs the billing argument values to run. Esses valores permitem que o contêiner se conecte ao ponto de extremidade de cobrança.These values allow the container to connect to the billing endpoint. O contêiner relata o uso a cada 10 a 15 minutos.The container reports usage about every 10 to 15 minutes. Se o contêiner não se conectar ao Azure dentro da janela de tempo permitida, ele continuará sendo executado, mas não atenderá a consultas até que o ponto de extremidade de cobrança seja restaurado.If the container doesn't connect to Azure within the allowed time window, the container continues to run but doesn't serve queries until the billing endpoint is restored. Serão realizadas 10 tentativas de conexão no mesmo intervalo de tempo de 10 a 15 minutos.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Se ele não puder se conectar ao ponto de extremidade de cobrança dentro de 10 tentativas, o contêiner parará de atender solicitações.If it can't connect to the billing endpoint within the 10 tries, the container stops serving requests.

Argumentos de cobrançaBilling arguments

docker run O comando iniciará o contêiner quando todas as três opções a seguir forem fornecidas com valores válidos:The docker run command will start the container when all three of the following options are provided with valid values:

OpçãoOption DescriçãoDescription
ApiKey A chave de API do recurso dos Serviços Cognitivos usado para rastrear informações de cobrança.The API key of the Cognitive Services resource that's used to track billing information.
O valor dessa opção deve ser definido como uma chave de API para o recurso provisionado especificado em Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing O ponto de extremidade do recurso dos Serviços Cognitivos usado para rastrear informações de cobrança.The endpoint of the Cognitive Services resource that's used to track billing information.
O valor dessa opção deve ser definido como o URI do ponto de extremidade de um recurso do Azure provisionado.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indica que você aceitou a licença do contêiner.Indicates that you accepted the license for the container.
O valor dessa opção deve ser definido como aceitar.The value of this option must be set to accept.

Para obter mais informações sobre essas opções, consulte Configurar contêineres.For more information about these options, see Configure containers.

Postagens no blogBlog posts

Exemplos do desenvolvedorDeveloper samples

Exemplos de desenvolvedor estão disponíveis em nosso repositório do GitHub.Developer samples are available at our GitHub repository.

Ver webinarView webinar

Participe do webinar para aprender a:Join the webinar to learn about:

  • Implantar os Serviços Cognitivos em qualquer computador que usa o DockerHow to deploy Cognitive Services to any machine using Docker
  • Implantar os Serviços Cognitivos no AKSHow to deploy Cognitive Services to AKS

ResumoSummary

Neste artigo, você aprendeu os conceitos e o fluxo de trabalho para baixar, instalar e executar contêineres de fala.In this article, you learned concepts and workflow for downloading, installing, and running Speech containers. Em resumo:In summary:

  • A fala fornece quatro contêineres do Linux para o Docker, encapsulando vários recursos:Speech provides four Linux containers for Docker, encapsulating various capabilities:
    • Conversão de fala em textoSpeech-to-text
    • Fala Personalizada para textoCustom Speech-to-text
    • Conversão de texto em falaText-to-speech
    • Conversão de texto em fala personalizadaCustom Text-to-speech
  • As imagens de contêiner são baixadas do registro de contêiner no Azure.Container images are downloaded from the container registry in Azure.
  • Imagens de contêiner são executadas no Docker.Container images run in Docker.
  • Se estiver usando a API REST (somente conversão de texto em fala) ou o SDK (fala-para-texto ou conversão de texto em fala), especifique o URI do host do contêiner.Whether using the REST API (Text-to-speech only) or the SDK (Speech-to-text or Text-to-speech) you specify the host URI of the container.
  • Você precisa fornecer informações de cobrança ao criar uma instância de um contêiner.You're required to provide billing information when instantiating a container.

Importante

Os contêineres dos Serviços Cognitivos não estão licenciados para execução sem estarem conectados ao Azure para medição.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Os clientes precisam ativar os contêineres para comunicar informações de cobrança com o serviço de medição em todos os momentos.Customers need to enable the containers to communicate billing information with the metering service at all times. Os contêineres de Serviços Cognitivos não enviam dados do cliente (por exemplo, a imagem ou o texto que está sendo analisado) para a Microsoft.Cognitive Services containers do not send customer data (e.g., the image or text that is being analyzed) to Microsoft.

Próximas etapasNext steps