Instalación y ejecución de contenedores del servicio de voz (versión preliminar)Install and run Speech service containers (Preview)

Los contenedores le permiten ejecutar algunas de las API del servicio de voz en su propio entorno.Containers enable you to run some of the Speech service APIs in your own environment. Los contenedores son excelentes para requisitos específicos de control de datos y seguridad.Containers are great for specific security and data governance requirements. En este artículo, aprenderá a descargar, instalar y ejecutar un contenedor de Voz.In this article you'll learn how to download, install, and run a Speech container.

Los contenedores de Voz permiten a los clientes compilar una arquitectura de aplicación de voz optimizada para las sólidas funcionalidades de la nube y la localidad del perímetro.Speech containers enable customers to build a speech application architecture that is optimized for both robust cloud capabilities and edge locality. Hay cuatro contenedores distintos disponibles.There are four different containers available. Los dos contenedores estándar son conversión de voz a texto y conversión de texto a voz.The two standard containers are Speech-to-text and Text-to-speech. Los dos contenedores personalizados son conversión de voz a texto personalizada y conversión de texto a voz personalizada.The two custom containers are Custom Speech-to-text and Custom Text-to-speech. Los contenedores de Voz tienen el mismo precio que los servicios de Voz de Azure basados en la nube.Speech containers have the same pricing as the cloud-based Azure Speech Services.

Importante

Actualmente, todos los contenedores de voz se ofrecen como parte de una versión preliminar pública "validada".All speech containers are currently offered as part of a Public "Gated" Preview. Se hará un anuncio cuando los contenedores de voz pasen a la disponibilidad general (GA).An announcement will be made when speech containers progress to General Availability (GA).

FunciónFunction CaracterísticasFeatures Más recienteLatest
Voz a textoSpeech-to-text Analice opiniones y transcriba grabaciones continuas de audio por lotes o de voz en tiempo real con resultados intermedios.Analyzes sentiment and transcribes continuous real-time speech or batch audio recordings with intermediate results. 2.3.12.3.1
Conversión de voz a texto personalizadaCustom Speech-to-text Con un modelo personalizado del portal de Habla personalizada, transcribe las grabaciones continuas de voz en tiempo real o de audio por lotes a texto con resultados inmediatos.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
Texto a vozText-to-speech Convierte texto a voz de sonido natural con entrada de texto sin formato o Lenguaje de marcado de síntesis de voz (SSML).Converts text to natural-sounding speech with plain text input or Speech Synthesis Markup Language (SSML). 1.5.01.5.0
Conversión de texto a voz personalizadaCustom Text-to-speech Con un modelo personalizado del portal de Voz personalizada, convierte texto a voz de sonido natural con entrada de texto sin formato o Lenguaje de marcado de síntesis de voz (SSML).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

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Requisitos previos para poder usar los contenedores de Voz:The following prerequisites before using Speech containers:

ObligatorioRequired PropósitoPurpose
Motor de DockerDocker Engine Necesita que el motor de Docker esté instalado en un equipo host.You need the Docker Engine installed on a host computer. Docker dispone de paquetes que configuran el entorno de Docker en macOS, Windows y Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Para conocer los principios básicos de Docker y de los contenedores, consulte Introducción a Docker.For a primer on Docker and container basics, see the Docker overview.

Docker debe configurarse para permitir que los contenedores se conecten con Azure y envíen datos de facturación a dicho servicio.Docker must be configured to allow the containers to connect with and send billing data to Azure.

En Windows, Docker también debe estar configurado de forma que admita los contenedores de Linux.On Windows, Docker must also be configured to support Linux containers.

Conocimientos sobre DockerFamiliarity with Docker Debe tener conocimientos básicos sobre los conceptos de Docker, como los registros, los repositorios, los contenedores y las imágenes de contenedor, así como conocer los comandos docker básicos.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 VozSpeech resource Para usar estos contenedores, debe tener:In order to use these containers, you must have:

Recurso de Voz de Azure para obtener la clave de API y el URI de punto de conexión asociados.An Azure Speech resource to get the associated API key and endpoint URI. Ambos valores están disponibles en las páginas Introducción y Claves de Voz de Azure Portal.Both values are available on the Azure portal's Speech Overview and Keys pages. Los dos son necesarios para iniciar el contenedor.They are both required to start the container.

{API_KEY} : una de las dos claves de recurso disponibles en la página Claves{API_KEY}: One of the two available resource keys on the Keys page

{ENDPOINT_URI} : el punto de conexión tal como se proporciona en la página de Información general.{ENDPOINT_URI}: The endpoint as provided on the Overview page

Solicitud de acceso al registro de contenedorRequest access to the container registry

Rellene y envíe el formulario de solicitud para solicitar acceso al contenedor.Fill out and submit the request form to request access to the container.

El formulario solicita información acerca del usuario y de su empresa, así como del escenario de usuario para el que se va a usar el contenedor.The form requests information about you, your company, and the user scenario for which you'll use the container. Después de haber enviado el formulario, el equipo de Azure Cognitive Services lo revisa para asegurarse de que cumple los criterios de acceso al registro de contenedor 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

Debe usar una dirección de correo electrónico que esté asociada con una cuenta de Microsoft (MSA) o de Azure Active Directory (Azure AD) en el formulario.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.

Si se aprueba la solicitud, recibirá un correo electrónico con instrucciones que describen cómo obtener las credenciales y tener acceso al registro de contenedor 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.

Uso de la CLI de Docker para autenticar un registro de contenedor privadoUse the Docker CLI to authenticate the private container registry

Puede autenticarse con el registro de contenedor privado de contenedores de Cognitive Services, pero el método recomendado de la línea de comandos es mediante el uso de la CLI de 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 el comando docker login, como se muestra en el ejemplo siguiente, para iniciar sesión en containerpreview.azurecr.io, el registro de contenedor privado de los contenedores de Cognitive Services.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. Reemplace <username> por el nombre de usuario y <password> por la contraseña proporcionada en las credenciales que recibió del equipo de Azure Cognitive Services.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>

Si ha protegido las credenciales en un archivo de texto, puede concatenar el contenido de dicho archivo de texto, mediante el comando cat, al comando docker login, tal como se muestra en el ejemplo siguiente.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. Reemplace <passwordFile> por la ruta de acceso y el nombre del archivo de texto que contiene la contraseña, y <username> por el nombre de usuario proporcionado en las credenciales.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

Recopilación de los parámetros obligatoriosGathering required parameters

Hay tres parámetros principales para todos los contenedores de Cognitive Services que son necesarios.There are three primary parameters for all Cognitive Services' containers that are required. El contrato de licencia para el usuario final (CLUF) debe estar presente con un valor de accept.The end-user license agreement (EULA) must be present with a value of accept. Además, se necesitan una dirección URL de punto de conexión y una clave de API.Additionally, both an Endpoint URL and API Key are needed.

URI de punto de conexión {ENDPOINT_URI}Endpoint URI {ENDPOINT_URI}

El valor del URI del punto de conexión está disponible en la página Información general de Azure Portal del recurso de Cognitive Services correspondiente.The Endpoint URI value is available on the Azure portal Overview page of the corresponding Cognitive Service resource. Vaya a la página Información general, mantenga el cursor sobre el punto de conexión y aparecerá un icono Copy to clipboard .Navigate to the Overview page, hover over the Endpoint, and a Copy to clipboard icon will appear. Cópielo y utilícelo cuando sea necesario.Copy and use where needed.

Recopilación el URI del punto de conexión para su uso posterior

Claves {API_KEY}Keys {API_KEY}

Esta clave se usa para iniciar el contenedor y está disponible en la página de claves de Azure Portal del recurso de Cognitive Services correspondiente.This key is used to start the container, and is available on the Azure portal's Keys page of the corresponding Cognitive Service resource. Vaya a la página Claves y haga clic en el icono Copy to clipboard .Navigate to the Keys page, and click on the Copy to clipboard icon.

Obtención de una de las dos claves para su uso posterior

Importante

Estas claves de suscripción se usan para tener acceso a la API de Cognitive Services.These subscription keys are used to access your Cognitive Service API. No comparta las claves.Do not share your keys. Almacénelas de forma segura, por ejemplo, con Azure Key Vault.Store them securely, for example, using Azure Key Vault. También se recomienda regenerar estas claves periódicamente.We also recommend regenerating these keys regularly. Solo se necesita una clave para realizar una llamada API.Only one key is necessary to make an API call. Al volver a generar la primera clave, puede usar la segunda clave para seguir teniendo acceso al servicio.When regenerating the first key, you can use the second key for continued access to the service.

El equipo hostThe host computer

El host es un equipo basado en x64 que ejecuta el contenedor de Docker.The host is a x64-based computer that runs the Docker container. Puede ser un equipo del entorno local o un servicio de hospedaje de Docker incluido en Azure, como:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Compatibilidad con la extensión avanzada de vectorAdvanced Vector Extension support

El host es el equipo que ejecuta el contenedor de Docker.The host is the computer that runs the docker container. El host debe ser compatible con las extensiones avanzadas de vector (AVX2).The host must support Advanced Vector Extensions (AVX2). Puede comprobar la compatibilidad con AVX2 en los hosts de Linux con el comando siguiente: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

Advertencia

El equipo host es necesario para admitir AVX2.The host computer is required to support AVX2. El contenedor no funcionará correctamente sin compatibilidad con AVX2.The container will not function correctly without AVX2 support.

Recomendaciones y requisitos del contenedorContainer requirements and recommendations

En la tabla siguiente se describe la asignación mínima y recomendada de recursos para cada contenedor de Voz.The following table describes the minimum and recommended allocation of resources for each Speech container.

ContenedorContainer MínimaMinimum RecomendadoRecommended
Voz a textoSpeech-to-text 2 núcleos, 2 GB de memoria2 core, 2-GB memory 4 núcleos, 4 GB de memoria4 core, 4-GB memory
  • Cada núcleo debe ser de 2,6 gigahercios (GHz) como mínimo.Each core must be at least 2.6 gigahertz (GHz) or faster.

El núcleo y la memoria se corresponden con los valores de --cpus y --memory que se usan como parte del comando docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Nota

Los valores mínimos y recomendados se basan en los límites de Docker y no en los recursos de la máquina host.The minimum and recommended are based off of Docker limits, not the host machine resources. Por ejemplo, partes de la asignación de memoria de contenedores de voz a texto de un modelo grande de lenguaje, y se recomienda que todo el archivo se ajuste en memoria, que es de 4 a 6 GB adicionales.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. Además, la primera ejecución de cualquier contenedor puede tardar más, dado que los modelos se van a paginar en la memoria.Also, the first run of either container may take longer, since models are being paged into memory.

Obtención de la imagen del contenedor con docker pullGet the container image with docker pull

Las imágenes de contenedor para Voz están disponibles en la instancia de Container Registry siguiente.Container images for Speech are available in the following Container Registry.

ContenedorContainer RepositorioRepository
Voz a textoSpeech-to-text containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text:latest

Sugerencia

Puede usar el comando docker images para enumerar las imágenes de contenedor descargadas.You can use the docker images command to list your downloaded container images. Por ejemplo, el comando siguiente muestra el id., el repositorio y la etiqueta de cada imagen de contenedor descargada, con formato de tabla: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>

Docker pull para los contenedores de VozDocker pull for the Speech containers

Docker pull para el contenedor de conversión de voz a textoDocker pull for the Speech-to-text container

Use el comando docker pull para descargar una imagen de contenedor desde la versión preliminar del registro de contenedor.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

La etiqueta latest extrae la configuración regional en-US.The latest tag pulls the en-US locale. Para otras configuraciones regionales, consulte Configuración regional de conversión de voz a texto.For additional locales see Speech-to-text locales.

Configuraciones regionales de voz a textoSpeech-to-text locales

Todas las etiquetas, a excepción de latest tienen el formato siguiente y distinguen mayúsculas de minúsculas:All tags, except for latest are in the following format and are case-sensitive:

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

La etiqueta siguiente es un ejemplo del formato:The following tag is an example of the format:

2.3.1-amd64-en-us-preview

Para ver todas las configuraciones regionales admitidas del contenedor de conversión de voz a texto, consulte las etiquetas de imágenes de la conversión de voz a texto.For all of the supported locales of the speech-to-text container, please see Speech-to-text image tags.

Uso del contenedorHow to use the container

Una vez que el contenedor esté en el equipo host, utilice el siguiente proceso para trabajar con el contenedor.Once the container is on the host computer, use the following process to work with the container.

  1. Ejecute el contenedor con la configuración de facturación requerida.Run the container, with the required billing settings. Hay más ejemplos del comando docker run disponibles.More examples of the docker run command are available.
  2. Consulta del punto de conexión de predicción del contenedor.Query the container's prediction endpoint.

Ejecute el contenedor con docker run.Run the container with docker run

Utilice el comando docker run para ejecutar el contenedor.Use the docker run command to run the container. Consulte Recopilación de los parámetros obligatorios para más información sobre cómo obtener los valores de {Endpoint_URI} y {API_Key}.Refer to gathering required parameters for details on how to get the {Endpoint_URI} and {API_Key} values. También hay disponibles otros ejemplos del comando docker run.Additional examples of the docker run command are also available.

Para ejecutar el contenedor Conversión de voz a texto, ejecute el comando docker run siguiente.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}

Este comando:This command:

  • Ejecuta un contenedor Conversión de voz a texto desde la imagen de contenedor.Runs a Speech-to-text container from the container image.
  • Asigna 4 núcleos de CPU y 4 gigabytes (GB) de memoria.Allocates 4 CPU cores and 4 gigabytes (GB) of memory.
  • Expone el puerto TCP 5000 y asigna un seudo-TTY para el contenedor.Exposes TCP port 5000 and allocates a pseudo-TTY for the container.
  • Una vez que se produce la salida, quita automáticamente el contenedor.Automatically removes the container after it exits. La imagen del contenedor sigue estando disponible en el equipo host.The container image is still available on the host computer.

Análisis de la opinión sobre la salida de voz a textoAnalyze sentiment on the speech-to-text output

A partir de la versión 2.2.0 del contenedor de voz a texto, puede llamar a la API de análisis de opiniones v3.Starting in v2.2.0 of the speech-to-text container, you can call the sentiment analysis v3 API on the output. Para llamar al análisis de opiniones, necesitará un punto de conexión de recurso de Text Analytics API.To call sentiment analysis, you will need a Text Analytics API resource endpoint. Por ejemplo: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

Si tiene acceso a un punto de conexión de análisis de texto en la nube, necesitará una clave.If you're accessing a Text analytics endpoint in the cloud, you will need a key. Si ejecuta Text Analytics localmente, es posible que no tenga que proporcionarla.If you're running Text Analytics locally, you may not need to provide this.

La clave y el punto de conexión se pasan al contenedor de Voz en forma de argumentos, como en el ejemplo siguiente.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}

Este comando:This command:

  • Realiza los mismos pasos que el comando anterior.Performs the same steps as the command above.
  • Almacena un punto de conexión y una clave de Text Analytics API para el envío de solicitudes de análisis de opiniones.Stores a Text Analytics API endpoint and key, for sending sentiment analysis requests.

Importante

Para poder ejecutar el contenedor, las opciones Eula, Billing y ApiKey deben estar especificadas; de lo contrario, el contenedor no se iniciará.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Para obtener más información, vea Facturación.For more information, see Billing.

Consulta del punto de conexión de predicción del contenedorQuery the container's prediction endpoint

Nota

Use un número de puerto único si ejecuta varios contenedores.Use a unique port number if you're running multiple containers.

ContenedoresContainers Dirección URL del host del SDKSDK Host URL ProtocoloProtocol
Conversión de voz en texto y conversión de voz en texto personalizadaSpeech-to-text and Custom Speech-to-text ws://localhost:5000 WSWS
Conversión de texto a voz y conversión de texto a voz personalizadaText-to-speech and Custom Text-to-speech http://localhost:5000 HTTPHTTP

Para más información sobre cómo usar los protocolos WSS y HTTPS, consulte la seguridad del contenedor.For more information on using WSS and HTTPS protocols, see container security.

Conversión de voz a texto o Conversión de voz a texto personalizadaSpeech-to-text or Custom Speech-to-text

El contenedor proporciona las API de punto de conexión de consulta basadas en WebSocket, a las que se accede mediante el SDK de Voz.The container provides websocket-based query endpoint APIs, that are accessed through the Speech SDK. De forma predeterminada, el SDK de Voz usa servicios de voz en línea.By default, the Speech SDK uses online speech services. Para usar el contenedor, deberá cambiar el método de inicialización.To use the container, you need to change the initialization method.

Sugerencia

Al usar el SDK de Voz con los contenedores, no es necesario proporcionar la clave de suscripción del recurso de Voz de Azure o un token de portador de autenticación.When using the Speech SDK with containers, you do not need to provide the Azure Speech resource subscription key or an authentication bearer token.

Consulte los ejemplos siguientes.See the examples below.

Cambie de usar esta llamada de inicialización en la nube de Azure:Change from using this Azure-cloud initialization call:

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

por esta llamada mediante el host de contenedor:to this call using the container host:

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

Análisis de opiniónAnalyze sentiment

Si proporcionó sus credenciales de Text Analytics API al contenedor, puede usar el SDK de Voz para enviar solicitudes de reconocimiento de voz con análisis de opiniones.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. Puede configurar las respuestas de la API para usar un formato simple o detallado.You can configure the API responses to use either a simple or detailed format.

Para configurar el cliente de Voz de forma que use un formato simple, agregue "Sentiment" como valor para Simple.Extensions.To configure the Speech client to use a simple format, add "Sentiment" as a value for Simple.Extensions. Si quiere elegir una versión específica del modelo de Text Analytics, reemplace 'latest' en la configuración de la propiedad speechcontext-phraseDetection.sentimentAnalysis.modelversion.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.Extensions devolverá el resultado de la opinión en la capa raíz de la respuesta.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
   }
}

Si quiere deshabilitar por completo el análisis de opiniones, agregue un valor false 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
)

Conversión de texto a voz o conversión de texto a voz personalizadaText-to-speech or Custom Text-to-speech

El contenedor proporciona API de punto de conexión basadas en REST.The container provides REST-based endpoint APIs. Hay muchos proyectos de código fuente de ejemplo disponibles para las variaciones de lenguaje, marco y plataforma.There are many sample source code projects for platform, framework, and language variations available.

Con el contenedor Conversión de texto a voz estándar, debe basarse en la configuración regional y en la voz de la etiqueta de imagen que descargó.With the Standard Text-to-speech container, you should rely on the locale and voice of the image tag you downloaded. Por ejemplo, si descargó la etiqueta latest, la configuración regional predeterminada es en-US y la voz JessaRUS.For example, if you downloaded the latest tag the default locale is en-US and the JessaRUS voice. El argumento {VOICE_NAME} sería en-US-JessaRUS.The {VOICE_NAME} argument would then be en-US-JessaRUS. Vea el SSML de ejemplo siguiente: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>

Sin embargo, para Conversión de texto a voz personalizada, tendrá que obtener el valor de Voice / model desde el portal de Voz personalizada.However, for Custom Text-to-speech you'll need to obtain the Voice / model from the custom voice portal. El nombre del modelo personalizado es sinónimo del nombre de la voz.The custom model name is synonymous with the voice name. Vaya a la página de entrenamiento y copie el valor de Voice / model que se va a usar como el argumento {VOICE_NAME}.Navigate to the Training page, and copy the Voice / model to use as the {VOICE_NAME} argument.

Modelo de Voz personalizada: nombre de voz

Vea el SSML de ejemplo siguiente: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 a crear una solicitud HTTP POST, proporcionando algunos encabezados y una carga de datos.Let's construct an HTTP POST request, providing a few headers and a data payload. Reemplace el marcador de posición {VOICE_NAME} por un valor propio.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>'

Este comando:This command:

  • Construye una solicitud HTTP POST para el punto de conexión speech/synthesize/cognitiveservices/v1.Constructs an HTTP POST request for the speech/synthesize/cognitiveservices/v1 endpoint.
  • Especifica un encabezado Accept de audio/*Specifies an Accept header of audio/*
  • Especifica un encabezado Content-Type de application/ssml+xml. Para más información, consulte el cuerpo de la solicitud.Specifies a Content-Type header of application/ssml+xml, for more information, see request body.
  • Especifica un encabezado X-Microsoft-OutputFormat de riff-16khz-16bit-mono-pcm. Para más opciones, consulte la salida de audio.Specifies a X-Microsoft-OutputFormat header of riff-16khz-16bit-mono-pcm, for more options see audio output.
  • Envía la solicitud Lenguaje de marcado de síntesis de voz (SSML) dado el {VOICE_NAME} al punto de conexión.Sends the Speech Synthesis Markup Language (SSML) request given the {VOICE_NAME} to the endpoint.

Ejecución de varios contenedores en el mismo hostRun multiple containers on the same host

Si tiene pensado ejecutar varios contenedores con puertos expuestos, asegúrese de que ejecuta cada contenedor con un puerto expuesto diferente.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Por ejemplo, ejecute el primer contenedor en el puerto 5000 y el segundo en el puerto 5001.For example, run the first container on port 5000 and the second container on port 5001.

Puede tener este contenedor y un contenedor de Azure Cognitive Services diferente en ejecución simultáneamente en el HOST.You can have this container and a different Azure Cognitive Services container running on the HOST together. También puede tener varios contenedores del mismo contenedor de Cognitive Services en ejecución.You also can have multiple containers of the same Cognitive Services container running.

Comprobación de que un contenedor está en ejecuciónValidate that a container is running

Hay varias maneras de comprobar que el contenedor está en ejecución.There are several ways to validate that the container is running. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Use las distintas direcciones URL de solicitud para validar que el contenedor se está ejecutando.Use the various request URLs below to validate the container is running. Las direcciones URL de solicitud de ejemplo que se enumeran a continuación son http://localhost:5000, pero el contenedor específico puede variar.The example request URLs listed below are http://localhost:5000, but your specific container may vary. Tenga en cuenta que va a confiar en la dirección IP externa y el puerto expuesto del contenedor.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL de la solicitudRequest URL PropósitoPurpose
http://localhost:5000/ El contenedor ofrece una página principal.The container provides a home page.
http://localhost:5000/status Se solicitó con HTTP GET, para comprobar que el contenedor está en ejecución sin causar una consulta al punto de conexión.Requested with an HTTP GET, to validate that the container is running without causing an endpoint query. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger El contenedor cuenta con un completo conjunto de documentación sobre los puntos de conexión y una característica de prueba.The container provides a full set of documentation for the endpoints and a Try it out feature. Esta característica le permite especificar la configuración en un formulario HTML basado en web y realizar la consulta sin necesidad de escribir 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. Una vez que la consulta devuelve resultados, se proporciona un ejemplo del comando CURL para mostrar los encabezados HTTP y el formato de cuerpo requeridos.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Página principal del contenedor

Detención del contenedorStop the container

Para apagar el contenedor, en el entorno de la línea de comandos donde se ejecuta el contenedor, seleccione Ctrl + C.To shut down the container, in the command-line environment where the container is running, select Ctrl+C.

Solución de problemasTroubleshooting

Puede encontrar algunos problemas al iniciar o ejecutar el contenedor.When starting or running the container, you may experience issues. Use un montaje de salida y habilite el registro.Use an output mount and enable logging. Si lo hace, permitirá que el contenedor genere archivos de registro que son útiles para solucionar problemas.Doing so will allow the container to generate log files that are helpful when troubleshooting issues.

Sugerencia

Para más información e instrucciones para solución de problemas, vea Preguntas frecuentes de los contenedores de Cognitive Services .For more troubleshooting information and guidance, see Cognitive Services containers frequently asked questions (FAQ).

FacturaciónBilling

Los contenedores de Voz envían información de facturación a Azure mediante un recurso de Voz en la cuenta de Azure.The Speech containers send billing information to Azure, using a Speech resource on your Azure account.

Las consultas en el contenedor se facturan con el plan de tarifa del recurso de Azure que se usa para ApiKey.Queries to the container are billed at the pricing tier of the Azure resource that's used for the ApiKey.

Los contenedores de Azure Cognitive Services no tienen licencia para ejecutarse si no están conectados al punto de conexión de facturación o a las mediciones.Azure Cognitive Services containers aren't licensed to run without being connected to the metering / billing endpoint. Debe habilitar los contenedores para que comuniquen la información de facturación al punto de conexión de facturación en todo momento.You must enable the containers to communicate billing information with the billing endpoint at all times. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Conexión con AzureConnect to Azure

El contenedor necesita que se ejecuten los valores del argumento de facturación.The container needs the billing argument values to run. Estos valores permiten al contenedor conectarse al punto de conexión de facturación.These values allow the container to connect to the billing endpoint. El contenedor informa sobre el uso cada 10 a 15 minutos.The container reports usage about every 10 to 15 minutes. Si el contenedor no se conecta a Azure en la ventana de tiempo permitida, continuará ejecutándose pero no atenderá las consultas hasta que se restaure el punto de conexión de facturación.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. Se intenta 10 veces la conexión en el mismo intervalo de tiempo de 10 a 15 minutos.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Si no se puede conectar con el punto de conexión de facturación en esos 10 intentos, el contenedor deja de atender solicitudes.If it can't connect to the billing endpoint within the 10 tries, the container stops serving requests.

Argumentos de facturaciónBilling arguments

El comando docker run iniciará el contenedor cuando se especifiquen las tres opciones siguientes con valores válidos:The docker run command will start the container when all three of the following options are provided with valid values:

OpciónOption DescripciónDescription
ApiKey La clave de API del recurso de Cognitive Services que se usa para realizar un seguimiento de la información de facturación.The API key of the Cognitive Services resource that's used to track billing information.
El valor de esta opción se debe establecer en una clave de API para el recurso aprovisionado que se especifica en Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing El punto de conexión del recurso de Cognitive Services que se usa para realizar el seguimiento de la información de facturación.The endpoint of the Cognitive Services resource that's used to track billing information.
El valor de esta opción debe establecerse en el URI del punto de conexión de un recurso aprovisionado de Azure.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indica que ha aceptado la licencia del contenedor.Indicates that you accepted the license for the container.
El valor de esta opción debe establecerse en accept.The value of this option must be set to accept.

Para obtener más información acerca de estas opciones, consulte Configure containers (Configuración de contenedores).For more information about these options, see Configure containers.

Publicaciones de blogBlog posts

Ejemplos para desarrolladoresDeveloper samples

Hay ejemplos para desarrolladores disponibles en nuestro repositorio de GitHub.Developer samples are available at our GitHub repository.

Ver seminario webView webinar

Únase al seminario web para más información sobre:Join the webinar to learn about:

  • Implementación de Cognitive Services en cualquier máquina con DockerHow to deploy Cognitive Services to any machine using Docker
  • Implementación de Cognitive Services en AKSHow to deploy Cognitive Services to AKS

ResumenSummary

En este artículo, ha aprendido los conceptos y el flujo de trabajo para la descarga, instalación y ejecución de contenedores de Voz.In this article, you learned concepts and workflow for downloading, installing, and running Speech containers. En resumen:In summary:

  • Voz proporciona cuatro contenedores Linux para Docker, que encapsulan varias funcionalidades:Speech provides four Linux containers for Docker, encapsulating various capabilities:
    • Voz a textoSpeech-to-text
    • Conversión de voz a texto personalizadaCustom Speech-to-text
    • Texto a vozText-to-speech
    • Conversión de texto a voz personalizadaCustom Text-to-speech
  • Las imágenes de contenedor se descargan desde el registro de contenedor de Azure.Container images are downloaded from the container registry in Azure.
  • Las imágenes de contenedor se ejecutan en Docker.Container images run in Docker.
  • Si usa la API REST (solo conversión de texto a voz) o el SDK (conversión de voz a texto o de texto a voz), especifique el URI del host del contenedor.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.
  • Debe proporcionar la información de facturación al crear una instancia de un contenedor.You're required to provide billing information when instantiating a container.

Importante

Los contenedores de Cognitive Services no tienen licencia para ejecutarse sin estar conectados a Azure para realizar mediciones.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Los clientes tienen que habilitar los contenedores para comunicar la información de facturación con el servicio de medición en todo momento.Customers need to enable the containers to communicate billing information with the metering service at all times. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.Cognitive Services containers do not send customer data (e.g., the image or text that is being analyzed) to Microsoft.

Pasos siguientesNext steps