Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 interfejsu API 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ę w zależności od standardowych głosów i niestandardowych głosów. Aby uzyskać więcej informacji, zobacz cennik zamiany tekstu na mowę.
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.
Standardowe głosy
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 |
Centralna część USA | https://centralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Azja Wschodnia | https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
Wschodnie USA | 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 |
Południowo-centralna część USA | https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Azja Południowo-Wschodnia | 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 |
Rząd Stanów Zjednoczonych w Arizonie | 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 |
Zachodnia Europa | 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 głosy
Jeżeli utworzyłeś niestandardowy głos, użyj punktu dostępowego, który utworzyłeś. Możesz również użyć następujących punktów końcowych. Zastąp {deploymentId}
swoim identyfikatorem wdrożeniowym dla niestandardowego modelu 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} |
Centralna część 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 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} |
Południowo-centralna część USA | 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} |
Zachodnia Europa | 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
Dostępne są następujące regiony do hostowania standardowych modeli głosu i syntezy w czasie rzeczywistym. Niestandardowe szkolenie głosu jest dostępne tylko w niektórych regionach. Można jednak łatwo skopiować niestandardowy model głosu z tych regionów do innych regionów na powyższej liście.
API długiego audio
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 USA | https://eastus.customvoice.api.speech.microsoft.com |
Indie Środkowe | https://centralindia.customvoice.api.speech.microsoft.com |
Południowo-centralna część USA | https://southcentralus.customvoice.api.speech.microsoft.com |
Azja Południowo-Wschodnia | https://southeastasia.customvoice.api.speech.microsoft.com |
Południowe Zjednoczone Królestwo | https://uksouth.customvoice.api.speech.microsoft.com |
Zachodnia Europa | 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 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. |
503 | Usługa niedostępna | Istnieje problem po stronie serwera z różnych powodów. |
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 standardowy model głosu jest dostępny w 24kHz i wysokiej jakoś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
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
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': 'YourSpeechResourceKey'
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>
element identyfikatorem zgodnym z regionem zasobu usługi Mowa.
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 YourSpeechResourceKey
ciąg kluczem zasobu dla usługi Mowa. Jeśli zasób usługi Mowa nie znajduje się w regionie Zachodnich Stanów Zjednoczonych, zastąp nagłówek Host
nazwą hosta regionu.
POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YourSpeechResourceKey
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 YourSpeechResourceKey
ciąg kluczem zasobu dla usługi Mowa. Upewnij się, że używasz poprawnego punktu końcowego dla regionu zgodnego z zasobem usługi Mowa. 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' = 'YourSpeechResourceKey'
}
$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 YourSpeechResourceKey
ciąg kluczem zasobu dla usługi Mowa. Upewnij się, że używasz poprawnego punktu końcowego dla regionu zgodnego z zasobem usługi Mowa. 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: YourSpeechResourceKey"
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 zasób usługi Mowa nie znajduje się w regionie Zachodnie USA, zmień wartość FetchTokenUri
na zgodną z regionem tego zasobu.
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 AI Foundry dla mowy
- Konfigurowanie zasobu usługi Mowa na potrzeby uwierzytelniania entra firmy Microsoft
- Uzyskiwanie tokenu dostępu 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.