Contenedores de identificación de lenguaje con Docker

El contenedor de identificación del idioma de voz detecta el idioma hablado en archivos de audio. Puedes obtener grabaciones de audio por lotes o voz en tiempo real con resultados intermedios. En este artículo, aprenderá a descargar, instalar y ejecutar un contenedor de identificación de idioma.

Nota:

El contenedor de identificación del idioma de voz está disponible en versión preliminar pública. Los contenedores en versión preliminar siguen en desarrollo y no cumplen los requisitos de estabilidad y soporte técnico de Microsoft.

Para obtener más información sobre los requisitos previos, validar que el contenedor se esté ejecutando, ejecutar varios contenedores en el mismo host y ejecutar contenedores desconectados, consulta Instalar y ejecutar contenedores de voz con Docker.

Sugerencia

Para obtener los resultados más útiles, utiliza el contenedor de identificación de idioma de voz con los contenedores de conversión de voz en texto o de conversión de voz en texto personalizada.

Imágenes del contenedor

La imagen del contenedor de identificación de idioma de voz para todas las versiones y configuraciones regionales compatibles se puede encontrar en el sindicato de Microsoft Container Registry (MCR). Reside en el repositorio azure-cognitive-services/speechservices/ y se denomina language-detection.

A screenshot of the search connectors and triggers dialog.

El nombre completo de la imagen de contenedor es mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection. Anexa una versión específica o :latest para obtener la versión más reciente.

Versión Path
Más reciente mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.12.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.12.0-amd64-preview

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

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

Las etiquetas también están disponibles en formato JSON para tu comodidad. El cuerpo incluye la ruta de acceso del contenedor y la lista de etiquetas. Las etiquetas no están ordenadas por versión, pero "latest" siempre se incluye al final de la lista, como se muestra en este fragmento de código:

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    <--redacted for brevity-->
    "1.8.0-amd64-preview",
    "latest"
  ]
}

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

Son necesarios los requisitos previos, incluido el hardware necesario. Consulte también la asignación recomendada de recursos para cada contenedor de voz.

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

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

Ejecute el contenedor con docker run

Utilice el comando docker run para ejecutar el contenedor.

En la tabla siguiente se representan los diversos parámetros de docker run y las descripciones correspondientes:

Parámetro Descripción
{ENDPOINT_URI} El punto de conexión es necesario para la medición y la facturación. Para más información, consulte los argumentos de facturación.
{API_KEY} Se necesita la clave de API. Para más información, consulta los argumentos de facturación.

Al ejecutar el contenedor de identificación del idioma de voz, configura el puerto, la memoria y la CPU según los requisitos y recomendaciones del contenedor de identificación de idioma.

Este es un ejemplo del comando docker run con valores de marcador de posición. Debes especificar los valores ENDPOINT_URI y API_KEY:

docker run --rm -it -p 5000:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Este comando:

  • Ejecuta un contenedor de identificación de idioma de voz desde la imagen del contenedor.
  • Asigna 1 núcleo de CPU y 1 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.

Para obtener más información sobre docker run con los contenedores de voz, consulta Instalar y ejecutar contenedores de voz con Docker.

Ejecutar con el contenedor de conversión de voz en texto

Si quieres ejecutar el contenedor de identificación de idioma con el contenedor de conversión de voz en texto, puedes usar esta imagen acoplable. Una vez iniciados ambos contenedores, use este docker run comando para ejecutar speech-to-text-with-languagedetection-client:

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

El aumento del número de llamadas simultáneas puede afectar tanto a la confiabilidad como a la latencia. Para la identificación del idioma, se recomienda un máximo de cuatro llamadas simultáneas mediante 1 CPU con 1 GB de memoria. En el caso de hosts con 2 CPU y 2 GB de memoria, se recomienda un máximo de seis llamadas simultáneas.

Uso del contenedor

Los contenedores de voz proporcionan las API de punto de conexión de consulta basadas en websocket a las que se accede a través del SDK de voz y la CLI de voz. De forma predeterminada, el SDK de Voz y la CLI de Voz usan el servicio de Voz público. Para usar el contenedor, deberá cambiar el método de inicialización.

Importante

Cuando uses el servicio de voz con contenedores, asegúrate de usar la autenticación de host. Si configuras la clave y la región, las solicitudes irán al servicio de voz público. Es posible que los resultados del servicio de voz no sean los esperados. Se producirá un error en las solicitudes de contenedores desconectados.

En lugar de usar esta configuración de inicialización en la nube de Azure:

var config = SpeechConfig.FromSubscription(...);

Usa esta configuración con el host del contenedor:

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

En lugar de usar esta configuración de inicialización en la nube de Azure:

auto speechConfig = SpeechConfig::FromSubscription(...);

Usa esta configuración con el host del contenedor:

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

En lugar de usar esta configuración de inicialización en la nube de Azure:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

Usa esta configuración con el host del contenedor:

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

En lugar de usar esta configuración de inicialización en la nube de Azure:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

Usa esta configuración con el host del contenedor:

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

En lugar de usar esta configuración de inicialización en la nube de Azure:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

Usa esta configuración con el host del contenedor:

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

En lugar de usar esta configuración de inicialización en la nube de Azure:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

Usa esta configuración con el host del contenedor:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

En lugar de usar esta configuración de inicialización en la nube de Azure:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

Usa esta configuración con el host del contenedor:

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

En lugar de usar esta configuración de inicialización en la nube de Azure:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

Usa esta configuración con el punto de conexión del contenedor:

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

Al usar la CLI de Voz en un contenedor, incluya la opción --host http://localhost:5000/. También debes especificar --key none para garantizar que la CLI no intenta usar una clave de Azure Cognitive Service para voz para la autenticación. Para más información sobre cómo configurar la CLI de voz, consulta Introducción a la CLI de voz de Azure AI.

Prueba la identificación del idioma mediante la autenticación de host en lugar de la clave y la región. Al ejecutar el id. de idioma en un contenedor, usa el objeto SourceLanguageRecognizer en lugar de SpeechRecognizer o TranslationRecognizer.

Pasos siguientes