文字轉換語音 REST API
語音服務可讓您 使用 REST API 將文字轉換成合成語音 ,並 取得區域支援的語音 清單。 在本文中,您將瞭解授權選項、查詢選項、如何建構要求,以及如何解譯回應。
語音轉換 REST API 支援許多地區設定中的類神經文字到語音語音。 每個可用的端點都會與區域相關聯。 您需要您打算使用的端點或區域的語音資源金鑰。 以下是詳細資訊的連結:
- 如需語音的完整清單,請參閱 語音服務的語言和語音支援。
- 如需區域可用性的相關信息,請參閱 語音服務支援的區域。
- 如需 Azure Government 以及由 21Vianet 營運的 Microsoft Azure 端點相關資訊,請參閱關於主權雲端的文章。
重要
預先建置的神經語音(定價頁面上稱為 類 神經)和自定義神經語音的成本有所不同(在定價頁面上稱為 自定義神經 )。 如需詳細資訊,請參閱語音服務價格。
使用文字轉換語音 REST API 之前,請先了解您必須在驗證過程中完成權杖交換,才能存取服務。 如需詳細資訊,請參閱驗證。
取得語音清單
您可以使用 tts.speech.microsoft.com/cognitiveservices/voices/list
端點來取得特定區域或端點的完整語音清單。 在語音清單端點前面加上區域,以取得該區域的語音清單。 例如,若要取得區域的語音 westus
清單,請使用 https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
端點。 如需所有支援區域的清單,請參閱 區域 檔。
注意
預覽 中的語音和樣式僅適用於三個服務區域:美國東部、西歐和東南亞。
要求標頭
下表列出了文字轉換語音要求的必要標頭和選用標頭:
標頭 | 描述 | 必要或選用 |
---|---|---|
Ocp-Apim-Subscription-Key |
您的語音資源金鑰。 | 此標頭或 Authorization 為必要專案。 |
Authorization |
授權令牌前面加上 一個字 Bearer 。 如需詳細資訊,請參閱驗證。 |
此標頭或 Ocp-Apim-Subscription-Key 為必要專案。 |
要求本文
此端點的要求不需要 GET
本文。
範例要求
此要求只需要授權標頭:
GET /cognitiveservices/voices/list HTTP/1.1
Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
以下是 curl 命令範例:
curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'
範例回覆
您應該會收到 JSON 主體的回應,其中包含所有支援的地區設定、語音、性別、樣式和其他詳細數據。 每個語音的 WordsPerMinute
屬性都可以用來估計輸出語音的長度。 此 JSON 範例會顯示部分結果,以說明回應的結構:
[
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
"DisplayName": "Jenny",
"LocalName": "Jenny",
"ShortName": "en-US-JennyNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"StyleList": [
"assistant",
"chat",
"customerservice",
"newscast",
"angry",
"cheerful",
"sad",
"excited",
"friendly",
"terrified",
"shouting",
"unfriendly",
"whispering",
"hopeful"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"ExtendedPropertyMap": {
"IsHighQuality48K": "True"
},
"WordsPerMinute": "152"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
"DisplayName": "Jenny Multilingual",
"LocalName": "Jenny Multilingual",
"ShortName": "en-US-JennyMultilingualNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"SecondaryLocaleList": [
"de-DE",
"en-AU",
"en-CA",
"en-GB",
"es-ES",
"es-MX",
"fr-CA",
"fr-FR",
"it-IT",
"ja-JP",
"ko-KR",
"pt-BR",
"zh-CN"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "190"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
"DisplayName": "Orla",
"LocalName": "Orla",
"ShortName": "ga-IE-OrlaNeural",
"Gender": "Female",
"Locale": "ga-IE",
"LocaleName": "Irish (Ireland)",
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "139"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
"DisplayName": "Yunxi",
"LocalName": "云希",
"ShortName": "zh-CN-YunxiNeural",
"Gender": "Male",
"Locale": "zh-CN",
"LocaleName": "Chinese (Mandarin, Simplified)",
"StyleList": [
"narration-relaxed",
"embarrassed",
"fearful",
"cheerful",
"disgruntled",
"serious",
"angry",
"sad",
"depressed",
"chat",
"assistant",
"newscast"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"RolePlayList": [
"Narrator",
"YoungAdultMale",
"Boy"
],
"WordsPerMinute": "293"
},
// Redacted for brevity
]
HTTP 狀態碼
每個回應的 HTTP 狀態碼會指出成功或常見的錯誤。
HTTP 狀態碼 | 描述 | 可能的原因 |
---|---|---|
200 | 確定 | 要求成功。 |
400 | 錯誤要求 | 必要的參數遺失、為空白或 Null。 或者,傳遞至必要或選用參數的值無效。 常見的原因是標頭太長。 |
401 | 未經授權 | 要求未獲授權。 請確定您的資源金鑰或令牌有效,且位於正確的區域中。 |
429 | 太多要求 | 您已超過資源允許的要求配額或速率。 |
502 | 閘道不正確 | 發生網路或伺服器端問題。 此狀態可能也會指出無效的標頭。 |
將文字轉換成語音
端點 cognitiveservices/v1
可讓您使用 語音合成標記語言 (SSML) 將文字轉換成語音。
區域與端點
以下區域支援透過 REST API 使用文字轉換語音功能。 請務必選取符合語音資源區域的端點。
預建神經語音
使用此資料表依區域或端點判斷 神經語音 的可用性:
區域 | 端點 |
---|---|
澳大利亞東部 | https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1 |
巴西南部 | https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1 |
加拿大中部 | https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
美國中部 | https://centralus.tts.speech.microsoft.com/cognitiveservices/v1 |
東亞 | https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
美國東部 | https://eastus.tts.speech.microsoft.com/cognitiveservices/v1 |
美國東部 2 | https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1 |
法國中部 | https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1 |
德國中西部 | https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1 |
印度中部 | https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1 |
日本東部 | https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1 |
日本西部 | https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Jio 印度西部 | https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1 |
南韓中部 | https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
美國中北部 | https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
北歐 | https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
挪威東部 | https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1 |
美國中南部 | https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
東南亞 | https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
瑞典中部 | https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1 |
瑞士北部 | https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1 |
瑞士西部 | https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1 |
阿拉伯聯合大公國北部 | https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1 |
US Gov 亞利桑那州 | https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1 |
US Gov 維吉尼亞州 | https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1 |
英國南部 | https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1 |
美國中西部 | https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
西歐 | https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
美國西部 | https://westus.tts.speech.microsoft.com/cognitiveservices/v1 |
美國西部 2 | https://westus2.tts.speech.microsoft.com/cognitiveservices/v1 |
美國西部 3 | https://westus3.tts.speech.microsoft.com/cognitiveservices/v1 |
提示
預覽 中的語音僅適用於這三個區域:美國東部、西歐和東南亞。
自定義神經語音
如果您已建立自定義神經語音字型,請使用您已建立的端點。 您也可以使用下列端點。 將取代 {deploymentId}
為類神經語音模型的部署標識碼。
區域 | 訓練 | 部署 | 端點 |
---|---|---|---|
澳大利亞東部 | 是 | 是 | https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
巴西南部 | No | Yes | https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
加拿大中部 | No | Yes | https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國中部 | No | Yes | https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
東亞 | No | Yes | https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國東部 | 是 | 是 | https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國東部 2 | 是 | 是 | https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
法國中部 | No | Yes | https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
德國中西部 | No | Yes | https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
印度中部 | Yes | Yes | https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
日本東部 | 是 | 是 | https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
日本西部 | No | Yes | https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Jio 印度西部 | No | Yes | https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
南韓中部 | Yes | Yes | https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國中北部 | No | Yes | https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
北歐 | 是 | 是 | https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
挪威東部 | No | Yes | https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
南非北部 | No | Yes | https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國中南部 | 是 | 是 | https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
東南亞 | 是 | 是 | https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
瑞士北部 | No | Yes | https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
瑞士西部 | No | Yes | https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
阿拉伯聯合大公國北部 | No | Yes | https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
英國南部 | 是 | 是 | https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國中西部 | No | Yes | https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
西歐 | 是 | Yes | https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國西部 | 是 | 是 | https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國西部 2 | 是 | 是 | https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
美國西部 3 | No | .是 | https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
注意
上述區域適用於神經語音模型裝載和即時合成。 自定義神經語音定型僅適用於某些區域。 但使用者可以輕鬆地從這些區域將神經語音模型複製到上述清單中的其他區域。
長音訊 API
長音訊 API 可在具有唯一端點的多個區域中使用:
區域 | 端點 |
---|---|
澳大利亞東部 | https://australiaeast.customvoice.api.speech.microsoft.com |
美國東部 | https://eastus.customvoice.api.speech.microsoft.com |
印度中部 | https://centralindia.customvoice.api.speech.microsoft.com |
美國中南部 | https://southcentralus.customvoice.api.speech.microsoft.com |
東南亞 | https://southeastasia.customvoice.api.speech.microsoft.com |
英國南部 | https://uksouth.customvoice.api.speech.microsoft.com |
西歐 | https://westeurope.customvoice.api.speech.microsoft.com |
要求標頭
下表列出了文字轉換語音要求的必要標頭和選用標頭:
標頭 | 描述 | 必要或選用 |
---|---|---|
Authorization |
授權令牌前面加上 一個字 Bearer 。 如需詳細資訊,請參閱驗證。 |
必要 |
Content-Type |
指定所提供文字的內容類型。 接受的值: application/ssml+xml 。 |
必要 |
X-Microsoft-OutputFormat |
指定音訊輸出格式。 如需已接受值的完整清單,請參閱 音訊輸出。 | 必要 |
User-Agent |
應用程式的名稱。 提供的值必須少於 255 個字元。 | 必要 |
要求本文
如果您使用自定義神經語音,則要求主體可以傳送為純文本(ASCII 或 UTF-8)。 否則,每個POST
要求的主體都會以 SSML 的形式傳送。 SSML 可讓您選擇文字轉換語音功能傳回的合成語音所使用的語音和語言。 如需支持語音的完整清單,請參閱 語音服務的語言和語音支援。
範例要求
此 HTTP 要求會使用 SSML 來指定語音和語言。 如果本文長度很長,且產生的音訊超過 10 分鐘,則會截斷為 10 分鐘。 換句話說,音訊長度不能超過10分鐘。
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>
* 針對 Content-Length,您應該使用自己的內容長度。 在大部分情況下,此值會自動計算。
HTTP 狀態碼
每個回應的 HTTP 狀態代碼表示成功或常見錯誤:
HTTP 狀態碼 | 描述 | 可能的原因 |
---|---|---|
200 | 確定 | 要求成功。 回應本文是音訊檔案。 |
400 | 錯誤要求 | 必要的參數遺失、為空白或 Null。 或者,傳遞至必要或選用參數的值無效。 常見的原因是標頭太長。 |
401 | 未經授權 | 要求未獲授權。 請確定您的語音資源金鑰或令牌有效,且位於正確的區域中。 |
415 | 不支援的媒體類型 | 有可能提供錯誤的 Content-Type 值。 Content-Type 應該設定為 application/ssml+xml 。 |
429 | 太多要求 | 您已超過資源允許的要求配額或速率。 |
502 | 閘道不正確 | 發生網路或伺服器端問題。 此狀態可能也會指出無效的標頭。 |
503 | 服務無法使用 | 伺服器端有各種原因的問題。 |
如果 HTTP 狀態為 200 OK
,響應主體會包含要求格式的音訊檔案。 此檔案可在傳輸、儲存至緩衝區或儲存至檔案時播放。
音訊輸出
支援的串流和非串流音訊格式會以標頭的形式在每個要求 X-Microsoft-OutputFormat
中傳送。 每個格式都包含比特率和編碼類型。 語音服務支援 48-kHz、24-kHz、16-kHz 和 8-kHz 音訊輸出。 每個預先建置的神經語音模型都可透過 24kHz 和高逼真度 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
注意
如果您選取 48kHz 輸出格式,則會據以叫用具有 48kHz 的高逼真度語音模型。 合成時,除了 24kHz 和 48kHz 以外的取樣速率,可以透過向上取樣或向下取樣來取得,例如,44.1kHz 會從 48kHz 向下取樣。
如果您選取的語音和輸出格式有不同的比特率,則會視需要重新取樣音訊。 您可以使用 Opus 編解碼器來譯碼ogg-24khz-16bit-mono-opus
格式。
驗證
每個要求都需要授權標頭。 下表說明每個功能支援哪些標頭:
支援的授權標頭 | 語音轉換文字 | 文字轉換語音 |
---|---|---|
Ocp-Apim-Subscription-Key |
Yes | .是 |
Authorization: Bearer |
.是 | Yes |
當您使用 Ocp-Apim-Subscription-Key
標頭時,必須只提供您的資源密鑰。 例如:
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
當您使用 Authorization: Bearer
標頭時,您必須對 issueToken
端點提出要求。 在此要求中,您會將資源密鑰交換為有效 10 分鐘的存取令牌。
另一個選項是使用Microsoft Entra 驗證,該驗證也會使用 Authorization: Bearer
標頭,但具有透過 Microsoft Entra ID 簽發的令牌。 請參閱 使用Microsoft Entra 驗證。
如何取得存取權杖
若要取得存取令牌,您必須使用 Ocp-Apim-Subscription-Key
和您的資源密鑰向issueToken
端點提出要求。
端點 issueToken
具有下列格式:
https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken
以符合您訂用帳戶區域的識別碼取代 <REGION_IDENTIFIER>
。
使用下列範例來建立您的存取令牌要求。
HTTP 範例
此範例是取得令牌的簡單 HTTP 要求。 將取代 YOUR_SUBSCRIPTION_KEY
為語音服務的資源金鑰。 如果您的訂用帳戶不在美國西部區域,請將標頭取代 Host
為您區域的主機名。
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
響應主體包含 JSON Web 令牌 (JWT) 格式的存取令牌。
PowerShell 範例
此範例是取得存取令牌的簡單 PowerShell 腳本。 將取代 YOUR_SUBSCRIPTION_KEY
為語音服務的資源金鑰。 請務必針對符合您訂用帳戶的區域使用正確的端點。 此範例目前設定為美國西部。
$FetchTokenHeader = @{
'Content-type'='application/x-www-form-urlencoded';
'Content-Length'= '0';
'Ocp-Apim-Subscription-Key' = 'YOUR_SUBSCRIPTION_KEY'
}
$OAuthToken = Invoke-RestMethod -Method POST -Uri https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken
-Headers $FetchTokenHeader
# show the token received
$OAuthToken
cURL 範例
cURL 是 Linux 中可用的命令行工具(以及 Windows 子系統 Linux 版)。 這個 cURL 命令說明如何取得存取令牌。 將取代 YOUR_SUBSCRIPTION_KEY
為語音服務的資源金鑰。 請務必針對符合您訂用帳戶的區域使用正確的端點。 此範例目前設定為美國西部。
curl -v -X POST \
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Content-Length: 0" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
C# 範例
這個 C# 類別說明如何取得存取令牌。 當您具現化 類別時,傳遞語音服務的資源密鑰。 如果您的訂用帳戶不在美國西部區域,請變更 的值 FetchTokenUri
以符合您訂用帳戶的區域。
public class Authentication
{
public static readonly string FetchTokenUri =
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
private string subscriptionKey;
private string token;
public Authentication(string subscriptionKey)
{
this.subscriptionKey = subscriptionKey;
this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
}
public string GetAccessToken()
{
return this.token;
}
private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
UriBuilder uriBuilder = new UriBuilder(fetchUri);
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
return await result.Content.ReadAsStringAsync();
}
}
}
Python 範例
# 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)
如何使用存取令牌
存取令牌應該以標頭的形式 Authorization: Bearer <TOKEN>
傳送至服務。 每個存取令牌的有效期限為10分鐘。 您可以隨時取得新的令牌,但若要將網路流量和延遲降到最低,我們建議在 9 分鐘內使用相同的令牌。
以下是簡短音訊的語音轉換文字 REST API 範例 HTTP 要求:
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...
使用 Microsoft Entra 驗證
若要使用 Microsoft Entra 驗證搭配語音轉換文字 REST API 進行簡短音訊,您必須建立存取令牌。 取得由資源標識碼和Microsoft Entra 存取令牌所組成的存取令牌的步驟,與使用語音 SDK 時的步驟相同。 請遵循這裡的 步驟使用 Microsoft Entra 驗證
- 建立語音資源
- 設定 Microsoft Entra 驗證的語音資源
- 取得 Microsoft Entra 存取權杖
- 取得語音資源識別碼
取得資源標識碼和Microsoft Entra 存取令牌之後,可以依照下列格式建構實際的存取令牌:
aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN
您必須在資源標識碼與存取令牌之間包含 “aad#” 前置詞和 “#” (hash) 分隔符。
以下是簡短音訊的語音轉換文字 REST API 範例 HTTP 要求:
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...
若要深入了解 Microsoft Entra 存取權杖,包括權杖存留期,請瀏覽 Microsoft 身分識別平台中的存取權杖。