API REST de synthèse vocale

Le service Speech vous permet de convertir du texte en synthèse vocale et d’obtenir une liste de voix prises en charge pour une région à l’aide d’un API REST. Cet article vous présente les options d’autorisation et les options de requête, et vous explique comment structurer une demande et interpréter une réponse.

L’API REST de synthèse vocale prend en charge les voix de synthèse vocale neuronales qui, à leur tour, prennent chacune en charge une langue et un dialecte spécifiques identifiés par des paramètres régionaux. Chaque point de terminaison disponible est associé à une région. Une clé d’abonnement pour le point de terminaison ou la région que vous prévoyez d’utiliser est nécessaire. Voici des liens vers des informations supplémentaires :

Important

Les coûts varient pour les voix neuronales prédéfinies (appelées Neuronales sur la page de tarification) et les voix neuronales personnalisées (appelées Neuronales personnalisées sur la page de tarification). Pour plus d’informations, consultez les tarifs du service Speech.

Avant d’utiliser l’API REST de synthèse vocale, sachez que vous devez effectuer un échange de jeton dans le cadre de l’authentification pour accéder au service.

Authentication

Chaque requête nécessite un en-tête d’autorisation. Ce tableau présente les en-têtes pris en charge pour chaque fonctionnalité :

En-têtes d’autorisation pris en charge Reconnaissance vocale Synthèse vocale
Ocp-Apim-Subscription-Key Oui Oui
Authorization: Bearer Oui Oui

Lorsque vous utilisez l’en-tête Ocp-Apim-Subscription-Key, vous devez uniquement fournir votre clé d’abonnement. Par exemple :

'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'

Lorsque vous utilisez l’en-tête Authorization: Bearer, vous devez envoyer une demande au point de terminaison issueToken. Dans cette requête, vous échangez votre clé d’abonnement contre un jeton d’accès valide pendant 10 minutes.

Obtenir un jeton d’accès

Pour obtenir un jeton d’accès, vous avez besoin d’envoyer une demande au point de terminaison issueToken à l’aide de Ocp-Apim-Subscription-Key et de votre clé d’abonnement.

Le format du point de terminaison issueToken est le suivant :

https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken

Remplacez <REGION_IDENTIFIER> par l’identificateur correspondant à la région de votre abonnement dans le tableau suivant :

Geography Région Identificateur de la région
Afrique Afrique du Sud Nord southafricanorth
Asie-Pacifique Asie Est eastasia
Asie-Pacifique Asie Sud-Est southeastasia
Asie-Pacifique Australie Est australiaeast
Asie-Pacifique Inde Centre centralindia
Asie-Pacifique Japon Est japaneast
Asie-Pacifique OuJapon Est japanwest
Asie-Pacifique Centre de la Corée koreacentral
Canada Centre du Canada canadacentral
Europe Europe Nord northeurope
Europe Europe Ouest westeurope
Europe France Centre francecentral
Europe Allemagne Centre-Ouest germanywestcentral
Europe Norvège Est norwayeast
Europe Suisse Nord switzerlandnorth
Europe Suisse Ouest switzerlandwest
Europe Sud du Royaume-Uni uksouth
Moyen-Orient Émirats arabes unis Nord uaenorth
Amérique du Sud Brésil Sud brazilsouth
US USA Centre centralus
US USA Est eastus
US USA Est 2 eastus2
US Centre-Nord des États-Unis northcentralus
US États-Unis - partie centrale méridionale southcentralus
US Centre-USA Ouest westcentralus
US USA Ouest westus
US USA Ouest 2 westus2
US USA Ouest 3 westus3

Utilisez les exemples suivants pour créer votre demande de jeton d’accès.

Exemple HTTP

Cet exemple est une simple requête HTTP pour obtenir un jeton. Remplacez YOUR_SUBSCRIPTION_KEY par votre clé d’abonnement de service Speech. Si votre abonnement n’est pas dans la région USA Ouest, remplacez l’en-tête Host par le nom d’hôte de votre région.

POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
Host: westus.api.cognitive.microsoft.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0

Le corps de la réponse contient le jeton d’accès au format JSON Web Token (JWT).

Exemple de code PowerShell

Cet exemple est un simple script PowerShell pour obtenir un jeton d’accès. Remplacez YOUR_SUBSCRIPTION_KEY par votre clé d’abonnement de service Speech. Veillez à utiliser le point de terminaison correct pour la région correspondant à votre abonnement. Cet exemple est actuellement configuré pour l’USA Ouest.

$FetchTokenHeader = @{
  'Content-type'='application/x-www-form-urlencoded';
  'Content-Length'= '0';
  'Ocp-Apim-Subscription-Key' = 'YOUR_SUBSCRIPTION_KEY'
}

$OAuthToken = Invoke-RestMethod -Method POST -Uri https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken
 -Headers $FetchTokenHeader

# show the token received
$OAuthToken

Exemple cURL

cURL est un outil en ligne de commande disponible dans Linux (ainsi que dans le sous-système Windows pour Linux). Cette commande cURL montre comment obtenir un jeton d’accès. Remplacez YOUR_SUBSCRIPTION_KEY par votre clé d’abonnement de service Speech. Veillez à utiliser le point de terminaison correct pour la région correspondant à votre abonnement. Cet exemple est actuellement configuré pour l’USA Ouest.

curl -v -X POST \
 "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
 -H "Content-type: application/x-www-form-urlencoded" \
 -H "Content-Length: 0" \
 -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"

Exemple de code C#

La classe C# montre comment obtenir un jeton d’accès. Transmettez votre clé d’abonnement du service Speech quand vous instanciez la classe. Si votre abonnement ne figure pas dans la région USA Ouest, modifiez la valeur FetchTokenUri afin qu’elle corresponde à la région de votre abonnement.

public class Authentication
{
    public static readonly string FetchTokenUri =
        "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
    private string subscriptionKey;
    private string token;

    public Authentication(string subscriptionKey)
    {
        this.subscriptionKey = subscriptionKey;
        this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
    }

    public string GetAccessToken()
    {
        return this.token;
    }

    private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
            UriBuilder uriBuilder = new UriBuilder(fetchUri);

            var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
            Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
            return await result.Content.ReadAsStringAsync();
        }
    }
}

Exemple de code Python

# Request module must be installed.
# Run pip install requests if necessary.
import requests

subscription_key = 'REPLACE_WITH_YOUR_KEY'


def get_token(subscription_key):
    fetch_token_url = 'https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken'
    headers = {
        'Ocp-Apim-Subscription-Key': subscription_key
    }
    response = requests.post(fetch_token_url, headers=headers)
    access_token = str(response.text)
    print(access_token)

Utiliser un jeton d’accès

Le jeton d’accès doit être envoyé au service en tant qu’en-tête Authorization: Bearer <TOKEN>. Chaque jeton d’accès est valide pour une durée de 10 minutes. Vous pouvez à tout moment obtenir un nouveau jeton, mais pour réduire la latence et le trafic réseau, nous recommandons d’utiliser le même jeton pendant neuf minutes.

Voici un exemple de requête HTTP adressée à l’API REST de reconnaissance vocale pour audio court :

POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive

// Message body here...

Obtenir une liste de voix

Vous pouvez utiliser le point de terminaison voices/list pour obtenir une liste complète de voix pour une région ou un point de terminaison spécifique :

Région Point de terminaison
Australie Est https://australiaeast.tts.speech.microsoft.com/cognitiveservices/voices/list
Brésil Sud https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/voices/list
Centre du Canada https://canadacentral.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Centre https://centralus.tts.speech.microsoft.com/cognitiveservices/voices/list
Chine orientale 2 https://chinaeast2.tts.speech.azure.cn/cognitiveservices/voices/list
Chine Nord 2 https://chinanorth2.tts.speech.azure.cn/cognitiveservices/voices/list
Asie Est https://eastasia.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Est https://eastus.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Est 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/voices/list
France Centre https://francecentral.tts.speech.microsoft.com/cognitiveservices/voices/list
Allemagne Centre-Ouest https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/voices/list
Inde Centre https://centralindia.tts.speech.microsoft.com/cognitiveservices/voices/list
Japon Est https://japaneast.tts.speech.microsoft.com/cognitiveservices/voices/list
OuJapon Est https://japanwest.tts.speech.microsoft.com/cognitiveservices/voices/list
Inde Ouest Jio https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/voices/list
Centre de la Corée https://koreacentral.tts.speech.microsoft.com/cognitiveservices/voices/list
Centre-Nord des États-Unis https://northcentralus.tts.speech.microsoft.com/cognitiveservices/voices/list
Europe Nord https://northeurope.tts.speech.microsoft.com/cognitiveservices/voices/list
Norvège Est https://norwayeast.tts.speech.microsoft.com/cognitiveservices/voices/list
États-Unis - partie centrale méridionale https://southcentralus.tts.speech.microsoft.com/cognitiveservices/voices/list
Asie Sud-Est https://southeastasia.tts.speech.microsoft.com/cognitiveservices/voices/list
Suisse Nord https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/voices/list
Suisse Ouest https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/voices/list
Gouvernement des États-Unis – Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/voices/list
Gouvernement américain - Virginie https://usgovvirginia.tts.speech.azure.us/cognitiveservices/voices/list
Sud du Royaume-Uni https://uksouth.tts.speech.microsoft.com/cognitiveservices/voices/list
Centre-USA Ouest https://westcentralus.tts.speech.microsoft.com/cognitiveservices/voices/list
Europe Ouest https://westeurope.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Ouest https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Ouest 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/voices/list
USA Ouest 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/voices/list

Conseil

Des voix en préversion sont disponibles uniquement dans les trois régions suivantes : USA Est, Europe Ouest et Asie Sud-Est.

En-têtes de requête

Ce tableau liste les en-têtes obligatoires et facultatifs pour les demandes de synthèse vocale :

En-tête Description Obligatoire ou facultatif
Ocp-Apim-Subscription-Key Votre clé d’abonnement pour le service Speech. Cet en-tête ou Authorization est requis.
Authorization Un jeton d’autorisation précédé du mot Bearer. Pour en savoir plus, consultez Authentification. Cet en-tête ou Ocp-Apim-Subscription-Key est requis.

Corps de la demande

Les demandes GET à ce point de terminaison ne nécessitent pas de corps.

Exemple de requête

Chaque demande nécessite uniquement un en-tête d’autorisation :

GET /cognitiveservices/voices/list HTTP/1.1

Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

Exemple de réponse

Cette réponse a été tronquée pour illustrer la structure d’une réponse.

Notes

La disponibilité des voix varie selon la région ou le point de terminaison.

[

    {
    "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    "DisplayName": "Jenny",
    "LocalName": "Jenny",
    "ShortName": "en-US-JennyNeural",
    "Gender": "Female",
    "Locale": "en-US",
    "StyleList": [
      "chat",
      "customerservice",
      "newscast-casual",
      "assistant",
    ],
    "SampleRateHertz": "24000",
    "VoiceType": "Neural",
    "Status": "GA"
  },

    ...

     {
    "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
    "ShortName": "en-US-JennyMultilingualNeural",
    "DisplayName": "Jenny Multilingual",
    "LocalName": "Jenny Multilingual",
    "Gender": "Female",
    "Locale": "en-US",
    "SampleRateHertz": "24000",
    "VoiceType": "Neural",
    "SecondaryLocaleList": [
        "de-DE",
        "en-AU",
        "en-CA",
        "en-GB",
        "es-ES",
        "es-MX",
        "fr-CA",
        "fr-FR",
        "it-IT",
        "ja-JP",
        "ko-KR",
        "pt-BR",
        "zh-CN"
      ],
    "Status": "Preview"
    },
    
  ...
    
    {
    "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
    "DisplayName": "Orla",
    "LocalName": "Orla",
    "ShortName": "ga-IE-OrlaNeural",
    "Gender": "Female",
    "Locale": "ga-IE",
    "SampleRateHertz": "24000",
    "VoiceType": "Neural",
    "Status": "GA"
  },

  ...

   {
    "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
    "DisplayName": "Yunxi",
    "LocalName": "云希",
    "ShortName": "zh-CN-YunxiNeural",
    "Gender": "Male",
    "Locale": "zh-CN",
    "StyleList": [
      "Calm",
      "Fearful",
      "Cheerful",
      "Disgruntled",
      "Serious",
      "Angry",
      "Sad",
      "Depressed",
      "Embarrassed"
    ],
    "SampleRateHertz": "24000",
    "VoiceType": "Neural",
    "Status": "GA"
  },

    ...

]

Codes d’état HTTP

Le code d’état HTTP de chaque réponse indique la réussite ou des erreurs courantes.

Code d'état HTTP Description Raison possible
200 OK La demande a abouti.
400 Demande incorrecte Un paramètre obligatoire est manquant, vide ou présente une valeur Null. Il est également possible que la valeur transmise à un paramètre obligatoire ou facultatif ne soit pas valide. Ce problème est généralement dû à un en-tête trop long.
401 Non autorisé La demande n’est pas autorisée. Vérifiez que votre clé d’abonnement ou votre jeton est valide et dans la région appropriée.
429 Trop de demandes Vous avez dépassé le quota ou le taux de requêtes autorisé pour votre abonnement.
502 Passerelle incorrecte Il y a un problème au niveau du réseau ou côté serveur. Cet état peut également signaler des en-têtes non valides.

Convertir du texte en parole

Le point de terminaison v1 vous permet de convertir du texte en parole à l’aide de SSML (Speech Synthesis Markup Langage).

Régions et points de terminaison

Ces régions sont prises en charge pour la synthèse vocale via l’API REST. Veillez à sélectionner le point de terminaison correspondant à votre région d’abonnement.

Voix neuronales prédéfinies

Servez-vous de ce tableau pour connaître la disponibilité des voix neuronales par région ou point de terminaison :

Région Point de terminaison
Australie Est https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
Brésil Sud https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
Centre du Canada https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
USA Centre https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
Chine orientale 2 https://chinaeast2.tts.speech.azure.cn/cognitiveservices/v1
Chine Nord 2 https://chinanorth2.tts.speech.azure.cn/cognitiveservices/v1
Asie Est https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
USA Est https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
USA Est 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
France Centre https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
Allemagne Centre-Ouest https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
Inde Centre https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
Japon Est https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
OuJapon Est https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
Inde Ouest Jio https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1
Centre de la Corée https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
Centre-Nord des États-Unis https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Europe Nord https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
Norvège Est https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
États-Unis - partie centrale méridionale https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Asie Sud-Est https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
Suède Centre https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
Suisse Nord https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
Suisse Ouest https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
Émirats arabes unis Nord https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
Gouvernement des États-Unis – Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
Gouvernement américain - Virginie https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
Sud du Royaume-Uni https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
Centre-USA Ouest https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Europe Ouest https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
USA Ouest https://westus.tts.speech.microsoft.com/cognitiveservices/v1
USA Ouest 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
USA Ouest 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

Conseil

Des voix en préversion sont disponibles uniquement dans les trois régions suivantes : USA Est, Europe Ouest et Asie Sud-Est.

Voix neurales personnalisées

Si vous avez créé une police de voix neurale personnalisée, utilisez le point de terminaison que vous avez créé. Vous pouvez également utiliser les points de terminaison suivants. Remplacez {deploymentId} par l’ID de déploiement de votre modèle de voix neuronale.

Région Point de terminaison
Australie Est https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Brésil Sud https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centre du Canada https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Centre https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Asie Est https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Est https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Est 2 https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
France Centre https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Allemagne Centre-Ouest https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Inde Centre https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japon Est https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
OuJapon Est https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Inde Ouest Jio https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centre de la Corée https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centre-Nord des États-Unis https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Europe Nord https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Norvège Est https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Afrique du Sud Nord https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
États-Unis - partie centrale méridionale https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Asie Sud-Est https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Suisse Nord https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Suisse Ouest https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Émirats arabes unis Nord https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Sud du Royaume-Uni https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centre-USA Ouest https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Europe Ouest https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Ouest https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Ouest 2 https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA Ouest 3 https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

Notes

Les régions précédentes sont disponibles pour l’hébergement du modèle de voix neuronale et la synthèse vocale en temps réel. La formation de la voix neuronale personnalisée est uniquement disponible dans ces trois régions : USA Est, Asie Sud-Est et Royaume-Uni Sud. Toutefois, les utilisateurs peuvent facilement copier un modèle de voix neuronale des trois régions dans d’autres régions figurant dans la liste précédente.

API Audio long

L’API Audio long est disponible dans plusieurs régions avec des points de terminaison uniques :

Région Point de terminaison
Australie Est https://australiaeast.customvoice.api.speech.microsoft.com
USA Est https://eastus.customvoice.api.speech.microsoft.com
Inde Centre https://centralindia.customvoice.api.speech.microsoft.com
États-Unis - partie centrale méridionale https://southcentralus.customvoice.api.speech.microsoft.com
Asie Sud-Est https://southeastasia.customvoice.api.speech.microsoft.com
Sud du Royaume-Uni https://uksouth.customvoice.api.speech.microsoft.com
Europe Ouest https://westeurope.customvoice.api.speech.microsoft.com

En-têtes de requête

Ce tableau liste les en-têtes obligatoires et facultatifs pour les demandes de synthèse vocale :

En-tête Description Obligatoire ou facultatif
Authorization Un jeton d’autorisation précédé du mot Bearer. Pour en savoir plus, consultez Authentification. Obligatoire
Content-Type Spécifie le type de contenu pour le texte fourni. Valeur acceptée : application/ssml+xml. Obligatoire
X-Microsoft-OutputFormat Spécifie le format de la sortie audio. Pour obtenir une liste complète des valeurs acceptées, consultez Sorties audio. Obligatoire
User-Agent Nom d'application. La valeur fournie doit être inférieure à 255 caractères. Obligatoire

Sorties audio

Liste de formats audio pris en charge envoyés dans chaque demande en tant qu’en-tête X-Microsoft-OutputFormat. Chaque format incorpore une vitesse de transmission et un type d’encodage. Le service Speech prend en charge les sorties audio de 24 kHz, 16 kHz et 8 kHz.

raw-16khz-16bit-mono-pcm            riff-16khz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm            riff-24khz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm            riff-48khz-16bit-mono-pcm
raw-8khz-8bit-mono-mulaw            riff-8khz-8bit-mono-mulaw
raw-8khz-8bit-mono-alaw             riff-8khz-8bit-mono-alaw
audio-16khz-32kbitrate-mono-mp3     audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3    audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3     audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3     audio-48khz-192kbitrate-mono-mp3
raw-16khz-16bit-mono-truesilk       raw-24khz-16bit-mono-truesilk
webm-16khz-16bit-mono-opus          webm-24khz-16bit-mono-opus
ogg-16khz-16bit-mono-opus           ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus

Notes

Si la voix que vous avez sélectionnée ne présente pas la même vitesse de transmission que le format de sortie spécifié, les données audio sont rééchantillonnées si nécessaire. Vous pouvez décoder le format ogg-24khz-16bit-mono-opus à l’aide du codec Opus.

Corps de la demande

Si vous utilisez une voix neuronale personnalisée, le corps d’une demande peut être envoyé sous forme de texte brut (ASCII ou UTF-8). Sinon, le corps de chaque demande POST est envoyé en tant que SSML. SSML vous permet de choisir la voix et la langue de la synthèse vocale renvoyée par la fonctionnalité de synthèse vocale. Pour obtenir une liste complète des voix prises en charge, consultez Prise en charge des langues et de la voix pour le service Speech.

Exemple de requête

Cette requête HTTP utilise SSML pour spécifier la voix et la langue. Si la longueur du corps est grande et que le contenu audio obtenu dépasse 10 minutes, il est tronqué à 10 minutes. En d’autres termes, la durée du contenu audio ne peut pas dépasser 10 minutes.

POST /cognitiveservices/v1 HTTP/1.1

X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: westus.tts.speech.microsoft.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>

<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
    name='en-US-ChristopherNeural'>
        Microsoft Speech Service Text-to-Speech API
</voice></speak>

* Pour la longueur du contenu, vous devez utiliser votre propre longueur de contenu. Dans la plupart des cas, cette valeur est calculée automatiquement.

Codes d’état HTTP

Le code d’état HTTP de chaque réponse indique la réussite ou des erreurs courantes :

Code d’état HTTP Description Raison possible
200 OK La demande a abouti. Le corps de la réponse est un fichier audio.
400 Demande incorrecte Un paramètre obligatoire est manquant, vide ou présente une valeur Null. Il est également possible que la valeur transmise à un paramètre obligatoire ou facultatif ne soit pas valide. Ce problème est généralement dû à un en-tête trop long.
401 Non autorisé La demande n’est pas autorisée. Vérifiez que votre clé d’abonnement ou votre jeton est valide et dans la région appropriée.
415 Type de média non pris en charge Il est possible que la valeur Content-Type indiquée était incorrecte. Content-Type doit être définie sur application/ssml+xml.
429 Trop de demandes Vous avez dépassé le quota ou le taux de requêtes autorisé pour votre abonnement.
502 Passerelle incorrecte Il y a un problème au niveau du réseau ou côté serveur. Cet état peut également signaler des en-têtes non valides.

Si l’état HTTP est 200 OK, le corps de la réponse contient un fichier audio au format demandé. Ce fichier peut être lu pendant son transfert ou pendant son enregistrement dans une mémoire tampon ou dans un fichier.

Étapes suivantes