Interfejs API REST zamiany tekstu na mowę
Usługa mowa umożliwia konwertowanie tekstu na syntetyzowany mowę i uzyskiwanie listy obsługiwanych głosów dla regionu przy użyciu interfejsu API REST. W tym artykule dowiesz się więcej o opcjach autoryzacji, opcjach zapytań, sposobie tworzenia struktury żądania i interpretowaniu odpowiedzi.
Napiwek
Przypadki użycia interfejsu API REST zamiany tekstu na mowę są ograniczone. Używaj go tylko w przypadkach, w których nie można używać zestawu SPEECH SDK. Na przykład za pomocą zestawu SPEECH SDK można subskrybować zdarzenia , aby uzyskać więcej szczegółowych informacji na temat tekstu do przetwarzania mowy i wyników.
Interfejs API REST zamiany tekstu na mowę obsługuje neuronowy tekst na głosy mowy w wielu ustawieniach regionalnych. Każdy dostępny punkt końcowy jest skojarzony z regionem. Klucz zasobu usługi Mowa dla punktu końcowego lub regionu, którego planujesz użyć, jest wymagany. Oto linki do dodatkowych informacji:
- Aby uzyskać pełną listę głosów, zobacz Obsługa języka i głosu dla usługi Mowa.
- Aby uzyskać informacje na temat dostępności regionalnej, zobacz Obsługiwane regiony usługi Mowa.
- W przypadku platformy Azure Government i platformy Microsoft Azure obsługiwanych przez punkty końcowe 21Vianet zobacz ten artykuł dotyczący suwerennych chmur.
Ważne
Koszty różnią się wstępnie utworzonymi głosami neuronowymi (nazywanymi neuronowymi na stronie cen) i niestandardowymi głosami neuronowymi (nazywanymi niestandardowymi neuronami na stronie cen). Aby uzyskać więcej informacji, zobacz Cennik usługi Mowa.
Przed użyciem tekstu do interfejsu API REST rozpoznawania mowy należy ukończyć wymianę tokenów w ramach uwierzytelniania w celu uzyskania dostępu do usługi. Aby uzyskać więcej informacji, zobacz Authentication (Uwierzytelnianie).
Pobieranie listy głosów
Możesz użyć tts.speech.microsoft.com/cognitiveservices/voices/list
punktu końcowego, aby uzyskać pełną listę głosów dla określonego regionu lub punktu końcowego. Prefiks listy głosów punkt końcowy z regionem, aby uzyskać listę głosów dla tego regionu. Aby na przykład uzyskać listę głosów dla westus
regionu, użyj punktu końcowego https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
. Aby uzyskać listę wszystkich obsługiwanych regionów, zobacz dokumentację regionów .
Uwaga
Głosy i style w wersji zapoznawczej są dostępne tylko w trzech regionach usługi: Wschodnie stany USA, Europa Zachodnia i Azja Południowo-Wschodnia.
Nagłówki żądań
Ta tabela zawiera listę wymaganych i opcjonalnych nagłówków dla żądań zamiany tekstu na mowę:
Nagłówek | opis | Wymagane lub opcjonalne |
---|---|---|
Ocp-Apim-Subscription-Key |
Klucz zasobu usługi Mowa. | Ten nagłówek lub Authorization jest wymagany. |
Authorization |
Token autoryzacji poprzedzony wyrazem Bearer . Aby uzyskać więcej informacji, zobacz Authentication (Uwierzytelnianie). |
Ten nagłówek lub Ocp-Apim-Subscription-Key jest wymagany. |
Treść żądania
Treść nie jest wymagana w przypadku GET
żądań do tego punktu końcowego.
Przykładowe żądanie
To żądanie wymaga tylko nagłówka autoryzacji:
GET /cognitiveservices/voices/list HTTP/1.1
Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
Oto przykładowe polecenie curl:
curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'
Przykładowa odpowiedź
Otrzymasz odpowiedź z treścią JSON zawierającą wszystkie obsługiwane ustawienia regionalne, głosy, płeć, style i inne szczegóły. Właściwość WordsPerMinute
dla każdego głosu może służyć do oszacowania długości mowy wyjściowej. W tym przykładzie JSON przedstawiono częściowe wyniki ilustrujące strukturę odpowiedzi:
[
// 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
]
Kody stanu HTTP
Kod stanu HTTP dla każdej odpowiedzi wskazuje powodzenie lub typowe błędy.
Kod stanu HTTP | opis | Możliwe przyczyny |
---|---|---|
200 | OK | Żądanie zakończyło się pomyślnie. |
400 | Nieprawidłowe żądanie | Brak wymaganego parametru, pusty lub null. Lub wartość przekazana do wymaganego lub opcjonalnego parametru jest nieprawidłowa. Częstą przyczyną jest zbyt długi nagłówek. |
401 | Brak autoryzacji | Żądanie nie jest autoryzowane. Upewnij się, że klucz zasobu lub token jest prawidłowy i w poprawnym regionie. |
429 | Zbyt wiele żądań | Przekroczono limit przydziału lub szybkość żądań dozwolonych dla zasobu. |
502 | Zła brama | Wystąpił problem po stronie sieci lub serwera. Ten stan może również wskazywać na nieprawidłowe nagłówki. |
Konwertowanie tekstu na mowę
Punkt cognitiveservices/v1
końcowy umożliwia konwertowanie tekstu na mowę przy użyciu języka znaczników syntezy mowy (SSML).
Regiony i punkty końcowe
Te regiony są obsługiwane w przypadku zamiany tekstu na mowę za pośrednictwem interfejsu API REST. Pamiętaj, aby wybrać punkt końcowy zgodny z regionem zasobu usługi Mowa.
Wstępnie utworzone głosy neuronowe
Ta tabela umożliwia określenie dostępności neuronowych głosów według regionu lub punktu końcowego:
Region (Region) | Punkt końcowy |
---|---|
Australia Wschodnia | https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1 |
Brazylia Południowa | https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1 |
Kanada Środkowa | https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Central US | https://centralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Azja Wschodnia | https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
East US | https://eastus.tts.speech.microsoft.com/cognitiveservices/v1 |
Wschodnie stany USA 2 | https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1 |
Francja Środkowa | https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Niemcy Środkowo-Zachodnie | https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Indie Środkowe | https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1 |
Japonia Wschodnia | https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1 |
Japonia Zachodnia | https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Indie Zachodnie (Jio) | https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1 |
Korea Środkowa | https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Północno-środkowe stany USA | https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Europa Północna | https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
Norwegia Wschodnia | https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1 |
South Central US | https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Southeast Asia | https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
Szwecja Środkowa | https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Szwajcaria Północna | https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1 |
Szwajcaria Zachodnia | https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Północne Zjednoczone Emiraty Arabskie | https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1 |
US Gov Arizona | https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1 |
US Gov Wirginia | https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1 |
Południowe Zjednoczone Królestwo | https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1 |
Zachodnio-środkowe stany USA | https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
West Europe | https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
Zachodnie stany USA | https://westus.tts.speech.microsoft.com/cognitiveservices/v1 |
Zachodnie stany USA 2 | https://westus2.tts.speech.microsoft.com/cognitiveservices/v1 |
Zachodnie stany USA 3 | https://westus3.tts.speech.microsoft.com/cognitiveservices/v1 |
Napiwek
Głosy w wersji zapoznawczej są dostępne tylko w następujących trzech regionach: Wschodnie stany USA, Europa Zachodnia i Azja Południowo-Wschodnia.
Niestandardowe neuronowe głosy
Jeśli utworzono niestandardową czcionkę neuronowego głosu, użyj utworzonego punktu końcowego. Możesz również użyć następujących punktów końcowych. Zastąp {deploymentId}
element identyfikatorem wdrożenia modelu neuronowego głosu.
Region (Region) | Szkolenie | Wdrożenie | Punkt końcowy |
---|---|---|---|
Australia Wschodnia | Tak | Tak | https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Brazylia Południowa | Nie. | Tak | https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Kanada Środkowa | Nie. | Tak | https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Środkowe stany USA | Nie. | Tak | https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Azja Wschodnia | Nie. | Tak | https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Wschodnie stany USA | Tak | Tak | https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Wschodnie stany USA 2 | Tak | Tak | https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Francja Środkowa | Nie. | Tak | https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Niemcy Środkowo-Zachodnie | Nie. | Tak | https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Indie Środkowe | Tak | Tak | https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Japonia Wschodnia | Tak | Tak | https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Japonia Zachodnia | Nie. | Tak | https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Indie Zachodnie (Jio) | Nie. | Tak | https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Korea Środkowa | Tak | Tak | https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Północno-środkowe stany USA | Nie. | Tak | https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Europa Północna | Tak | Tak | https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Norwegia Wschodnia | Nie. | Tak | https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Północna Republika Południowej Afryki | Nie. | Tak | https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
South Central US | Tak | Tak | https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Azja Południowo-Wschodnia | Tak | Tak | https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Szwajcaria Północna | Nie. | Tak | https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Szwajcaria Zachodnia | Nie. | Tak | https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Północne Zjednoczone Emiraty Arabskie | Nie. | Tak | https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Południowe Zjednoczone Królestwo | Tak | Tak | https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Zachodnio-środkowe stany USA | Nie. | Tak | https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Europa Zachodnia | Tak | Tak | https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Zachodnie stany USA | Tak | Tak | https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Zachodnie stany USA 2 | Tak | Tak | https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Zachodnie stany USA 3 | Nie. | Tak | https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Uwaga
Poprzednie regiony są dostępne na potrzeby hostowania modelu neuronowego głosu i syntezy w czasie rzeczywistym. Niestandardowe trenowanie neuronowego głosu jest dostępne tylko w niektórych regionach. Jednak użytkownicy mogą łatwo skopiować model neuronowego głosu z tych regionów do innych regionów na powyższej liście.
Long Audio API
Długi interfejs API audio jest dostępny w wielu regionach z unikatowymi punktami końcowymi:
Region (Region) | Punkt końcowy |
---|---|
Australia Wschodnia | https://australiaeast.customvoice.api.speech.microsoft.com |
Wschodnie stany USA | https://eastus.customvoice.api.speech.microsoft.com |
Indie Środkowe | https://centralindia.customvoice.api.speech.microsoft.com |
South Central US | https://southcentralus.customvoice.api.speech.microsoft.com |
Southeast Asia | https://southeastasia.customvoice.api.speech.microsoft.com |
Południowe Zjednoczone Królestwo | https://uksouth.customvoice.api.speech.microsoft.com |
West Europe | https://westeurope.customvoice.api.speech.microsoft.com |
Nagłówki żądań
Ta tabela zawiera listę wymaganych i opcjonalnych nagłówków dla żądań zamiany tekstu na mowę:
Nagłówek | opis | Wymagane lub opcjonalne |
---|---|---|
Authorization |
Token autoryzacji poprzedzony wyrazem Bearer . Aby uzyskać więcej informacji, zobacz Authentication (Uwierzytelnianie). |
Wymagania |
Content-Type |
Określa typ zawartości dla podanego tekstu. Zaakceptowana wartość: application/ssml+xml . |
Wymagania |
X-Microsoft-OutputFormat |
Określa format danych wyjściowych dźwięku. Aby uzyskać pełną listę akceptowanych wartości, zobacz Dane wyjściowe audio. | Wymagania |
User-Agent |
Nazwa aplikacji. Podana wartość musi być mniejsza niż 255 znaków. | Wymagania |
Treść żądania
Jeśli używasz niestandardowego neuronowego głosu, treść żądania może zostać wysłana jako zwykły tekst (ASCII lub UTF-8). W przeciwnym razie treść każdego POST
żądania jest wysyłana jako SSML. Język SSML umożliwia wybranie głosu i języka syntetyzowanej mowy zwracanej przez funkcję zamiany tekstu na mowę. Aby uzyskać pełną listę obsługiwanych głosów, zobacz Obsługa języka i głosu dla usługi Mowa.
Przykładowe żądanie
To żądanie HTTP używa języka SSML do określania głosu i języka. Jeśli długość ciała jest długa, a wynikowy dźwięk przekracza 10 minut, zostanie obcięty do 10 minut. Innymi słowy, długość dźwięku nie może przekroczyć 10 minut.
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>
* W przypadku wartości Content-Length należy użyć własnej długości zawartości. W większości przypadków ta wartość jest obliczana automatycznie.
Kody stanu HTTP
Kod stanu HTTP dla każdej odpowiedzi wskazuje powodzenie lub typowe błędy:
Kod stanu HTTP | opis | Możliwe przyczyny |
---|---|---|
200 | OK | Żądanie zakończyło się pomyślnie. Treść odpowiedzi jest plikiem audio. |
400 | Nieprawidłowe żądanie | Brak wymaganego parametru, pusty lub null. Lub wartość przekazana do wymaganego lub opcjonalnego parametru jest nieprawidłowa. Częstą przyczyną jest zbyt długi nagłówek. |
401 | Brak autoryzacji | Żądanie nie jest autoryzowane. Upewnij się, że klucz zasobu lub token usługi Mowa jest prawidłowy i w poprawnym regionie. |
415 | Nieobsługiwany typ nośnika | Możliwe, że podano nieprawidłową Content-Type wartość. Content-Type należy ustawić wartość application/ssml+xml . |
429 | Zbyt wiele żądań | Przekroczono limit przydziału lub szybkość żądań dozwolonych dla zasobu. |
502 | Zła brama | Wystąpił problem po stronie sieci lub serwera. Ten stan może również wskazywać na nieprawidłowe nagłówki. |
Jeśli stan HTTP to 200 OK
, treść odpowiedzi zawiera plik audio w żądanym formacie. Ten plik może być odtwarzany jako przesyłany, zapisywany w buforze lub zapisywany w pliku.
Dane wyjściowe audio
Obsługiwane formaty przesyłania strumieniowego i nieprzesyłania strumieniowego audio są wysyłane w każdym żądaniu X-Microsoft-OutputFormat
jako nagłówek. Każdy format zawiera szybkość bitów i typ kodowania. Usługa mowa obsługuje wyjścia audio 48-kHz, 24-kHz, 16-kHz i 8 kHz. Każdy wstępnie utworzony model neuronowego głosu jest dostępny na poziomie 24kHz i wysokiej wierności 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
Uwaga
W przypadku wybrania formatu wyjściowego 48kHz model głosu o wysokiej wierności z 48kHz zostanie odpowiednio wywołany. Częstotliwość próbkowania innych niż 24kHz i 48kHz można uzyskać za pośrednictwem upsampling lub downsampling podczas syntezy, na przykład 44,1kHz jest w dół z 48kHz.
Jeśli wybrany format głosu i wyjścia ma różne szybkości bitów, dźwięk jest ponownie próbkowany zgodnie z potrzebami. Format można zdekodować ogg-24khz-16bit-mono-opus
za pomocą kodera Opus.
Uwierzytelnianie
Każde żądanie wymaga nagłówka autoryzacji. W tej tabeli przedstawiono, które nagłówki są obsługiwane dla każdej funkcji:
Obsługiwany nagłówek autoryzacji | Zamiana mowy na tekst | Zamiana tekstu na mowę |
---|---|---|
Ocp-Apim-Subscription-Key |
Tak | Tak |
Authorization: Bearer |
Tak | Tak |
Jeśli używasz nagłówka Ocp-Apim-Subscription-Key
, musisz podać tylko klucz zasobu. Na przykład:
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
Gdy używasz nagłówka Authorization: Bearer
, musisz wysłać żądanie do punktu końcowego issueToken
. W tym żądaniu wymieniasz klucz zasobu dla tokenu dostępu ważnego przez 10 minut.
Jak uzyskać token dostępu
Aby uzyskać token dostępu, musisz wysłać żądanie do punktu końcowego issueToken
przy użyciu polecenia Ocp-Apim-Subscription-Key
i klucza zasobu.
Punkt issueToken
końcowy ma następujący format:
https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken
Zastąp <REGION_IDENTIFIER>
ciąg identyfikatorem zgodnym z regionem subskrypcji.
Użyj poniższych przykładów, aby utworzyć żądanie tokenu dostępu.
Przykład HTTP
W tym przykładzie jest proste żądanie HTTP w celu uzyskania tokenu. Zastąp YOUR_SUBSCRIPTION_KEY
ciąg kluczem zasobu dla usługi Mowa. Jeśli Twoja subskrypcja nie znajduje się w regionie Zachodnie stany USA, zastąp Host
nagłówek nazwą hosta twojego regionu.
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
Treść odpowiedzi zawiera token dostępu w formacie JSON Web Token (JWT).
Przykładowy skrypt programu PowerShell
W tym przykładzie jest prosty skrypt programu PowerShell umożliwiający uzyskanie tokenu dostępu. Zastąp YOUR_SUBSCRIPTION_KEY
ciąg kluczem zasobu dla usługi Mowa. Upewnij się, że używasz poprawnego punktu końcowego dla regionu zgodnego z subskrypcją. Ten przykład jest obecnie ustawiony na Zachodnie stany USA.
$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
Przykład cURL
cURL to narzędzie wiersza polecenia dostępne w systemie Linux (i w Podsystem Windows dla systemu Linux). To polecenie cURL ilustruje sposób uzyskiwania tokenu dostępu. Zastąp YOUR_SUBSCRIPTION_KEY
ciąg kluczem zasobu dla usługi Mowa. Upewnij się, że używasz poprawnego punktu końcowego dla regionu zgodnego z subskrypcją. Ten przykład jest obecnie ustawiony na Zachodnie stany USA.
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"
Przykład w języku C#
Ta klasa języka C# ilustruje sposób uzyskiwania tokenu dostępu. Przekaż klucz zasobu dla usługi Mowa podczas tworzenia wystąpienia klasy. Jeśli Twoja subskrypcja nie znajduje się w regionie Zachodnie stany USA, zmień wartość FetchTokenUri
na zgodną z regionem subskrypcji.
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();
}
}
}
Przykład języka 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://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)
Jak używać tokenu dostępu
Token dostępu powinien zostać wysłany do usługi jako Authorization: Bearer <TOKEN>
nagłówek. Każdy token dostępu jest ważny przez 10 minut. Nowy token można uzyskać w dowolnym momencie, ale aby zminimalizować ruch sieciowy i opóźnienie, zalecamy użycie tego samego tokenu przez dziewięć minut.
Oto przykładowe żądanie HTTP do interfejsu API REST zamiany mowy na tekst w celu uzyskania krótkiego dźwięku:
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...