Lire en anglais

Partager via


Conteneurs de reconnaissance vocale avec Docker

Le conteneur de reconnaissance vocale transcrit la parole en temps réel ou des enregistrements audio par lots avec des résultats intermédiaires. Dans cet article, vous découvrirez comment télécharger, installer et exécuter un conteneur de reconnaissance vocale.

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.

Images de conteneur

L’image conteneur de reconnaissance vocale pour toutes les versions et tous les paramètres régionaux pris en charge se trouve sur le regroupement Microsoft Container Registry (MCR). Elle réside dans le référentiel azure-cognitive-services/speechservices/ et se nomme speech-to-text.

Capture d’écran de la boîte de dialogue de recherche des connecteurs et des déclencheurs.

Le nom complet de l’image conteneur est mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text. 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/speech-to-text:latest

L’étiquette latest extrait la dernière image pour les paramètres régionaux en-US.
4.10.0 mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:4.10.0-amd64-mr-in

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

<major>.<minor>.<patch>-<platform>-<locale>-<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/speech-to-text",
  "tags": [
    <--redacted for brevity-->    
    "4.10.0-amd64-sw-tz",
    "4.10.0-amd64-ta-in",
    "4.10.0-amd64-th-th",
    "4.10.0-amd64-tr-tr",
    "4.10.0-amd64-vi-vn",
    "4.10.0-amd64-wuu-cn",
    "4.10.0-amd64-yue-cn",
    "4.10.0-amd64-zh-cn",
    "4.10.0-amd64-zh-cn-sichuan",
    "4.10.0-amd64-zh-hk",
    "4.10.0-amd64-zh-tw",
    "4.10.0-amd64-zu-za",
    "latest"
  ]
}

Obtenir l’image conteneur avec docker pull

Vous avez besoin des prérequis, notamment le matériel requis. Consultez également l’allocation de ressources recommandée 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/speech-to-text:latest

Important

L’étiquette latest extrait la dernière image pour les paramètres régionaux en-US. Pour obtenir d’autres versions et paramètres régionaux, consultez les images conteneur de reconnaissance vocale.

Exécuter le conteneur avec docker run

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

Pour exécuter des conteneurs déconnectés (non connectés à Internet), vous devez envoyer ce formulaire de demande et attendre l’approbation. Pour plus d’informations sur l’application et l’achat d’un plan d’engagement pour utiliser des conteneurs dans des environnements déconnectés, consultez Utiliser des conteneurs dans des environnements déconnectés dans la documentation Azure AI services.

Si vous êtes autorisé à exécuter le conteneur sans connexion à Internet, l’exemple suivant vous indique le formatage de la commande docker run à utiliser, avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.

Le paramètre DownloadLicense=True de votre commande docker run télécharge un fichier de licence pour permettre à votre conteneur Docker de s’exécuter quand il n’est pas connecté à Internet. Il contient également une date d’expiration. Une fois celle-ci écoulée, vous ne pourrez plus utiliser le fichier de licence pour exécuter le conteneur. Vous pouvez uniquement utiliser un fichier de licence avec le conteneur approprié pour lequel vous avez été autorisé. Par exemple, vous ne pouvez pas utiliser le fichier de licence pour un conteneur speech-to-text avec un conteneur neural-text-to-speech.

Espace réservé Description
{IMAGE} L’image conteneur que vous souhaitez utiliser.

Par exemple : mcr.microsoft.com/azure-cognitive-services/speech-to-text:latest
{LICENSE_MOUNT} Chemin où la licence est téléchargée, puis montée.

Par exemple : /host/license:/path/to/license/directory
{ENDPOINT_URI} Point de terminaison permettant d’authentifier votre demande de service. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource.

Par exemple : https://<your-resource-name>.cognitiveservices.azure.com
{API_KEY} Clé de votre ressource Speech. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource.
{CONTAINER_LICENSE_DIRECTORY} Emplacement du dossier de licence sur le système de fichiers local du conteneur.

Par exemple : /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

Après le téléchargement du fichier de licence, vous pouvez exécuter le conteneur dans un environnement déconnecté. L’exemple suivant vous indique le formatage de la commande docker run que vous utilisez, avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.

Quel que soit l’emplacement d’exécution du conteneur, le fichier de licence doit être monté sur le conteneur et l’emplacement du dossier de licence sur le système de fichiers local du conteneur doit être spécifié avec Mounts:License=. Un montage de sortie doit également être spécifié afin que les enregistrements d’utilisation puissent être écrits pour la facturation.

Espace réservé Valeur Format ou exemple
{IMAGE} L’image conteneur que vous souhaitez utiliser.

Par exemple : mcr.microsoft.com/azure-cognitive-services/speech-to-text:latest
{MEMORY_SIZE} Quantité appropriée de mémoire à allouer à votre conteneur.

Par exemple : 4g
{NUMBER_CPUS} Quantité appropriée de processeurs à allouer à votre conteneur.

Par exemple : 4
{LICENSE_MOUNT} Chemin où la licence est localisée, puis montée.

Par exemple : /host/license:/path/to/license/directory
{OUTPUT_PATH} Chemin de sortie de la journalisation.

Par exemple : /host/output:/path/to/output/directory

Pour plus d’informations, consultez les enregistrements d’utilisation dans la documentation Azure AI services.
{CONTAINER_LICENSE_DIRECTORY} Emplacement du dossier de licence sur le système de fichiers local du conteneur.

Par exemple : /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Emplacement du dossier de sortie sur le système de fichiers local du conteneur.

Par exemple : /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Le conteneur Speech fournit un répertoire par défaut pour l’écriture du fichier de licence et du journal de facturation au moment de l’exécution. Les répertoires par défaut sont /license et /output respectivement.

Quand vous montez ces répertoires dans le conteneur avec la commande docker run -v, vérifiez que l’appartenance du répertoire de l’ordinateur local est définie sur user:group nonroot:nonroot avant d’exécuter le conteneur.

La commande suivante permet de définir la propriété d’un fichier ou d’un répertoire.

sudo chown -R nonroot:nonroot <YOUR_LOCAL_MACHINE_PATH_1> <YOUR_LOCAL_MACHINE_PATH_2> ...

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

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("ws://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("ws://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("ws://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("ws://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("ws://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:"ws://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: "ws://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="ws://localhost:5000")

Lorsque vous utilisez l’interface CLI Speech dans un conteneur, incluez l’option --host ws://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 le guide de démarrage rapide de la reconnaissance vocale en utilisant l’authentification de l’hôte au lieu de la clé et de la région.

Étapes suivantes