Instalación y ejecución de contenedores de Docker para las API del servicio de voz

El uso de contenedores le permite ejecutar algunas de las API del servicio Voz de Azure Cognitive Services en su propio entorno. Los contenedores son excelentes para requisitos específicos de control de datos y seguridad. En este artículo, aprenderá a descargar, instalar y ejecutar un contenedor de Voz.

Con los contenedores de Voz se puede compilar una arquitectura de aplicación de voz optimizada para las sólidas funcionalidades de la nube y la localidad del perímetro. Hay varios contenedores disponibles y usan los mismos precios que los servicios de Voz de Azure basados en la nube.

Importante

El 31 de agosto de 2021 se retiraron las voces de síntesis y el contenedor de texto a voz del servicio Voz estándar. Considere la posibilidad de migrar las aplicaciones para que usen el contenedor de texto a voz neuronal en su lugar. Para más información sobre cómo actualizar cualquier aplicación, consulte Migración de la voz estándar a la voz neuronal pregenerada.

Contenedor Características Más reciente Estado de la versión
Voz a texto Analice opiniones y transcriba grabaciones continuas de audio por lotes o de voz en tiempo real con resultados intermedios. 3.8.0 Disponibilidad general
Conversión de voz en texto personalizada 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. 3.8.0 Disponibilidad general
Identificación del idioma de la voz Detecte el idioma que se habla en los archivos de audio. 1.5.0 Vista previa
Conversión de texto a voz neuronal Convierte texto a voz con un sonido natural, para la que usa una tecnología de red neuronal profunda, lo que permite obtener una voz sintetizada más natural. 2.7.0 Disponibilidad general

Requisitos previos

Importante

  • Para usar los contenedores de Voz, debe enviar una solicitud en línea para que se apruebe. Para más información, consulte la sección "Solicitud de aprobación para ejecutar el contenedor".
  • Los contenedores disponibles con carácter general cumplen los requisitos de estabilidad y soporte técnico de Microsoft. Los contenedores en versión preliminar aún están en desarrollo.

Para poder usar los contenedores del servicio de Voz debe cumplir los siguientes requisitos previos. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar. Necesita:

  • Docker instalado en un equipo host. Docker debe configurarse para permitir que los contenedores se conecten con Azure y envíen datos de facturación a dicho servicio.
    • En Windows, Docker también debe estar configurado de forma que admita los contenedores de Linux.
    • Debe estar familiarizado con los conceptos de Docker.
  • Un recurso del servicio de Voz con el plan de tarifa gratis (F0) o estándar (S).

Recopilación de todos los parámetros obligatorios

Se requieren tres parámetros principales para todos los contenedores de Cognitive Services. Los Términos de licencia del software de Microsoft deben estar presentes con el valor Acepto. También se necesitan un URI de punto de conexión y una clave de API.

URI de punto de conexión

El valor de {ENDPOINT_URI} está disponible en la página Información general de Azure Portal del recurso de Cognitive Services correspondiente. Vaya a la página Información general, mantenga el puntero sobre el punto de conexión y aparecerá un icono Copiar en el Portapapeles. Copie y use el punto de conexión cuando sea necesario.

Captura de pantalla que muestra la recopilación del URI de punto de conexión para su uso posterior.

Teclas

El valor {API_KEY} se usa para iniciar el contenedor y está disponible en la página Claves de Azure Portal del recurso de Cognitive Services correspondiente. Vaya a la página Claves y seleccione el icono Copiar en el Portapapeles.

Captura de pantalla que muestra la obtención de una de las dos claves para su uso posterior.

Importante

Estas claves de suscripción se usan para acceder a la API de Cognitive Services. No comparta sus claves. Almacénelas de forma segura. Por ejemplo, use Azure Key Vault. También se recomienda volver a generar estas claves con regularidad. Solo se necesita una clave para realizar una llamada API. Al volver a generar la primera clave, puede usar la segunda para seguir teniendo acceso al servicio.

Recomendaciones y requisitos del equipo host

El host es un equipo basado en x64 que ejecuta el contenedor de Docker. Puede ser un equipo del entorno local o un servicio de hospedaje de Docker incluido en Azure, como:

Recomendaciones y requisitos del contenedor

En la tabla siguiente se describe la asignación de recursos mínima y recomendada para cada contenedor de Voz:

Contenedor Mínima Recomendado
Voz a texto 4 núcleos, 4 GB de memoria 8 núcleos, 6 GB de memoria
Conversión de voz en texto personalizada 4 núcleos, 4 GB de memoria 8 núcleos, 6 GB de memoria
Identificación del idioma de la voz 1 núcleo, 1 GB de memoria 1 núcleo, 1 GB de memoria
Conversión de texto a voz neuronal 6 núcleos, 12 GB de memoria 8 núcleos, 16 GB de memoria

Cada núcleo debe ser de 2,6 gigahercios (GHz) como mínimo.

El núcleo y la memoria se corresponden con los valores de --cpus y --memory que se usan como parte del comando docker run.

Nota

Las asignaciones mínima y recomendada se basan en los límites de Docker, no en los recursos de la máquina host. Por ejemplo, las partes del mapa de memoria de los contenedores de voz en texto de un modelo de lenguaje grande. Se recomienda que todo el archivo se ajuste a la memoria, que son 4 a 6 GB adicionales. Además, la primera ejecución de cualquier contenedor puede tardar más, ya que los modelos se van a paginar en la memoria.

Compatibilidad con la extensión avanzada de vector

El host es el equipo que ejecuta el contenedor de Docker. El host debe ser compatible con las extensiones avanzadas de vector (AVX2). Puede comprobar la compatibilidad con AVX2 en los hosts de Linux con el comando siguiente:

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

Advertencia

El equipo host es necesario para admitir AVX2. El contenedor no funcionará correctamente sin compatibilidad con AVX2.

Solicitud de aprobación para ejecutar el contenedor

Rellene y envíe el formulario de solicitud para solicitar acceso al contenedor.

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. Después de enviar el formulario, el equipo de Azure Cognitive Services lo revisará y le informará la decisión por correo electrónico en un plazo máximo de 10 días laborables.

Importante

  • En el formulario, debe usar una dirección de correo electrónico asociada a un identificador de suscripción de Azure.
  • El recurso de Azure que se usa para ejecutar el contenedor se debe haber creado con el identificador de la suscripción de Azure aprobada.
  • Compruebe el correo electrónico (bandeja de entrada y carpetas de correo no deseado) para obtener las actualizaciones del estado de la aplicación por parte de Microsoft.

Una vez aprobado, podrá ejecutar el contenedor después de descargarlo de Microsoft Container Registry (MCR) que se describe más adelante en el artículo.

No podrá ejecutar el contenedor si su suscripción de Azure no se ha aprobado.

Obtención de la imagen de contenedor con el comando docker pull

Las imágenes de contenedor para Voz están disponibles en el siguiente registro de contenedor.

Contenedor Repositorio
Voz a texto mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

Sugerencia

Puede usar el comando docker images para enumerar las imágenes de contenedor descargadas. Por ejemplo, el comando siguiente muestra el id., el repositorio y la etiqueta de cada imagen de contenedor descargada, con formato de tabla:

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 Voz

Docker pull para el contenedor de conversión de voz en texto

Use el comando docker pull para descargar una imagen de contenedor de Microsoft Container Registry:

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

Importante

La etiqueta latest extrae la configuración regional en-US. Para ver otras configuraciones regionales, consulte la sección sobre las configuraciones regionales de conversión de voz en texto.

Configuraciones regionales de voz a texto

Todas las etiquetas, salvo latest, tienen el formato siguiente y distinguen mayúsculas de minúsculas:

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

La etiqueta siguiente es un ejemplo del formato:

2.6.0-amd64-en-us

Para ver todas las configuraciones regionales admitidas del contenedor de conversión de voz en texto, consulte la sección sobre las etiquetas de imágenes del contenedor de conversión de voz en texto.

Uso del contenedor

Cuando el contenedor esté en el equipo host, use el siguiente proceso para trabajar con el contenedor.

  1. Ejecute el contenedor con la configuración de facturación requerida. Hay más ejemplos del comando docker run disponibles.
  2. Consulta del punto de conexión de predicción del contenedor.

Ejecute el contenedor con docker run

Utilice el comando docker run para ejecutar el contenedor. Para más información sobre cómo obtener los valores {Endpoint_URI} y {API_Key}, consulte la sección Recopilación de los parámetros obligatorios. Hay disponibles más ejemplos del comando docker run.

Ejecución del contenedor en entornos sin conexión

Debe solicitar acceso para usar contenedores desconectados de Internet. Para obtener más información, consulte Solicitud de acceso para usar contenedores en entornos desconectados.

Nota

Para conocer los requisitos generales de los contenedores, consulte Requisitos y recomendaciones de contenedor.

Para ejecutar el contenedor de conversión de voz en texto estándar, ejecute el siguiente comando docker run:

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

Este comando:

  • Ejecuta un contenedor de conversión de voz a texto a partir de la imagen del contenedor.
  • Asigna 4 núcleos de CPU y 4 GB de memoria.
  • Expone el puerto TCP 5000 y asigna un seudo-TTY para el contenedor.
  • Una vez que se produce la salida, quita automáticamente el contenedor. La imagen del contenedor sigue estando disponible en el equipo host.

Nota

Los contenedores admiten la entrada de audio comprimido al SDK de Voz mediante GStreamer. Para instalar GStreamer en un contenedor, siga las instrucciones de Linux para GStreamer en Uso de entradas de audio comprimido con códec con el SDK de voz.

Diarización en la salida de voz a texto

La diarización está habilitada de forma predeterminada. Para obtener una diarización en la respuesta, use diarize_speech_config.set_service_property.

  1. Establezca el formato de salida de la frase en Detailed.

  2. Establezca el modo de diarización. Los modos admitidos son Identity y Anonymous.

    diarize_speech_config.set_service_property(
        name='speechcontext-PhraseOutput.Format',
        value='Detailed',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )
    
    diarize_speech_config.set_service_property(
        name='speechcontext-phraseDetection.speakerDiarization.mode',
        value='Identity',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )
    

    Nota

    El modo "Identity" devuelve "SpeakerId": "Customer" o "SpeakerId": "Agent". El modo "Anonymous" devuelve "SpeakerId": "Speaker 1" o "SpeakerId": "Speaker 2".

Análisis de la opinión sobre la salida de voz a texto

A partir de la versión 2.6.0 del contenedor de la conversión de voz en texto, se debe usar el punto de conexión de la API del servicio de lenguaje 3.0, en lugar de la versión preliminar. Por ejemplo:

  • https://eastus.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment
  • https://localhost:5000/text/analytics/v3.0/sentiment

Nota

La API del servicio de lenguaje v3.0 no es compatible con las versiones anteriores de v3.0-preview.1. Para obtener la compatibilidad con la característica de opiniones más reciente, use v2.6.0 de la imagen de contenedor de la conversión de voz en texto y el servicio de lenguaje v3.0.

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. Para llamar al análisis de sentimiento, necesitará un punto de conexión de recurso de la API del servicio de lenguaje. Por ejemplo:

  • https://eastus.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 del servicio de lenguaje en la nube, necesitará una clave. Si ejecuta las características del servicio de lenguaje localmente, es posible que no necesite proporcionarla.

Tanto la clave como el punto de conexión se pasan al contenedor de Voz en forma de argumentos, como en el ejemplo siguiente:

docker run -it --rm -p 5000:5000 \
mcr.microsoft.com/azure-cognitive-services/speechservices/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:

  • Realiza los mismos pasos que el anterior.
  • Almacena un punto de conexión y una clave de la API del servicio de lenguaje para el envío de solicitudes de análisis de opiniones.

Phraselist v2 en la salida de la conversión de voz en texto

A partir de la versión 2.6.0 del contenedor de conversión de voz en texto puede obtener la salida con sus propias frases, ya sea toda la frase o frases intermedias. Por ejemplo, el hombre alto en la siguiente oración:

  • "Esta es una oración el hombre alto esta es otra oración".

Para configurar una lista de frases, debe agregar las suyas propias cuando realice la llamada. Por ejemplo:

    phrase="the tall man"
    recognizer = speechsdk.SpeechRecognizer(
        speech_config=dict_speech_config,
        audio_config=audio_config)
    phrase_list_grammer = speechsdk.PhraseListGrammar.from_recognizer(recognizer)
    phrase_list_grammer.addPhrase(phrase)
    
    dict_speech_config.set_service_property(
        name='setflight',
        value='xonlineinterp',
        channel=speechsdk.ServicePropertyChannel.UriQueryParameter
    )

Si tiene varias frases para agregar, llame a .addPhrase() por cada frase para agregarla a la lista de frases.

Importante

Las opciones Eula, Billing y ApiKey deben especificarse para ejecutar el contenedor. De lo contrario, el contenedor no se iniciará. Para más información, vea Facturación.

Consulta del punto de conexión de predicción del contenedor

Nota

Use un número de puerto único si ejecuta varios contenedores.

Contenedores Dirección URL del host del SDK Protocolo
Conversión de voz en texto estándar y personalizada ws://localhost:5000 WS
Texto a voz neuronal, identificación del lenguaje de voz http://localhost:5000 HTTP

Para más información sobre cómo usar los protocolos WSS y HTTPS, consulte la sección sobre seguridad de contenedores.

Conversión de voz en texto (estándar y personalizada)

El contenedor proporciona API de punto de conexión de consulta basadas en WebSocket, a las que se accede mediante el SDK de Voz. De forma predeterminada, el SDK de Voz usa servicios de voz en línea. Para usar el contenedor, deberá cambiar el método de inicialización.

Sugerencia

Al usar el SDK de Voz con los contenedores, no es necesario proporcionar la clave de suscripción ni un token de portador de autenticación del recurso de Voz de Azure.

Vea los ejemplos siguientes:

Cambie de usar esta llamada de inicialización en la nube de Azure:

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

Para usar esta llamada con el host de contenedor:

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

Análisis de opinión

Si proporcionó sus credenciales de la API del servicio de lenguaje al contenedor, puede usar el SDK de Voz para enviar solicitudes de reconocimiento de voz con análisis de opiniones. Puede configurar las respuestas de la API para usar un formato simple o detallado.

Nota

Se ha detectado un problema con el análisis de opiniones en la versión 1.13 del SDK de Python para el servicio Voz. Utilice la versión 1.12.x, o cualquier otra anterior, si desea usar el análisis de opiniones en el SDK de Python para el servicio Voz.

Para configurar el cliente de Voz de forma que use un formato simple, agregue "Sentiment" como valor para Simple.Extensions. Si quiere elegir una versión específica del modelo de servicio de lenguaje, reemplace 'latest' en la configuración de la propiedad speechcontext-phraseDetection.sentimentAnalysis.modelversion.

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 devuelve el resultado de la opinión en la capa raíz de la respuesta.

{
   "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.

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

Texto a voz neuronal

El contenedor proporciona API de punto de conexión basadas en REST. Hay disponibles muchos proyectos de código fuente de ejemplo para los distintos idiomas, marcos y plataformas.

Con los contenedores de texto a voz estándar o neuronal, debe utilizar como base la configuración regional y la voz de la etiqueta de imagen que descargó. Por ejemplo, si descargó la etiqueta latest, la configuración regional predeterminada es en-US y la voz AriaNeural. El argumento {VOICE_NAME} sería en-US-AriaNeural. Observe el siguiente SSML de ejemplo:

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

Ejecución de varios contenedores en el mismo host

Si tiene pensado ejecutar varios contenedores con puertos expuestos, asegúrese de que ejecuta cada contenedor con un puerto expuesto diferente. Por ejemplo, ejecute el primer contenedor en el puerto 5000 y el segundo en el puerto 5001.

Puede tener este contenedor y un contenedor de Cognitive Services diferente en ejecución simultáneamente en el HOST. También puede tener varios contenedores del mismo contenedor de Cognitive Services en ejecución.

Comprobación de que un contenedor está en ejecución

Hay varias maneras de comprobar que el contenedor está en ejecución. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera. Use las distintas direcciones URL de solicitud que se indican a continuación para validar que el contenedor se está ejecutando. Las direcciones URL de solicitud de ejemplo que se enumeran aquí son http://localhost:5000, pero el contenedor específico puede variar. Asegúrese de confiar en la dirección IP externa y el puerto expuesto del contenedor.

URL de la solicitud Propósito
http://localhost:5000/ El contenedor ofrece una página principal.
http://localhost:5000/ready Esta URL, solicitada con GET, proporciona una comprobación de que el contenedor está listo para aceptar una consulta para el modelo. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
http://localhost:5000/status Esta URL, también solicitada con GET, comprueba si el valor de api-key usado para iniciar el contenedor es válido sin generar una consulta de punto de conexión. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
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. 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. 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.

Página principal del contenedor

Detención del contenedor

Para apagar el contenedor, en el entorno de la línea de comandos donde se ejecuta el contenedor, seleccione Ctrl + C.

Solución de problemas

Al iniciar o ejecutar el contenedor, puede aparecer problemas. Use un montaje de salida y habilite el registro. Si lo hace, permite que el contenedor genere archivos de registro que son útiles para solucionar problemas.

Sugerencia

Para más información e instrucciones para solución de problemas, vea Preguntas frecuentes de los contenedores de Cognitive Services .

Si tiene problemas al ejecutar un contenedor de Cognitive Services, puede intentar usar el contenedor de diagnósticos de Microsoft. Use este contenedor para diagnosticar errores comunes en el entorno de implementación que podrían impedir que los contenedores de Cognitive Services funcionen según lo previsto.

Para obtener el contenedor, use el comando docker pull siguiente:

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

A continuación, ejecute el contenedor. Reemplace {ENDPOINT_URI} por el punto de conexión y {API_KEY} por la clave del recurso:

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

El contenedor prueba la conectividad de red con el punto de conexión de facturación.

Facturación

Los contenedores de Voz envían información de facturación a Azure mediante un recurso de Voz que se encuentra en la cuenta de Azure.

Las consultas en el contenedor se facturan con el plan de tarifa del recurso de Azure que se usa para el parámetro ApiKey.

Los contenedores de Azure Cognitive Services no tienen licencia para ejecutarse si no están conectados al punto de conexión de medición o facturación. Debe habilitar los contenedores para que comuniquen la información de facturación al punto de conexión de facturación en todo momento. 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.

Conexión con Azure

El contenedor necesita que se ejecuten los valores del argumento de facturación. Estos valores permiten al contenedor conectarse al punto de conexión de facturación. El contenedor informa sobre el uso cada 10 a 15 minutos. 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. Se intenta 10 veces la conexión en el mismo intervalo de tiempo de 10 a 15 minutos. Si no se puede conectar con el punto de conexión de facturación en esos 10 intentos, el contenedor deja de atender solicitudes. Consulte Preguntas más frecuentes acerca de los contenedores de Cognitive Services para obtener un ejemplo de la información que se envía a Microsoft para la facturación.

Argumentos de facturación

El comando docker run iniciará el contenedor cuando se especifiquen las tres opciones siguientes con valores válidos:

Opción Descripción
ApiKey La clave de API del recurso de Cognitive Services que se usa para realizar un seguimiento de la información de facturación.
El valor de esta opción se debe establecer en una clave de API para el recurso aprovisionado que se especifica en 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.
El valor de esta opción debe establecerse en el URI del punto de conexión de un recurso aprovisionado de Azure.
Eula Indica que ha aceptado la licencia del contenedor.
El valor de esta opción debe establecerse en accept.

Para obtener más información acerca de estas opciones, consulte Configure containers (Configuración de contenedores).

Resumen

En este artículo aprendió los conceptos y el flujo de trabajo para la descarga, instalación y ejecución de contenedores de Voz. En resumen:

  • Voz proporciona cuatro contenedores Linux para Docker, que tienen diversas funcionalidades:
    • Voz a texto
    • Conversión de voz en texto personalizada
    • Conversión de texto a voz neuronal
    • Identificación del idioma de la voz
  • Las imágenes de contenedor se descargan desde el registro de contenedor de Azure.
  • Las imágenes de contenedor se ejecutan en Docker.
  • Si usa la API REST (solo conversión de texto a voz) o el SDK (conversión de voz en texto o de texto a voz), especifique el identificador URI del host del contenedor.
  • Debe proporcionar la información de facturación al crear una instancia de un contenedor.

Importante

Los contenedores de Cognitive Services no tienen licencia para ejecutarse sin estar conectados a Azure para realizar mediciones. Los clientes tienen que habilitar los contenedores para comunicar la información de facturación con el servicio de medición en todo momento. 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.

Pasos siguientes