REST API voor tekst-naar-spraak

Met de Speech-service kunt u tekst converteren naar gesynthetiseerde spraak en een lijst met ondersteunde stemmen voor een regio ophalen met behulp van een REST API. In dit artikel leert u meer over autorisatieopties, queryopties, het structuren van een aanvraag en het interpreteren van een antwoord.

Tip

Gebruiksscenario's voor de text-to-speech REST API zijn beperkt. Gebruik deze alleen in gevallen waarin u de Speech SDK niet kunt gebruiken. Met de Speech SDK kunt u zich bijvoorbeeld abonneren op gebeurtenissen voor meer inzicht in de tekst in spraakverwerking en resultaten.

De tekst-naar-spraak REST API ondersteunt neurale tekst-naar-spraakstemmen in veel talen. Elk beschikbaar eindpunt is gekoppeld aan een regio. Een API-sleutel voor het eindpunt of de regio die u wilt gebruiken, is vereist. Hier volgen koppelingen naar meer informatie:

Belangrijk

De kosten variëren voor standaardstemmen en aangepaste stemmen. Zie de prijzen voor tekst-naar-spraak voor meer informatie.

Prerequisites

Om de REST API voor tekst-naar-spraak te gebruiken, hebt u het volgende nodig:

  • Een Azure-account. Maak er gratis een.
  • Een spraakresource in de Azure portal.
  • De resourcesleutel en het eindpunt van de pagina Sleutels en eindpunt van uw Spraak-resource.

Verificatie

Voor elke aanvraag is een autorisatieheader vereist. In deze tabel ziet u welke headers worden ondersteund voor elke functie:

Ondersteunde autorisatieheader Spraak naar tekst Tekst naar spraak
Ocp-Apim-Subscription-Key Ja Ja
Authorization: Bearer Ja Ja

Wanneer u de Ocp-Apim-Subscription-Key header gebruikt, moet alleen uw resource-sleutel zijn opgegeven. Bijvoorbeeld:

'Ocp-Apim-Subscription-Key': 'YourSpeechResourceKey'

Wanneer u de Authorization: Bearer header gebruikt, moet u een aanvraag indienen bij het issueToken eindpunt. In deze aanvraag wisselt u uw resourcesleutel uit voor een toegangstoken dat tien minuten geldig is.

Een andere optie is om Microsoft Entra verificatie te gebruiken die ook gebruikmaakt van de Authorization: Bearer-header, maar met een token dat is uitgegeven via Microsoft Entra ID. Zie Use Microsoft Entra authentication.

Een toegangstoken ophalen

Als u een toegangstoken wilt ophalen, moet u een aanvraag indienen bij het issueToken eindpunt met behulp van Ocp-Apim-Subscription-Key en uw resourcesleutel.

Het issueToken eindpunt heeft deze indeling:

https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken

Vervang door YourResourceName de naam van uw Spraak-resource.

Opmerking

Dit eindpunt vereist dat uw resource een aangepast subdomein heeft geconfigureerd. Voor resources zonder een aangepast domein gebruikt u in plaats daarvan het regionale eindpunt: https://<region>.api.cognitive.microsoft.com/sts/v1.0/issueToken. Vervang <region> door de Azure regio van uw resource (bijvoorbeeld eastus).

Gebruik de volgende voorbeelden om uw toegangstokenaanvraag te maken.

HTTP-voorbeeld

Dit voorbeeld is een eenvoudige HTTP-aanvraag om een token op te halen. Vervang YourSpeechResourceKey door uw resource-sleutel voor de Speech-service. Vervang door YourResourceName de naam van uw Spraak-resource.

POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YourSpeechResourceKey
Host: YourResourceName.cognitiveservices.azure.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0

De hoofdtekst van het antwoord bevat het toegangstoken in de JSON Web Token-indeling (JWT).

PowerShell-voorbeeld

Dit voorbeeld is een eenvoudig PowerShell-script om een toegangstoken op te halen. Vervang YourSpeechResourceKey door uw resource-sleutel voor de Speech-service. Vervang door YourResourceName de naam van uw Spraak-resource.

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

$OAuthToken = Invoke-RestMethod -Method POST `
    -Uri https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken `
    -Headers $FetchTokenHeader

# show the token received
$OAuthToken

cURL-voorbeeld

cURL is een opdrachtregelprogramma dat beschikbaar is in Linux (en in de Windows-subsysteem voor Linux). Deze cURL-opdracht illustreert hoe u een toegangstoken kunt ophalen. Vervang YourSpeechResourceKey door uw resource-sleutel voor de Speech-service. Vervang door YourResourceName de naam van uw Spraak-resource.

curl -v -X POST \
 "https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken" \
 -H "Content-type: application/x-www-form-urlencoded" \
 -H "Content-Length: 0" \
 -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey"

C#-voorbeeld

Deze C#-klasse laat zien hoe u een toegangstoken kunt verkrijgen. Geef uw resourcesleutel door voor de Speech-service wanneer u de klasse instantiëren. Vervang door YourResourceName de naam van uw Spraak-resource.

public class Authentication
{
    public static readonly string FetchTokenUri =
        "https://YourResourceName.cognitiveservices.azure.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();
        }
    }
}

voorbeeld van 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://YourResourceName.cognitiveservices.azure.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)

Een toegangstoken gebruiken

Het toegangstoken moet als header Authorization: Bearer <TOKEN> naar de service worden verzonden. Elk toegangstoken is 10 minuten geldig. U kunt op elk gewenst moment een nieuw token krijgen, maar om netwerkverkeer en latentie te minimaliseren, raden we u aan om hetzelfde token negen minuten te gebruiken.

Belangrijk

Bearer-tokens zijn gericht op het eindpunt dat ze heeft uitgegeven. Een token dat is verkregen van YourResourceName.cognitiveservices.azure.com werkt alleen voor aanvragen naar dezelfde host. Een token van <region>.api.cognitive.microsoft.com werkt alleen met regionale Speech-eindpunten. Als u een 401-fout ontvangt bij het gebruik van een Bearer-token, gebruik dan Ocp-Apim-Subscription-Key met de sleutel van uw resource, aangezien die met alle endpointindelingen werkt.

Hier volgt een voorbeeld van een HTTP-aanvraag voor de REST API voor spraak naar tekst voor korte audio:

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

// Message body here...

Microsoft Entra-verificatie gebruiken

Als u Microsoft Entra verificatie wilt gebruiken met de REST API voor spraak-naar-tekst voor korte audio, moet u een toegangstoken maken. De stappen voor het verkrijgen van het toegangstoken dat bestaat uit resource-id en Microsoft Entra toegangstoken zijn hetzelfde als bij het gebruik van de Speech SDK. Volg de stappen hier Use Microsoft Entra authentication

  • Een Foundry-resource voor Spraak maken
  • De Spraak-resource configureren voor Microsoft Entra-verificatie
  • Een Microsoft Entra-toegangstoken ophalen
  • De spraakresource-id ophalen

Nadat de resource-id en het Microsoft Entra toegangstoken zijn verkregen, kan het werkelijke toegangstoken worden samengesteld volgens deze indeling:

aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN

U moet het voorvoegsel 'aad#' en het scheidingsteken '#' (hash) tussen de resource-id en het toegangstoken opnemen.

Hier volgt een voorbeeld van een HTTP-aanvraag voor de REST API voor spraak naar tekst voor korte audio:

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

// Message body here...

Ga naar Access-tokens in de Microsoft identity platform voor meer informatie over Microsoft Entra toegangstokens, inclusief levensduur van tokens.

Een lijst met stemmen ophalen

U kunt uw Speech-resource-eindpunt gebruiken om een volledige lijst met stemmen op te halen. Gebruik het pad /tts/cognitiveservices/voices/list voor uw resource-eindpunt. Gebruik bijvoorbeeld het https://YourResourceName.cognitiveservices.azure.com/tts/cognitiveservices/voices/list eindpunt. Zie de documentatie voor regio's voor een lijst met alle ondersteunde regio's.

Opmerking

Stemmen en stijlen in preview zijn alleen beschikbaar in een subset van regio's. Zie de tabel Speech-serviceregio's voor de huidige lijst van regio's die in de openbare previewversie stemmen en stijlen ondersteunen.

Aanvraagheaders

Deze tabel bevat vereiste en optionele kopteksten voor tekst-naar-spraakaanvragen:

Header Beschrijving Vereist of optioneel
Ocp-Apim-Subscription-Key Uw spraakresource-sleutel. Deze header of Authorization is vereist.
Authorization Een autorisatietoken voorafgegaan door het woord Bearer. Zie Verificatie voor meer informatie. Deze header of Ocp-Apim-Subscription-Key is vereist.

Verzoekinhoud

Er is geen hoofdtekst vereist voor GET aanvragen naar dit eindpunt.

Voorbeeldaanvraag

Voor deze aanvraag is alleen een autorisatieheader vereist:

GET /tts/cognitiveservices/voices/list HTTP/1.1

Host: YourResourceName.cognitiveservices.azure.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY

Hier volgt een voorbeeld van een curl-opdracht:

curl --location --request GET 'https://YourResourceName.cognitiveservices.azure.com/tts/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'

Voorbeeldantwoord

u moet een antwoord ontvangen met een JSON-inhoud met alle ondersteunde locales, stemmen, geslacht, stijlen en andere details. De WordsPerMinute eigenschap voor elke stem kan worden gebruikt om de lengte van de uitvoerspraak te schatten. In dit JSON-voorbeeld ziet u gedeeltelijke resultaten om de structuur van een antwoord te illustreren:

[
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
        "DisplayName": "Jenny",
        "LocalName": "Jenny",
        "ShortName": "en-US-JennyNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "StyleList": [
          "assistant",
          "chat",
          "customerservice",
          "newscast",
          "angry",
          "cheerful",
          "sad",
          "excited",
          "friendly",
          "terrified",
          "shouting",
          "unfriendly",
          "whispering",
          "hopeful"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "152"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
        "DisplayName": "Jenny Multilingual",
        "LocalName": "Jenny Multilingual",
        "ShortName": "en-US-JennyMultilingualNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "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"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "190"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
        "DisplayName": "Orla",
        "LocalName": "Orla",
        "ShortName": "ga-IE-OrlaNeural",
        "Gender": "Female",
        "Locale": "ga-IE",
        "LocaleName": "Irish (Ireland)",
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "139"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
        "DisplayName": "Yunxi",
        "LocalName": "云希",
        "ShortName": "zh-CN-YunxiNeural",
        "Gender": "Male",
        "Locale": "zh-CN",
        "LocaleName": "Chinese (Mandarin, Simplified)",
        "StyleList": [
          "narration-relaxed",
          "embarrassed",
          "fearful",
          "cheerful",
          "disgruntled",
          "serious",
          "angry",
          "sad",
          "depressed",
          "chat",
          "assistant",
          "newscast"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "RolePlayList": [
          "Narrator",
          "YoungAdultMale",
          "Boy"
        ],
        "WordsPerMinute": "293"
    },
    // Redacted for brevity
]

HTTP-statuscodes

De HTTP-statuscode voor elk antwoord duidt op geslaagde of veelvoorkomende fouten.

HTTP-statuscode Beschrijving Mogelijke reden
200 OK De aanvraag is geslaagd.
400 Foutieve aanvraag Een vereiste parameter ontbreekt, leeg of null. Of de waarde die is doorgegeven aan een vereiste of optionele parameter, is ongeldig. Een veelvoorkomende reden is een header die te lang is.
401 Niet gemachtigd De aanvraag is niet geautoriseerd. Zorg ervoor dat uw resource-sleutel of token geldig is en zich in de juiste regio bevindt.
429 Te veel aanvragen U hebt het quotum of de frequentie van aanvragen overschreden die zijn toegestaan voor uw resource.
502 Bad Gateway Er is een probleem aan de netwerk- of serverzijde. Deze status kan ook ongeldige headers aangeven.

Tekst naar spraak converteren

Met cognitiveservices/v1 het eindpunt kunt u tekst converteren naar spraak met behulp van SSML (Speech Synthesis Markup Language).

Regio's en eindpunten

Deze regio's worden ondersteund voor tekst-naar-spraak via de REST API. Zorg ervoor dat u het eindpunt selecteert dat overeenkomt met uw spraakresourceregio.

Standaardstemmen

Gebruik deze tabel om de beschikbaarheid van neurale stemmen per regio of eindpunt te bepalen:

Regio Eindpunt
Australië - oost https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
Brazilië - zuid https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
Canada - centraal https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
Canada Oost https://canadaeast.tts.speech.microsoft.com/cognitiveservices/v1
Centraal-VS https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
Azië - oost https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
Oost-VS https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
East US 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
Frankrijk - centraal https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
Duitsland - west-centraal https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
India Centraal https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
Italië - noord https://italynorth.tts.speech.microsoft.com/cognitiveservices/v1
Japan Oost https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
Japan West https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
Centraal Korea https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
VS - noord-centraal https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Europa - noord https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
Noorwegen - oost https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
Qatar Centraal https://qatarcentral.tts.speech.microsoft.com/cognitiveservices/v1
Zuid-Afrika - noord https://southafricanorth.tts.speech.microsoft.com/cognitiveservices/v1
Zuid-Centraal VS https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Azië - zuidoost https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
Zweden - centraal https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
Zwitserland - noord https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
Zwitserland - west https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
UAE - noord https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
VK Zuiden https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
VK West https://ukwest.tts.speech.microsoft.com/cognitiveservices/v1
De Amerikaanse overheid van Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
US Overheid Virginia https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
West-Centraal VS https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
West-Europa https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
West VS https://westus.tts.speech.microsoft.com/cognitiveservices/v1
West US 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
West US 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

Tip

Zie de tabel Speech-serviceregio's voor een actuele lijst van regio's die stemmen in de preview ondersteunen.

Aangepaste stemmen

Als u een aangepaste stem hebt gemaakt, gebruikt u het eindpunt dat u hebt gemaakt. U kunt ook de volgende eindpunten gebruiken. Vervang door {deploymentId} de implementatie-id voor uw aangepaste spraakmodel.

Regio Opleiding Implementatie Eindpunt
Australië - oost Ja Ja https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Brazilië - zuid Nee Ja https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Canada - centraal Nee Ja https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centraal-VS Nee Ja https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Azië - oost Nee Ja https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Oost-VS Ja Ja https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
East US 2 Ja Ja https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Frankrijk - centraal Nee Ja https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Duitsland - west-centraal Nee Ja https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
India Centraal Ja Ja https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Italië - noord Nee Ja https://italynorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japan Oost Ja Ja https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japan West Nee Ja https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centraal Korea Ja Ja https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
VS - noord-centraal Nee Ja https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Europa - noord Ja Ja https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Noorwegen - oost Nee Ja https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zuid-Afrika - noord Nee Ja https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zuid-Centraal VS Ja Ja https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Azië - zuidoost Ja Ja https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zweden - centraal Nee Ja https://swedencentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zwitserland - noord Nee Ja https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zwitserland - west Nee Ja https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
UAE - noord Nee Ja https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
VK Zuiden Ja Ja https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West-Centraal VS Nee Ja https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West-Europa Ja Ja https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West VS Ja Ja https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West US 2 Ja Ja https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West US 3 Nee Ja https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

Opmerking

De voorgaande regio's zijn beschikbaar voor standaard spraakmodelhosting en realtimesynthese. Aangepaste spraaktraining is alleen beschikbaar in sommige regio's. U kunt echter eenvoudig een aangepast spraakmodel van deze regio's kopiëren naar andere regio's in de voorgaande lijst.

Lange audio-API

De Long Audio-API is beschikbaar in meerdere regio's met unieke eindpunten:

Regio Eindpunt
Australië - oost https://australiaeast.customvoice.api.speech.microsoft.com
Oost-VS https://eastus.customvoice.api.speech.microsoft.com
India Centraal https://centralindia.customvoice.api.speech.microsoft.com
Zuid-Centraal VS https://southcentralus.customvoice.api.speech.microsoft.com
Azië - zuidoost https://southeastasia.customvoice.api.speech.microsoft.com
VK Zuiden https://uksouth.customvoice.api.speech.microsoft.com
West-Europa https://westeurope.customvoice.api.speech.microsoft.com

Aanvraagheaders

Deze tabel bevat vereiste en optionele kopteksten voor tekst-naar-spraakaanvragen:

Header Beschrijving Vereist of optioneel
Authorization Een autorisatietoken voorafgegaan door het woord Bearer. Zie Verificatie voor meer informatie. Vereist
Content-Type Hiermee geeft u het inhoudstype voor de opgegeven tekst. Geaccepteerde waarde: application/ssml+xml. Vereist
X-Microsoft-OutputFormat Hiermee wordt het audio-uitvoerformaat gespecificeerd. Zie Audio-uitvoer voor een volledige lijst met geaccepteerde waarden. Vereist
User-Agent De naam van de toepassing. De opgegeven waarde moet uit minder dan 255 tekens bestaan. Vereist

Verzoekinhoud

Als u een aangepaste stem gebruikt, kan de hoofdtekst van een aanvraag worden verzonden als tekst zonder opmaak (ASCII of UTF-8). Anders wordt de hoofdtekst van elke POST aanvraag verzonden als SSML. Met SSML kunt u de stem en taal van de gesynthetiseerde spraak kiezen die door de functie tekst naar spraak wordt geretourneerd. Zie voor een volledige lijst met ondersteunde stemmen Taal- en stemondersteuning voor de Speech-service.

Voorbeeldaanvraag

Deze HTTP-aanvraag maakt gebruik van SSML om de spraak en taal op te geven. Als de duur van de content lang is en de resulterende audio langer is dan 10 minuten, wordt deze ingekort tot 10 minuten. Met andere woorden, de audiolengte mag niet langer zijn dan 10 minuten.

POST /cognitiveservices/v1 HTTP/1.1

X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: YourResourceName.cognitiveservices.azure.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'>
        I'm excited to try text to speech!
</voice></speak>

* Voor de lengte van de inhoud moet u uw eigen inhoudslengte gebruiken. In de meeste gevallen wordt deze waarde automatisch berekend.

HTTP-statuscodes

De HTTP-statuscode voor elk antwoord duidt op geslaagde of veelvoorkomende fouten:

HTTP-statuscode Beschrijving Mogelijke reden
200 OK De aanvraag is geslaagd. De hoofdtekst van het antwoord is een audiobestand.
400 Foutieve aanvraag Een vereiste parameter ontbreekt, leeg of null. Of de waarde die is doorgegeven aan een vereiste of optionele parameter, is ongeldig. Een veelvoorkomende reden is een header die te lang is.
401 Niet gemachtigd De aanvraag is niet geautoriseerd. Zorg ervoor dat uw Spraak-resourcesleutel of -token geldig is en zich in de juiste regio bevindt.
415 Niet-ondersteund mediatype Het is mogelijk dat de verkeerde Content-Type waarde is opgegeven. Content-Type moet worden ingesteld op application/ssml+xml.
429 Te veel aanvragen U hebt het quotum of de frequentie van aanvragen overschreden die zijn toegestaan voor uw resource.
502 Bad Gateway Er is een probleem aan de netwerk- of serverzijde. Deze status kan ook ongeldige headers aangeven.
503 Service niet beschikbaar Er is om verschillende redenen een probleem aan de serverzijde.

Als de HTTP-status is 200 OK, bevat de hoofdtekst van het antwoord een audiobestand in de aangevraagde indeling. Dit bestand kan worden afgespeeld wanneer het wordt overgedragen, opgeslagen in een buffer of opgeslagen in een bestand.

Audio-uitvoer

De ondersteunde streaming- en niet-streaming audio-indelingen worden in elke aanvraag verzonden in de X-Microsoft-OutputFormat-header. Elke indeling bevat een bitsnelheid en coderingstype. De Speech-service ondersteunt audio-uitgangen van 48 kHz, 24 kHz, 16 kHz en 8 kHz. Elk standaard spraakmodel is beschikbaar in 24kHz en hoge getrouwheid 48kHz.

amr-wb-16000hz
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
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
g722-16khz-64kbps
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
raw-8khz-16bit-mono-pcm
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus

Opmerking

Als u een uitvoerindeling van 48 kHz selecteert, wordt dienovereenkomstig het hoogwaardige spraakmodel met 48 kHz aangeroepen. De steekproefsnelheden behalve 24 kHz en 48kHz kunnen worden verkregen via upsampling of downsampling bij het synthetiseren, bijvoorbeeld 44,1kHz wordt downsampled van 48kHz.

Als de geselecteerde spraak- en uitvoerindeling verschillende bitsnelheden hebben, wordt de audio indien nodig opnieuw gesampled. U kunt de ogg-24khz-16bit-mono-opus indeling decoderen met behulp van de Opus-codec.

Volgende stappen