Conteneurs d’identification de la langue avec Docker

Le conteneur d’identification de la langue parlée détecte la langue parlée dans les fichiers audio. Vous pouvez obtenir des messages en temps réel ou des enregistrements audio par lots avec des résultats intermédiaires. Dans cet article, vous allez apprendre à télécharger, à installer et à exécuter un conteneur d'identification de la langue.

Remarque

Le conteneur d’identification de la langue parlée est disponible en préversion publique. Les conteneurs en préversion sont toujours en cours de développement et ne répondent pas aux exigences de stabilité et de support de Microsoft.

Pour plus d’informations sur les prérequis, la vérification de l’exécution d’un conteneur, l’exécution de plusieurs conteneurs sur le même hôte et l’exécution de conteneurs déconnectés, consultez l’article Installer et exécuter des conteneurs Speech avec Docker.

Conseil

Pour obtenir les meilleurs résultats, utilisez le conteneur d’identification de la langue parlée avec les conteneurs de reconnaissance vocale ou de reconnaissance vocale personnalisée.

Images de conteneur

L’image conteneur d’identification de la langue parlée pour toutes les versions et paramètres régionaux pris en charge se trouve sur le syndicat Microsoft Container Registry (MCR). Elle réside dans le référentiel azure-cognitive-services/speechservices/ et se nomme language-detection.

A screenshot of the search connectors and triggers dialog.

Le nom complet de l’image conteneur est mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection. Ajoutez une version spécifique ou ajoutez :latest pour obtenir la version la plus récente.

Version Path
Latest 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

Toutes les étiquettes, à l’exception de latest, respectent le format suivant et sont sensibles à la casse :

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

Les balises sont également disponibles au format JSON pour votre commodité. Le corps inclut le chemin d’accès du conteneur et la liste des balises. Les balises ne sont pas triées par version, mais "latest" est toujours inclus à la fin de la liste, comme indiqué dans l’extrait de code suivant :

{
  "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"
  ]
}

Obtenir l’image conteneur avec docker pull

Vous avez besoin des prérequis, notamment le matériel requis. Consultez également l'allocation recommandée de ressources pour chaque conteneur Speech.

Utilisez la commande docker pull pour télécharger une image conteneur à partir du registre de conteneurs Microsoft :

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

Exécuter le conteneur avec docker run

Utilisez la commande docker run pour exécuter le conteneur.

Le tableau suivant présente les différents paramètres docker run et leurs descriptions correspondantes :

Paramètre Description
{ENDPOINT_URI} Le point de terminaison est nécessaire pour le comptage et la facturation. Pour plus d’informations, consultez la section Arguments de facturation.
{API_KEY} La clé API est obligatoire. Pour plus d’informations, consultez la section Arguments de facturation.

Quand vous exécutez le conteneur d’identification de la langue parlée, configurez le port, la mémoire et le processeur en fonction des exigences et recommandations relatives au conteneur d’identification de la langue.

Voici un exemple de commande docker run avec des valeurs d’espace réservé. Vous devez spécifier les valeurs ENDPOINT_URI et 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}

Cette commande :

  • Exécute un conteneur d’identification de la langue parlée à partir de l’image conteneur.
  • Alloue 1 cœur de processeur et 1 Go de mémoire.
  • Expose le port TCP 5000 et alloue un pseudo-TTY pour le conteneur.
  • Supprime automatiquement le conteneur après sa fermeture. L’image conteneur est toujours disponible sur l’ordinateur hôte.

Pour plus d’informations sur docker run avec des conteneurs Speech, consultez la section Installer et exécuter des conteneurs Speech avec Docker.

Exécuter avec le conteneur de reconnaissance vocale

Si vous souhaitez exécuter le conteneur d’identification de la langue avec le conteneur de reconnaissance vocale, vous pouvez utiliser cette image Docker. Après le démarrage des deux conteneurs, utilisez cette commande docker run pour exécuter 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

Une augmentation du nombre d’appels simultanés peut affecter la fiabilité et la latence. Pour l’identification de la langue, nous vous recommandons de ne pas dépasser quatre appels simultanés avec 1 processeur et 1 Go de mémoire. Pour les hôtes avec 2 processeurs et de 2 Go de mémoire, nous recommandons un maximum de six appels simultanés.

Utiliser le conteneur

Les conteneurs Speech fournissent des API de point de terminaison de requête basées sur WebSocket, accessibles via le Kit de développement logiciel (SDK) Speech et l’interface CLI Speech. Par défaut, le kit de développement logiciel (SDK) Speech et l’interface CLI Speech utilisent le service Speech public. Pour utiliser le conteneur, vous devez changer la méthode d’initialisation.

Important

Quand vous utilisez le service Speech avec des conteneurs, veillez à utiliser l’authentification de l’hôte. Si vous configurez la clé et la région, les demandes sont envoyées au service Speech public. Les résultats du service Speech peuvent ne pas correspondre à ce que vous attendez. Les demandes provenant des conteneurs déconnectés échouent.

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec l’hôte de conteneur :

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

Au lieu d’utiliser cette configuration d’initialisation du cloud Azure :

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

Utilisez cette configuration avec le point de terminaison de conteneur :

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

Lorsque vous utilisez l’interface CLI Speech dans un conteneur, incluez l’option --host http://localhost:5000/. Vous devez également spécifier --key none pour vous assurer que l’interface de ligne de commande n’essaie pas d’utiliser une clé Speech pour l’authentification. Pour plus d’informations sur la configuration de l’interface CLI Speech, consultez l’article Bien démarrer avec l’interface CLI Azure AI Speech.

Essayez l’identification de la langue en utilisant l’authentification de l’hôte au lieu de la clé et de la région. Quand vous exécutez l’ID de langue dans un conteneur, utilisez l’objet SourceLanguageRecognizer au lieu de SpeechRecognizer ou TranslationRecognizer.

Étapes suivantes