Interfejs API REST zamiany mowy na tekst dla krótkiego dźwięku
Przypadki użycia interfejsu API REST zamiany mowy na tekst dla krótkiego dźwięku są ograniczone. Używaj go tylko w przypadkach, w których nie można używać zestawu SPEECH SDK.
Przed użyciem interfejsu API REST zamiany mowy na krótki dźwięk należy wziąć pod uwagę następujące ograniczenia:
- Żądania korzystające z interfejsu API REST dla krótkiego dźwięku i przesyłania dźwięku bezpośrednio mogą zawierać nie więcej niż 60 sekund dźwięku. Formaty audio wejściowego są bardziej ograniczone w porównaniu z zestawem SPEECH SDK.
- Interfejs API REST dla krótkiego dźwięku zwraca tylko końcowe wyniki. Nie zapewnia częściowych wyników.
- Tłumaczenie mowy nie jest obsługiwane za pośrednictwem interfejsu API REST w przypadku krótkiego dźwięku. Musisz użyć zestawu SPEECH SDK.
- Transkrypcja wsadowa i niestandardowa mowa nie są obsługiwane za pośrednictwem interfejsu API REST w przypadku krótkiego dźwięku. Zawsze należy używać interfejsu API REST rozpoznawania mowy do tłumaczenia tekstu na potrzeby transkrypcji wsadowej i niestandardowej mowy.
Przed użyciem interfejsu API REST zamiany mowy na krótki dźwięk 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).
Regiony i punkty końcowe
Punkt końcowy interfejsu API REST dla krótkiego dźwięku ma następujący format:
https://<REGION_IDENTIFIER>.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1
Zastąp <REGION_IDENTIFIER>
element identyfikatorem zgodnym z regionem zasobu usługi Mowa.
Uwaga
W przypadku platformy Azure Government i platformy Microsoft Azure obsługiwanych przez punkty końcowe 21Vianet zobacz ten artykuł dotyczący suwerennych chmur.
Formaty audio
Dźwięk jest wysyłany w treści żądania HTTP POST
. Musi być w jednym z formatów w tej tabeli:
Format | Koder-dekoder | Szybkość transmisji bitów | Częstotliwość próbkowania |
---|---|---|---|
WAV | PCM | 256 kb/s | 16 kHz, mono |
OGG | OPUS | 256 kb/s | 16 kHz, mono |
Uwaga
Powyższe formaty są obsługiwane za pośrednictwem interfejsu API REST dla krótkich plików audio i WebSocket w usłudze Mowa. Zestaw SPEECH SDK obsługuje format WAV z koderem koderowym PCM, a także innymi formatami.
Nagłówki żądań
Ta tabela zawiera listę wymaganych i opcjonalnych nagłówków dla żądań zamiany mowy na tekst:
Nagłówek | opis | Wymagane lub opcjonalne |
---|---|---|
Ocp-Apim-Subscription-Key |
Klucz zasobu dla 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. |
Pronunciation-Assessment |
Określa parametry wyświetlania wyników wymowy w wynikach rozpoznawania. Wyniki te oceniają jakość wymowy danych wejściowych mowy, ze wskaźnikami takimi jak dokładność, płynność i kompletność. Ten parametr jest kodem JSON zakodowanym w formacie Base64, który zawiera wiele szczegółowych parametrów. Aby dowiedzieć się, jak utworzyć ten nagłówek, zobacz Parametry oceny wymowy. |
Opcjonalnie |
Content-type |
Opisuje format i koder koderowy dostarczonych danych dźwiękowych. Akceptowane wartości to audio/wav; codecs=audio/pcm; samplerate=16000 i audio/ogg; codecs=opus . |
Wymagania |
Transfer-Encoding |
Określa, że fragmentowane dane audio są wysyłane, a nie pojedynczy plik. Użyj tego nagłówka tylko wtedy, gdy fragmentujesz dane audio. | Opcjonalnie |
Expect |
Jeśli używasz fragmentowanego transferu, wyślij polecenie Expect: 100-continue . Usługa mowa potwierdza początkowe żądanie i oczekuje na więcej danych. |
Wymagane w przypadku wysyłania fragmentowanych danych dźwiękowych. |
Accept |
W przypadku podania musi to być application/json . Usługa mowa udostępnia wyniki w formacie JSON. Niektóre struktury żądań zapewniają niezgodną wartość domyślną. Dobrym rozwiązaniem jest zawsze uwzględnienie Accept funkcji . |
Opcjonalne, ale zalecane. |
Parametry zapytań
Te parametry mogą być uwzględniane w ciągu zapytania żądania REST.
Uwaga
Aby uniknąć odbierania błędu HTTP 4xx, należy dołączyć parametr języka do adresu URL. Na przykład język ustawiony na angielski usa za pośrednictwem punktu końcowego Zachodnie stany USA to: https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US
.
Parametr | Opis | Wymagane lub opcjonalne |
---|---|---|
language |
Identyfikuje rozpoznawany język mówiony. Zobacz Obsługiwane języki. | Wymagania |
format |
Określa format wyniku. Akceptowane wartości to simple i detailed . Proste wyniki obejmują RecognitionStatus , , Offset DisplayText i Duration . Szczegółowe odpowiedzi obejmują cztery różne reprezentacje tekstu wyświetlanego. Ustawienie domyślne to simple . |
Opcjonalnie |
profanity |
Określa sposób obsługi wulgaryzmów w wynikach rozpoznawania. Akceptowane wartości to: masked , który zastępuje wulgaryzmy gwiazdkami. removed , który usuwa wszystkie wulgaryzmy z wyniku. raw , który zawiera wulgaryzmy w wyniku. Ustawienie domyślne to masked . |
Opcjonalnie |
cid |
Gdy używasz programu Speech Studio do tworzenia modeli niestandardowych, możesz skorzystać z wartości identyfikatora punktu końcowego na stronie Wdrażanie. Użyj wartości Identyfikator punktu końcowego jako argumentu do parametru cid ciągu zapytania. |
Opcjonalnie |
Parametry oceny wymowy
W tej tabeli wymieniono wymagane i opcjonalne parametry oceny wymowy:
Parametr | Opis | Wymagane lub opcjonalne |
---|---|---|
ReferenceText |
Tekst, względem którego jest obliczana wymowa. | Wymagania |
GradingSystem |
System punktów do kalibracji wyników. System FivePoint daje wynik zmiennoprzecinkowy 0–5 i HundredMark daje wynik zmiennoprzecinkowy 0–100. Wartość domyślna: FivePoint . |
Opcjonalnie |
Granularity |
Stopień szczegółowości oceny. Akceptowane wartości to:Phoneme , który pokazuje wynik na poziomach pełnotekstowych, słów i phoneme.Word , który pokazuje wynik na poziomach pełnotekstowych i wyrazów. FullText , który pokazuje wynik tylko na poziomie pełnotekstowym.Ustawienie domyślne to Phoneme . |
Opcjonalnie |
Dimension |
Definiuje kryteria wyjściowe. Akceptowane wartości to:Basic , który pokazuje tylko ocenę dokładności. Comprehensive , który pokazuje wyniki dla większej liczby wymiarów (na przykład wynik płynności i wynik kompletności na poziomie pełnotekstowym oraz typ błędu na poziomie wyrazu).Aby wyświetlić definicje różnych wymiarów wyników i typów błędów słów, zobacz Właściwości odpowiedzi. Ustawienie domyślne to Basic . |
Opcjonalnie |
EnableMiscue |
Włącza błędne obliczanie. Po włączeniu tego parametru wyrazy wymawiane są porównywane z tekstem odwołania. Są one oznaczone pominięciem lub wstawieniem na podstawie porównania. Akceptowane wartości to False i True . Ustawienie domyślne to False . |
Opcjonalnie |
ScenarioId |
Identyfikator GUID wskazujący dostosowany system punktów. | Opcjonalnie |
Oto przykładowy kod JSON zawierający parametry oceny wymowy:
{
"ReferenceText": "Good morning.",
"GradingSystem": "HundredMark",
"Granularity": "FullText",
"Dimension": "Comprehensive"
}
Poniższy przykładowy kod pokazuje, jak skompilować parametry oceny wymowy w nagłówku Pronunciation-Assessment
:
var pronAssessmentParamsJson = $"{{\"ReferenceText\":\"Good morning.\",\"GradingSystem\":\"HundredMark\",\"Granularity\":\"FullText\",\"Dimension\":\"Comprehensive\"}}";
var pronAssessmentParamsBytes = Encoding.UTF8.GetBytes(pronAssessmentParamsJson);
var pronAssessmentHeader = Convert.ToBase64String(pronAssessmentParamsBytes);
Zdecydowanie zalecamy przesyłanie strumieniowe (transfer fragmentowany) podczas publikowania danych audio, co może znacznie zmniejszyć opóźnienie. Aby dowiedzieć się, jak włączyć przesyłanie strumieniowe, zobacz przykładowy kod w różnych językach programowania.
Uwaga
Aby uzyskać więcej informacji, zobacz ocena wymowy.
Przykładowe żądanie
Poniższy przykład zawiera nazwę hosta i wymagane nagłówki. Należy pamiętać, że usługa oczekuje również danych dźwiękowych, które nie są uwzględnione w tym przykładzie. Jak wspomniano wcześniej, fragmentowanie jest zalecane, ale nie jest wymagane.
POST speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed HTTP/1.1
Accept: application/json;text/xml
Content-Type: audio/wav; codecs=audio/pcm; samplerate=16000
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
Host: westus.stt.speech.microsoft.com
Transfer-Encoding: chunked
Expect: 100-continue
Aby włączyć ocenę wymowy, możesz dodać następujący nagłówek. Aby dowiedzieć się, jak utworzyć ten nagłówek, zobacz Parametry oceny wymowy.
Pronunciation-Assessment: eyJSZWZlcm...
Kody stanu HTTP
Kod stanu HTTP dla każdej odpowiedzi wskazuje powodzenie lub typowe błędy.
Kod stanu HTTP | opis | Możliwe przyczyny |
---|---|---|
100 | Kontynuuj | Początkowe żądanie jest akceptowane. Kontynuuj wysyłanie pozostałych danych. (Ten kod jest używany z transferem fragmentów). |
200 | OK | Żądanie zakończyło się pomyślnie. Treść odpowiedzi jest obiektem JSON. |
400 | Nieprawidłowe żądanie | Nie podano kodu językowego, język nie jest obsługiwany lub plik dźwiękowy jest nieprawidłowy (na przykład). |
401 | Brak autoryzacji | Klucz zasobu lub token autoryzacji jest nieprawidłowy w określonym regionie lub punkt końcowy jest nieprawidłowy. |
403 | Dostęp zabroniony | Brak klucza zasobu lub tokenu autoryzacji. |
Przykładowe odpowiedzi
Oto typowa odpowiedź na potrzeby simple
rozpoznawania:
{
"RecognitionStatus": "Success",
"DisplayText": "Remind me to buy 5 pencils.",
"Offset": "1236645672289",
"Duration": "1236645672289"
}
Oto typowa odpowiedź na potrzeby detailed
rozpoznawania:
{
"RecognitionStatus": "Success",
"Offset": "1236645672289",
"Duration": "1236645672289",
"NBest": [
{
"Confidence": 0.9052885,
"Display": "What's the weather like?",
"ITN": "what's the weather like",
"Lexical": "what's the weather like",
"MaskedITN": "what's the weather like"
},
{
"Confidence": 0.92459863,
"Display": "what is the weather like",
"ITN": "what is the weather like",
"Lexical": "what is the weather like",
"MaskedITN": "what is the weather like"
}
]
}
Oto typowa odpowiedź na uznanie za pomocą oceny wymowy:
{
"RecognitionStatus": "Success",
"Offset": "400000",
"Duration": "11000000",
"NBest": [
{
"Confidence" : "0.87",
"Lexical" : "good morning",
"ITN" : "good morning",
"MaskedITN" : "good morning",
"Display" : "Good morning.",
"PronScore" : 84.4,
"AccuracyScore" : 100.0,
"FluencyScore" : 74.0,
"CompletenessScore" : 100.0,
"Words": [
{
"Word" : "Good",
"AccuracyScore" : 100.0,
"ErrorType" : "None",
"Offset" : 500000,
"Duration" : 2700000
},
{
"Word" : "morning",
"AccuracyScore" : 100.0,
"ErrorType" : "None",
"Offset" : 5300000,
"Duration" : 900000
}
]
}
]
}
Właściwości odpowiedzi
Wyniki są udostępniane jako dane JSON. Format simple
zawiera następujące pola najwyższego poziomu:
Właściwości | opis |
---|---|
RecognitionStatus |
Stan, taki jak Success pomyślne rozpoznawanie. Zobacz następną tabelę. |
DisplayText |
Rozpoznany tekst po wielkich literach, interpunkcja, odwrotna normalizacja tekstu i maskowanie wulgaryzmów. Prezentuj tylko na sukces. Odwrotna normalizacja tekstu to konwersja tekstu mówionego na krótsze formy, takie jak 200 dla "dwustu" lub "Dr Smith" dla "lekarza smitha". |
Offset |
Czas (w 100-nanosekundowych jednostkach), w którym rozpoznana mowa rozpoczyna się w strumieniu audio. |
Duration |
Czas trwania (w 100-nanosekundowych jednostkach) rozpoznanej mowy w strumieniu audio. |
Pole RecognitionStatus
może zawierać następujące wartości:
Stan | opis |
---|---|
Success |
Rozpoznawanie zakończyło się pomyślnie, a DisplayText pole jest obecne. |
NoMatch |
W strumieniu audio wykryto mowę, ale nie zostały dopasowane żadne słowa z języka docelowego. Ten stan zwykle oznacza, że język rozpoznawania różni się od języka, w jakim mówi użytkownik. |
InitialSilenceTimeout |
Początek strumienia audio zawierał tylko milczenie, a usługa upłynął limit czasu podczas oczekiwania na mowę. |
BabbleTimeout |
Początek strumienia audio zawierał tylko szum, a usługa upłynął limit czasu podczas oczekiwania na mowę. |
Error |
Usługa rozpoznawania napotkała błąd wewnętrzny i nie mogła kontynuować. Spróbuj ponownie, jeśli to możliwe. |
Uwaga
Jeśli dźwięk składa się tylko z wulgaryzmów, a profanity
parametr zapytania jest ustawiony na remove
wartość , usługa nie zwraca wyniku mowy.
Format detailed
zawiera więcej form rozpoznanych wyników.
Jeśli używasz detailed
formatu, DisplayText
zostanie podany dla Display
każdego wyniku na NBest
liście.
Obiekt na NBest
liście może zawierać następujące elementy:
Właściwości | opis |
---|---|
Confidence |
Współczynnik ufności wpisu z zakresu od 0,0 (bez pewności) do 1,0 (pełna pewność). |
Lexical |
Forma leksykalna rozpoznanego tekstu: rozpoznane rzeczywiste wyrazy. |
ITN |
Odwrotnie znormalizowany tekst (ITN) lub kanoniczna forma rozpoznanego tekstu, z numerami telefonów, cyframi, skrótami ("lekarz smith" do "dr smith") i innymi zastosowanymi przekształceniami. |
MaskedITN |
Jeśli jest to wymagane, formularz ITN z maskowaniem wulgaryzmów. |
Display |
Formularz wyświetlania rozpoznanego tekstu z dodanymi znakami interpunkcyjnymi i wielkich liter. Ten parametr jest taki sam jak parametr, który DisplayText zapewnia, gdy format jest ustawiony na simple wartość . |
AccuracyScore |
Dokładność wymowy mowy. Dokładność wskazuje, jak blisko fonezy pasują do wymowy osoby mówiącej natywnej. Wynik dokładności na poziomie słowa i pełnotekstu jest agregowany z wyniku dokładności na poziomie phoneme. |
FluencyScore |
Płynność podanej mowy. Płynność wskazuje, jak ściśle mowa pasuje do użycia przez osoby mówiące w trybie dyskretnym przerw między wyrazami. |
CompletenessScore |
Kompletność mowy określona przez obliczenie współczynnika wymawianych wyrazów w celu odwołowania się do wprowadzania tekstu. |
PronScore |
Ogólny wynik wskazujący jakość wymowy podanej mowy. Ten wynik jest agregowany z AccuracyScore wartości , FluencyScore i CompletenessScore z wagą. |
ErrorType |
Wartość wskazująca, czy wyraz zostanie pominięty, wstawiony lub źle wymawiany w porównaniu do ReferenceText . Możliwe wartości to None (czyli brak błędu w tym słowie), Omission , Insertion i Mispronunciation . |
Transfer fragmentowany
Fragmentowany transfer (Transfer-Encoding: chunked
) może pomóc zmniejszyć opóźnienie rozpoznawania. Umożliwia usłudze rozpoznawania mowy rozpoczęcie przetwarzania pliku audio podczas przesyłania. Interfejs API REST dla krótkiego dźwięku nie zapewnia wyników częściowych ani tymczasowych.
Poniższy przykładowy kod pokazuje, jak wysyłać dźwięk we fragmentach. Tylko pierwszy fragment powinien zawierać nagłówek pliku audio. request
HttpWebRequest
to obiekt połączony z odpowiednim punktem końcowym REST. audioFile
to ścieżka do pliku audio na dysku.
var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.SendChunked = true;
request.Accept = @"application/json;text/xml";
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.Host = host;
request.ContentType = @"audio/wav; codecs=audio/pcm; samplerate=16000";
request.Headers["Ocp-Apim-Subscription-Key"] = "YOUR_RESOURCE_KEY";
request.AllowWriteStreamBuffering = false;
using (var fs = new FileStream(audioFile, FileMode.Open, FileAccess.Read))
{
// Open a request stream and write 1,024-byte chunks in the stream one at a time.
byte[] buffer = null;
int bytesRead = 0;
using (var requestStream = request.GetRequestStream())
{
// Read 1,024 raw bytes from the input audio file.
buffer = new Byte[checked((uint)Math.Min(1024, (int)fs.Length))];
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}
requestStream.Flush();
}
}
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 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.