Conteneurs de synthèse vocale avec Docker
Le conteneur de synthèse vocale neuronale convertit du texte en parole d’apparence naturelle en utilisant la technologie de réseau neuronal profond, qui permet d’obtenir une synthèse vocale plus naturelle. Dans cet article, vous découvrez comment télécharger, installer et exécuter un conteneur de synthèse 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 synthèse vocale neuronale pour l’ensemble des versions et des 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 neural-text-to-speech
.
Le nom complet de l’image conteneur est mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech
. 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/neural-text-to-speech:latest La balise latest extrait les paramètres régionaux en-US et la voix en-us-arianeural . |
3.5.0 | mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.5.0-amd64-en-us-arianeural |
Toutes les étiquettes, à l’exception de latest
, respectent le format suivant et sont sensibles à la casse :
<major>.<minor>.<patch>-<platform>-<voice>-<preview>
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/neural-text-to-speech",
"tags": [
<--redacted for brevity-->
"3.5.0-amd64-uk-ua-ostapneural",
"3.5.0-amd64-zh-cn-xiaochenneural-preview",
"3.5.0-amd64-zh-cn-xiaohanneural",
"3.5.0-amd64-zh-cn-xiaomoneural",
"3.5.0-amd64-zh-cn-xiaoqiuneural-preview",
"3.5.0-amd64-zh-cn-xiaoruineural",
"3.5.0-amd64-zh-cn-xiaoshuangneural-preview",
"3.5.0-amd64-zh-cn-xiaoxiaoneural",
"3.5.0-amd64-zh-cn-xiaoyanneural-preview",
"3.5.0-amd64-zh-cn-xiaoyouneural",
"3.5.0-amd64-zh-cn-yunxineural",
"3.5.0-amd64-zh-cn-yunyangneural",
"3.5.0-amd64-zh-cn-yunyeneural",
"latest"
]
}
Important
Nous avons mis hors service les voix de synthèse vocale standard et le conteneur de synthèse vocale standard le 31 août 2021. Vous devez utiliser des voix neuronales avec le conteneur de synthèse vocale neuralversion 3.0 et ultérieure à la place.
À compter du 29 février 2024, les versions 2.19 et antérieures du conteneur de synthèse vocale et de synthèse vocale ne sont pas prises en charge. Pour plus d’informations sur la mise à jour de votre application, consultez Migrer de la voix standard vers la voix neuronale prédéfinie.
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/neural-text-to-speech:latest
Important
La balise latest
extrait les paramètres régionaux en-US
et la voix en-us-arianeural
. Pour obtenir des paramètres régionaux et des voix supplémentaires, consultez images conteneur de synthèse vocale.
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 de synthèse vocale, configurez le port, la mémoire et le processeur en fonction des exigences et recommandations relatives au conteneur de synthèse vocale.
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:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Cette commande :
- Exécute un conteneur de synthèse vocale neuronale à partir de l’image conteneur.
- Alloue 6 cœurs de processeur et 12 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.
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 le démarrage rapide de la synthèse vocale en utilisant l’authentification de l’hôte au lieu de la clé et de la région.
Élément de voix SSML
Lorsque vous construisez une requête HTTP POST de synthèse vocale neuronale, le message SSML demande un élément voice
avec un attribut name
. Les paramètres régionaux de la voix doivent correspondre aux paramètres régionaux du modèle de conteneur. La prise en charge de la balise SSML est cohérente pour chaque voix de synthèse vocale dans le cloud Azure et dans l’environnement conteneur.
Par exemple, un modèle qui a été téléchargé via l’étiquette latest
(par défaut « en-US ») aurait comme nom de voix en-US-AriaNeural
.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AriaNeural">
This is the text that is spoken.
</voice>
</speak>
Étapes suivantes
- Consulter l’article Vue d’ensemble des conteneurs Speech
- Passer en revue Configurer des conteneurs pour découvrir les paramètres de configuration
- Utiliser plus de conteneurs Azure AI