Installer et exécuter des conteneurs Speech avec Docker
En utilisant des conteneurs, vous pouvez utiliser un sous-ensemble des fonctionnalités du service Speech dans votre propre environnement. Dans cet article, vous allez apprendre à télécharger, installer et exécuter un conteneur Speech.
Remarque
Les niveaux de tarification et d’engagement des conteneurs déconnectés sont différents des conteneurs standard. Pour plus d’informations, consultez les tarifs du service Speech.
Prérequis
Vous devez répondre aux prérequis suivants avant d’utiliser les conteneurs du service Speech. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer. Ce dont vous avez besoin :
- Docker installé sur un ordinateur hôte. Vous devez configurer Docker pour permettre aux conteneurs de se connecter à Azure et de lui envoyer des données de facturation.
- Sous Windows, vous devez également configurer Docker pour prendre en charge les conteneurs Linux.
- Vous devez disposer d’une connaissance élémentaire des concepts liés à Docker.
- Une ressource de service Speech avec le niveau tarifaire Gratuit (F0) ou Standard (S).
Arguments de facturation
Les conteneurs Speech ne sont pas concédés sous licence pour s’exécuter sans être connectés à Azure pour le comptage. Vous devez configurer votre conteneur de façon à ce qu’il communique en permanence les informations de facturation au service de mesure.
Trois paramètres principaux sont obligatoires pour tous les conteneurs Azure AI. Les termes du contrat de licence logiciel Microsoft doivent être présents avec la valeur Accepter. Un URI de point de terminaison et une clé API sont également nécessaires.
Les requêtes sur le conteneur sont facturées au niveau tarifaire de la ressource Azure utilisée pour le paramètre ApiKey
.
La commande docker run
démarre le conteneur quand les trois options suivantes ont des valeurs valides :
Option | Description |
---|---|
ApiKey |
Clé API de la ressource Speech utilisée pour le suivi des informations de facturation. La valeur ApiKey est utilisée pour démarrer le conteneur et est disponible sur la page Clés de la ressource Speech correspondante sur le portail Azure. Accédez à la page Clés, puis sélectionnez l’icône Copier dans le Presse-papiers . |
Billing |
Point de terminaison de la ressource Speech utilisé pour le suivi des informations de facturation. Le point de terminaison est disponible sur la page Vue d’ensemble du portail Azure de la ressource Speech correspondante. Accédez à la page Vue d’ensemble, puis pointez sur le point de terminaison pour afficher une icône Copier dans le Presse-papiers . Copiez et utilisez le point de terminaison si nécessaire. |
Eula |
Indique que vous avez accepté la licence pour le conteneur. La valeur de cette option doit être définie sur accepter. |
Important
Ces clés d’abonnement sont utilisées pour accéder à votre API Azure AI Services. Ne partagez pas vos clés. Stockez-les en toute sécurité. Par exemple, utilisez Azure Key Vault. Nous vous recommandons également de regénérer ces clés régulièrement. Une seule clé est nécessaire pour effectuer un appel d’API. Lors de la régénération de la première clé, vous pouvez utiliser la deuxième clé pour un accès continu au service.
Le conteneur a besoin des valeurs d’arguments de facturation pour s’exécuter. Ces valeurs permettent au conteneur de se connecter au point de terminaison de facturation. Le conteneur crée des rapports sur l’utilisation toutes les 10 à 15 minutes. Si le conteneur ne se connecte pas à Azure dans la fenêtre de temps imparti, il continue de s’exécuter, mais ne traite pas les requêtes tant que le point de terminaison de facturation n’est pas restauré. Une tentative de connexion est effectuée 10 fois, toutes les 10 à 15 minutes. S’il ne parvient pas à se connecter au point de terminaison de facturation au cours de ces 10 essais, le conteneur cesse de traiter les demandes. Pour obtenir un exemple des informations envoyées à Microsoft pour la facturation, consultez la FAQ sur les conteneurs Azure AI dans la documentation Azure AI services.
Pour plus d’informations sur ces options, consultez Configurer des conteneurs.
Exigences et suggestions relatives au conteneur
Le tableau suivant indique l’allocation de ressources minimale et recommandée pour chaque conteneur Speech :
Conteneur | Minimum | Recommandé | Modèle vocal |
---|---|---|---|
Reconnaissance vocale | 4 cœurs, 4 Go de mémoire | 8 cœurs, 8 Go de mémoire | +4 à 8 Go de mémoire |
Conteneur de reconnaissance vocale personnalisée | 4 cœurs, 4 Go de mémoire | 8 cœurs, 8 Go de mémoire | +4 à 8 Go de mémoire |
Identification de la langue parlée | 1 cœur, 1 Go de mémoire | 1 cœur, 1 Go de mémoire | n/a |
Synthèse vocale neuronale | 6 cœurs, 12 Go de mémoire | 8 cœurs, 16 Go de mémoire | n/a |
Chaque cœur doit être cadencé à au moins 2,6 gigahertz (GHz).
Le nombre de cœurs et la quantité de mémoire correspondent aux paramètres --cpus
et --memory
qui sont utilisés dans le cadre de la commande docker run
.
Notes
Les allocations minimale et recommandée sont basées sur les limites de Docker, pas sur les ressources de l’ordinateur hôte. Prenons l’exemple des parties de la carte mémoire des conteneurs de reconnaissance vocale d’un grand modèle linguistique. Il est recommandé que le fichier entier tienne en mémoire. Vous devez ajouter 4 à 8 Go de mémoire supplémentaire pour charger les modèles vocaux (voir le tableau ci-dessus). De plus, la première exécution d’un conteneur risque de prendre plus de temps parce que les modèles sont paginés en mémoire.
Spécifications et recommandations relatives à l’ordinateur hôte
L’hôte est un ordinateur x64 qui exécute le conteneur Docker. Il peut s’agir d’un ordinateur local ou d’un service d’hébergement Docker dans Azure, comme :
- Azure Kubernetes Service.
- Azure Container Instances.
- Un cluster Kubernetes déployé sur Azure Stack. Pour plus d’informations, consultez Déployer Kubernetes sur Azure Stack.
Notes
Les conteneurs prennent en charge les entrées audio compressées dans le SDK Speech en utilisant GStreamer. Pour installer GStreamer dans un conteneur, suivez les instructions Linux associées dans Utilisation d’une entrée audio compressée par codec avec le kit SDK Speech.
Prise en charge d’Advanced Vector Extension
L’hôte est l’ordinateur qui exécute le conteneur Docker. L’hôte doit prendre en charge Advanced Vector Extensions (AVX2). Vous pouvez vérifier cette prise en charge AVX2 sur les hôtes Linux avec la commande suivante :
grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected
Avertissement
L’ordinateur hôte doit obligatoirement prendre en charge AVX2. Le conteneur ne fonctionnera pas correctement sans prise en charge AVX2.
Exécuter le conteneur
Utilisez la commande docker run pour exécuter le conteneur. Une fois en cours d’exécution, le conteneur continue à s’exécuter jusqu’à ce que vous l’arrêtiez.
Prenez note des meilleures pratiques suivantes avec la commande docker run
:
- Caractère de continuation de ligne : Les commandes Docker dans les sections suivantes utilisent la barre oblique inverse,
\
, comme caractère de continuation de ligne. Remplacez ou supprimez ce caractère en fonction des exigences de votre système d’exploitation hôte. - Ordre des arguments : ne changez pas l’ordre des arguments, sauf si vous avez une connaissance approfondie des conteneurs Docker.
Vous pouvez utiliser la commande docker images pour lister vos images conteneurs téléchargées. La commande suivante liste l’ID, le référentiel et la balise de chaque image conteneur téléchargée dans un tableau :
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
Voici un exemple de résultat :
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Valider l’exécution d’un conteneur
Il existe plusieurs façons de confirmer que le conteneur s’exécute. Recherchez l’adresse IP externe et le port exposé du conteneur en question, puis ouvrez le navigateur web de votre choix. Utilisez les différentes URL de requête suivantes pour vérifier que le conteneur est en cours d’exécution.
Les exemples d’URL de requête listés ici sont http://localhost:5000
, mais votre conteneur spécifique peut varier. Veillez à vous fier à l’adresse IP externe de votre conteneur et au port exposé.
URL de la demande | Objectif |
---|---|
http://localhost:5000/ |
Le conteneur fournit une page d’accueil. |
http://localhost:5000/ready |
Demandée avec la fonction d’extraction, cette URL permet de vérifier que le conteneur est prêt à accepter une requête sur le modèle. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes. |
http://localhost:5000/status |
Également demandée avec la fonction d’extraction, cette URL permet de vérifier si la clé API servant à démarrer le conteneur est valide sans provoquer de requête de point de terminaison. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes. |
http://localhost:5000/swagger |
Le conteneur fournit un ensemble complet de documentation pour les points de terminaison et une fonctionnalité Essayer. Avec cette fonctionnalité, vous pouvez entrer vos paramètres dans un formulaire HTML basé sur le web, et constituer la requête sans avoir à écrire du code. Une fois la requête retournée, un exemple de commande CURL est fourni pour illustrer les en-têtes HTTP, et le format du corps qui est nécessaire. |
Arrêter le conteneur
Pour arrêter le conteneur, dans l’environnement de ligne de commande où le conteneur est en cours d’exécution, sélectionnez Ctrl+C.
Exécuter plusieurs conteneurs sur le même hôte
Si vous envisagez d’exécuter plusieurs conteneurs avec les ports exposés, veillez à exécuter chaque conteneur avec un port exposé différent. Par exemple, exécutez le premier conteneur sur le port 5000 et le second conteneur sur le port 5001.
Ce conteneur et un autre conteneur Azure AI peuvent s’exécuter en même temps sur l’hôte. Plusieurs conteneurs du même conteneur Azure AI peuvent aussi être en cours d’exécution.
URL de l’hôte
Notes
Utilisez un numéro de port unique si vous exécutez plusieurs conteneurs.
Protocol | URL de l’hôte | Containers |
---|---|---|
WS | ws://localhost:5000 |
Reconnaissance vocale Conteneur de reconnaissance vocale personnalisée |
HTTP | http://localhost:5000 |
Synthèse vocale neuronale Identification de la langue parlée |
Pour plus d’informations sur l’utilisation des protocoles WSS et HTTPS, consultez Sécurité des conteneurs dans la documentation Azure AI services.
Dépannage
Lorsque vous démarrez ou exécutez le conteneur, vous risquez de rencontrer des problèmes. Utilisez une montage de sortie et activez la journalisation. Ainsi, le conteneur peut générer des fichiers journaux utiles quand vous résolvez des problèmes.
Conseil
Pour plus d’informations et d’aide sur la résolution des problèmes, consultez la Foire aux questions (FAQ) sur les conteneurs Azure AI services dans la documentation Azure AI services.
Paramètres de journalisation
Les conteneurs Speech sont fournis avec la prise en charge de la journalisation ASP.NET Core. Voici un exemple de neural-text-to-speech container
démarré avec la journalisation par défaut dans la console :
docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
Logging:Console:LogLevel:Default=Information
Pour plus d’informations sur la journalisation, consultez Configurer des conteneurs Speech et Enregistrements d’utilisation dans la documentation Azure AI services.
Conteneur de diagnostics Microsoft
Si vous rencontrez des problèmes lors de l’exécution d’un conteneur Azure AI, essayez d’utiliser le conteneur de diagnostics Microsoft. Utilisez ce conteneur pour diagnostiquer dans votre environnement de déploiement les erreurs courantes pouvant nuire au bon fonctionnement des conteneurs Azure AI.
Pour obtenir le conteneur, utilisez la commande docker pull
suivante :
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
Exécutez ensuite le conteneur. Remplacez {ENDPOINT_URI}
par votre point de terminaison et {API_KEY}
par la clé de votre ressource :
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Le conteneur teste la connectivité réseau avec le point de terminaison de facturation.
Exécuter des conteneurs déconnectés
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.
Étapes suivantes
- Consultez Configurer des conteneurs pour découvrir les paramètres de configuration.
- Découvrez comment utiliser les conteneurs du service Speech avec Kubernetes et Helm.
- Déployer et exécuter des conteneurs sur une instance de conteneur Azure
- Utilisez plus de conteneurs Azure AI.