Dela via


REST API för text till tal

Med speech-tjänsten kan du konvertera text till syntetiserat tal och hämta en lista över röster som stöds för en region med hjälp av ett REST-API. I den här artikeln får du lära dig mer om auktoriseringsalternativ, frågealternativ, hur du strukturerar en begäran och hur du tolkar ett svar.

Dricks

Användningsfallen för rest-API:et text till tal är begränsade. Använd den endast i fall där du inte kan använda Speech SDK. Med Speech SDK kan du till exempel prenumerera på händelser för mer information om text till talbearbetning och resultat.

Rest-API:et för text till tal stöder neural text till talröster på många språk. Varje tillgänglig slutpunkt är associerad med en region. En Speech-resursnyckel för slutpunkten eller regionen som du planerar att använda krävs. Här är länkar till mer information:

Viktigt!

Kostnaderna varierar för fördefinierade neurala röster (kallas neurala på prissidan) och anpassade neurala röster (kallas anpassad neural på prissidan). Mer information finns i Priser för Speech-tjänsten.

Innan du använder text-till-tal-REST-API:et måste du slutföra ett tokenutbyte som en del av autentiseringen för att få åtkomst till tjänsten. Mer information finns i Autentisering.

Hämta en lista med röster

Du kan använda tts.speech.microsoft.com/cognitiveservices/voices/list slutpunkten för att få en fullständig lista med röster för en viss region eller slutpunkt. Prefixa slutpunkten för röstlistan med en region för att hämta en lista med röster för den regionen. Om du till exempel vill hämta en lista med röster för westus regionen använder du https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list slutpunkten. En lista över alla regioner som stöds finns i dokumentationen för regioner .

Kommentar

Röster och formatmallar i förhandsversionen är endast tillgängliga i tre tjänstregioner: USA, östra, Europa, västra och Asien, sydöstra.

Begärandehuvuden

Den här tabellen visar obligatoriska och valfria rubriker för text-till-tal-begäranden:

Header beskrivning Obligatorisk eller valfri
Ocp-Apim-Subscription-Key Din Speech-resursnyckel. Antingen den här rubriken eller Authorization krävs.
Authorization En auktoriseringstoken föregås av ordet Bearer. Mer information finns i Autentisering. Antingen den här rubriken eller Ocp-Apim-Subscription-Key krävs.

Begärandetext

En brödtext krävs inte för GET begäranden till den här slutpunkten.

Exempelbegäran

Den här begäran kräver endast ett auktoriseringshuvud:

GET /cognitiveservices/voices/list HTTP/1.1

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

Här är ett exempel på ett curl-kommando:

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

Exempelsvar

Du bör få ett svar med en JSON-brödtext som innehåller alla språk som stöds, röster, kön, format och annan information. Egenskapen WordsPerMinute för varje röst kan användas för att uppskatta längden på utdatatalet. Det här JSON-exemplet visar partiella resultat för att illustrera strukturen för ett svar:

[  
    // 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": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "ExtendedPropertyMap": {
          "IsHighQuality48K": "True"
        },
        "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": "24000",
        "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": "24000",
        "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": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "RolePlayList": [
          "Narrator",
          "YoungAdultMale",
          "Boy"
        ],
        "WordsPerMinute": "293"
    },
    // Redacted for brevity
]

HTTP-statuskoder

HTTP-statuskoden för varje svar anger lyckade eller vanliga fel.

HTTP-statuskod beskrivning Möjlig orsak
200 OK Begäran lyckades.
400 Felaktig begäran En obligatorisk parameter saknas, är tom eller null. Eller så är värdet som skickas till en obligatorisk eller valfri parameter ogiltigt. En vanlig orsak är en rubrik som är för lång.
401 Behörighet saknas Begäran är inte auktoriserad. Kontrollera att resursnyckeln eller token är giltig och i rätt region.
429 för många begäranden Du har överskridit kvoten eller antalet begäranden som tillåts för din resurs.
502 Felaktig gateway Det finns ett problem på nätverks- eller serversidan. Den här statusen kan också indikera ogiltiga rubriker.

Konvertera text till tal

Med cognitiveservices/v1 slutpunkten kan du konvertera text till tal med hjälp av SSML (Speech Synthesis Markup Language).

Regioner och slutpunkter

Dessa regioner stöds för text till tal via REST-API:et. Se till att välja den slutpunkt som matchar din Speech-resursregion.

Fördefinierade neurala röster

Använd den här tabellen för att fastställa tillgängligheten för neurala röster per region eller slutpunkt:

Region Slutpunkt
Australien, östra https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
Brasilien, södra https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
Kanada, centrala https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
Central US https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
Asien, östra https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
East US https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
USA, östra 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
Frankrike, centrala https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
Tyskland, västra centrala https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
Indien, centrala https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
Japan, östra https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
Japan, västra https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
Jio Västra Indien https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1
Sydkorea, centrala https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
USA, norra centrala https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Europa, norra https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
Norge, östra https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
USA, södra centrala https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Sydostasien https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
Sverige, centrala https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
Schweiz, norra https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
Schweiz, västra https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
Förenade Arabemiraten, norra https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
US Gov, Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
US Gov, Virginia https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
Södra Storbritannien https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
USA, västra centrala https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Europa, västra https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
USA, västra https://westus.tts.speech.microsoft.com/cognitiveservices/v1
USA, västra 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
USA, västra 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

Dricks

Röster i förhandsversionen är endast tillgängliga i dessa tre regioner: USA, östra, Europa, västra och Asien, sydöstra.

Anpassade neurala röster

Om du har skapat ett anpassat neuralt röstteckensnitt använder du slutpunkten som du har skapat. Du kan också använda följande slutpunkter. Ersätt {deploymentId} med distributions-ID:t för din neurala röstmodell.

Region Utbildning Distribution Slutpunkt
Australien, östra Ja Ja https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Brasilien, södra Nej Ja https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Kanada, centrala Nej Ja https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centrala USA Nej Ja https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Asien, östra Nej Ja https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, östra Ja Ja https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, östra 2 Ja Ja https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Centrala Frankrike Nej Ja https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Tyskland, västra centrala Nej Ja https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Indien, centrala Ja Ja https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japan, östra Ja Ja https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Västra Japan Nej Ja https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Jio Västra Indien Nej Ja https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Sydkorea, centrala Ja Ja https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Norra centrala USA Nej Ja https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Europa, norra Ja Ja https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Norge, östra Nej Ja https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Sydafrika, norra Nej Ja https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, södra centrala Ja Ja https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Sydostasien Ja Ja https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Schweiz, norra Nej Ja https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Schweiz, västra Nej Ja https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Förenade Arabemiraten, norra Nej Ja https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Södra Storbritannien Ja Ja https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Västra centrala USA Nej Ja https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Västeuropa Ja Ja https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Västra USA Ja Ja https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Västra USA 2 Ja Ja https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, västra 3 Nej Ja https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

Kommentar

De föregående regionerna är tillgängliga för neural röstmodellvärd och realtidssyntes. Anpassad neural röstträning är endast tillgänglig i vissa regioner. Men användarna kan enkelt kopiera en neural röstmodell från dessa regioner till andra regioner i föregående lista.

API för långt ljud

API:et för långt ljud är tillgängligt i flera regioner med unika slutpunkter:

Region Slutpunkt
Australien, östra https://australiaeast.customvoice.api.speech.microsoft.com
USA, östra https://eastus.customvoice.api.speech.microsoft.com
Indien, centrala https://centralindia.customvoice.api.speech.microsoft.com
USA, södra centrala https://southcentralus.customvoice.api.speech.microsoft.com
Sydostasien https://southeastasia.customvoice.api.speech.microsoft.com
Storbritannien, södra https://uksouth.customvoice.api.speech.microsoft.com
Europa, västra https://westeurope.customvoice.api.speech.microsoft.com

Begärandehuvuden

Den här tabellen visar obligatoriska och valfria rubriker för text-till-tal-begäranden:

Header beskrivning Obligatorisk eller valfri
Authorization En auktoriseringstoken föregås av ordet Bearer. Mer information finns i Autentisering. Obligatoriskt
Content-Type Anger innehållstypen för den angivna texten. Godkänt värde: application/ssml+xml. Obligatoriskt
X-Microsoft-OutputFormat Anger ljudutdataformatet. En fullständig lista över godkända värden finns i Ljudutdata. Obligatoriskt
User-Agent Programnamnet. Det angivna värdet måste vara mindre än 255 tecken. Obligatoriskt

Begärandetext

Om du använder en anpassad neural röst kan brödtexten i en begäran skickas som oformaterad text (ASCII eller UTF-8). Annars skickas brödtexten för varje POST begäran som SSML. Med SSML kan du välja röst och språk för det syntetiserade tal som text till tal-funktionen returnerar. En fullständig lista över röster som stöds finns i Språk och röststöd för Speech-tjänsten.

Exempelbegäran

Den här HTTP-begäran använder SSML för att ange röst och språk. Om kroppslängden är lång och det resulterande ljudet överskrider 10 minuter trunkeras det till 10 minuter. Med andra ord får ljudlängden inte överstiga 10 minuter.

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'>
        I'm excited to try text to speech!
</voice></speak>

* För Innehållslängd bör du använda din egen innehållslängd. I de flesta fall beräknas det här värdet automatiskt.

HTTP-statuskoder

HTTP-statuskoden för varje svar anger lyckade eller vanliga fel:

HTTP-statuskod beskrivning Möjlig orsak
200 OK Begäran lyckades. Svarstexten är en ljudfil.
400 Felaktig begäran En obligatorisk parameter saknas, är tom eller null. Eller så är värdet som skickas till en obligatorisk eller valfri parameter ogiltigt. En vanlig orsak är en rubrik som är för lång.
401 Behörighet saknas Begäran är inte auktoriserad. Kontrollera att din Speech-resursnyckel eller token är giltig och i rätt region.
415 Medietyp som inte stöds Det är möjligt att fel Content-Type värde angavs. Content-Type ska anges till application/ssml+xml.
429 för många begäranden Du har överskridit kvoten eller antalet begäranden som tillåts för din resurs.
502 Felaktig gateway Det finns ett problem på nätverks- eller serversidan. Den här statusen kan också indikera ogiltiga rubriker.

Om HTTP-statusen är 200 OKinnehåller svarets brödtext en ljudfil i det begärda formatet. Den här filen kan spelas upp när den överförs, sparas i en buffert eller sparas i en fil.

Ljudutdata

De strömmande och icke-strömmande ljudformaten som stöds skickas i varje begäran som X-Microsoft-OutputFormat rubrik. Varje format innehåller en bithastighet och kodningstyp. Speech-tjänsten stöder 48 kHz, 24 kHz, 16 kHz och 8 kHz ljudutdata. Varje fördefinierad neural röstmodell är tillgänglig på 24kHz och high-fidelity 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
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

Kommentar

Om du väljer utdataformatet 48kHz anropas röstmodellen med hög återgivning med 48 kHz i enlighet med detta. Andra exempelfrekvenser än 24kHz och 48kHz kan erhållas genom uppsampling eller nedsampling vid syntetiserande, till exempel 44,1kHz är nedsampling från 48kHz.

Om det valda röst- och utdataformatet har olika bithastigheter samplas ljudet om efter behov. Du kan avkoda ogg-24khz-16bit-mono-opus formatet med hjälp av Opus codec.

Autentisering

Varje begäran kräver ett auktoriseringshuvud. Den här tabellen visar vilka rubriker som stöds för varje funktion:

Auktoriseringshuvud som stöds Tal till text Text till tal
Ocp-Apim-Subscription-Key Ja Ja
Authorization: Bearer Ja Ja

När du använder Ocp-Apim-Subscription-Key huvudet måste endast resursnyckeln anges. Till exempel:

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

När du använder Authorization: Bearer huvudet måste du göra en begäran till issueToken slutpunkten. I den här begäran byter du ut resursnyckeln mot en åtkomsttoken som är giltig i 10 minuter.

Ett annat alternativ är att använda Microsoft Entra-autentisering som också använder Authorization: Bearer huvudet, men med en token utfärdad via Microsoft Entra-ID. Se Använda Microsoft Entra-autentisering.

Så här skaffar du en åtkomsttoken

För att få en åtkomsttoken måste du göra en begäran till issueToken slutpunkten med hjälp Ocp-Apim-Subscription-Key av och din resursnyckel.

Slutpunkten issueToken har följande format:

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

Ersätt <REGION_IDENTIFIER> med identifieraren som matchar prenumerationens region .

Använd följande exempel för att skapa din begäran om åtkomsttoken.

HTTP-exempel

Det här exemplet är en enkel HTTP-begäran för att hämta en token. Ersätt YOUR_SUBSCRIPTION_KEY med resursnyckeln för Speech-tjänsten. Om din prenumeration inte finns i regionen USA, västra ersätter du Host huvudet med regionens värdnamn.

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

Brödtexten i svaret innehåller åtkomsttoken i JSON Web Token-format (JWT).

PowerShell-exempel

Det här exemplet är ett enkelt PowerShell-skript för att hämta en åtkomsttoken. Ersätt YOUR_SUBSCRIPTION_KEY med resursnyckeln för Speech-tjänsten. Se till att använda rätt slutpunkt för den region som matchar din prenumeration. Det här exemplet är för närvarande inställt på USA, västra.

$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://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken
 -Headers $FetchTokenHeader

# show the token received
$OAuthToken

cURL-exempel

cURL är ett kommandoradsverktyg som är tillgängligt i Linux (och i Windows-undersystem för Linux). Det här cURL-kommandot visar hur du hämtar en åtkomsttoken. Ersätt YOUR_SUBSCRIPTION_KEY med resursnyckeln för Speech-tjänsten. Se till att använda rätt slutpunkt för den region som matchar din prenumeration. Det här exemplet är för närvarande inställt på USA, västra.

curl -v -X POST \
 "https://eastus.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"

C#-exempel

Den här C#-klassen visar hur du hämtar en åtkomsttoken. Skicka resursnyckeln för Speech-tjänsten när du instansierar klassen. Om din prenumeration inte finns i regionen USA, västra ändrar du värdet FetchTokenUri för så att det matchar regionen för din prenumeration.

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

Python-exempel

# 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://eastus.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)

Så här använder du en åtkomsttoken

Åtkomsttoken ska skickas till tjänsten som Authorization: Bearer <TOKEN> rubrik. Varje åtkomsttoken är giltig i 10 minuter. Du kan hämta en ny token när som helst, men för att minimera nätverkstrafiken och svarstiden rekommenderar vi att du använder samma token i nio minuter.

Här är en HTTP-exempelbegäran till REST API för tal till text för kort ljud:

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...

Använd Microsoft Entra-autentisering

Om du vill använda Microsoft Entra-autentisering med REST API för tal till text för kort ljud måste du skapa en åtkomsttoken. Stegen för att hämta åtkomsttoken som består av resurs-ID och Microsoft Entra-åtkomsttoken är desamma som när du använder Speech SDK. Följ stegen här Använda Microsoft Entra-autentisering

  • Skapa en Speech-resurs
  • Konfigurera Speech-resursen för Microsoft Entra-autentisering
  • Hämta en Microsoft Entra-åtkomsttoken
  • Hämta resurs-ID för Tal

När resurs-ID:t och Microsoft Entra-åtkomsttoken har hämtats kan den faktiska åtkomsttoken konstrueras enligt det här formatet:

aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN

Du måste inkludera prefixet "aad#" och "#" (hash)-avgränsaren mellan resurs-ID och åtkomsttoken.

Här är en HTTP-exempelbegäran till REST API för tal till text för kort ljud:

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...

Mer information om Microsoft Entra-åtkomsttoken, inklusive tokenlivslängd, finns i Åtkomsttoken i Microsofts identitetsplattform.

Nästa steg