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) | Szkolenia | 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} |
Southeast Asia | 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} |
West Europe | 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 |
W przypadku korzystania z nagłówka Ocp-Apim-Subscription-Key
należy 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.
Inną opcją jest użycie uwierzytelniania Entra firmy Microsoft, które również używa nagłówka Authorization: Bearer
, ale z tokenem wystawionym za pośrednictwem identyfikatora Entra firmy Microsoft. Zobacz Use Microsoft Entra authentication (Korzystanie z uwierzytelniania entra firmy Microsoft).
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...
Korzystanie z uwierzytelniania Microsoft Entra
Aby używać uwierzytelniania firmy Microsoft Entra z interfejsem API REST rozpoznawania mowy do tekstu w celu uzyskania krótkiego dźwięku, musisz utworzyć token dostępu. Kroki uzyskiwania tokenu dostępu składającego się z identyfikatora zasobu i tokenu dostępu firmy Microsoft Entra są takie same jak w przypadku korzystania z zestawu Speech SDK. Wykonaj kroki opisane tutaj : Korzystanie z uwierzytelniania microsoft Entra
- Tworzenie zasobu usługi Mowa
- Konfigurowanie zasobu usługi Mowa na potrzeby uwierzytelniania entra firmy Microsoft
- Uzyskiwanie tokenu dostępu firmy Microsoft Entra
- Pobieranie identyfikatora zasobu usługi Mowa
Po uzyskaniu identyfikatora zasobu i tokenu dostępu firmy Microsoft Entra można utworzyć rzeczywisty token dostępu w następującym formacie:
aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN
Należy uwzględnić prefiks "aad#" i separator "#" (skrót) między identyfikatorem zasobu a tokenem dostępu.
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...
Aby dowiedzieć się więcej na temat tokenów dostępu firmy Microsoft, w tym okresu istnienia tokenu, odwiedź stronę Tokeny dostępu w Platforma tożsamości Microsoft.