Bagikan melalui


REST API teks ke ucapan

Layanan Azure Cognitive Service untuk Ucapan memungkinkan Anda mengonversi teks menjadi ucapan yang disintesis dan mendapatkan daftar suara yang didukung untuk suatu wilayah menggunakan REST API. Dalam artikel ini, Anda mempelajari tentang opsi otorisasi, opsi kueri, cara menyusun permintaan, dan cara menginterpretasikan respons.

Tip

Kasus penggunaan untuk REST API teks ke ucapan terbatas. Gunakan hanya dalam kasus di mana Anda tidak dapat menggunakan Azure Cognitive Service untuk Ucapan SDK. Misalnya, dengan Speech SDK Anda dapat berlangganan peristiwa untuk wawasan lebih lanjut tentang pemrosesan dan hasil teks ke ucapan.

REST API teks ke ucapan mendukung teks neural ke suara ucapan di banyak lokal. Setiap titik akhir yang tersedia dikaitkan dengan kawasan. Kunci sumber daya Ucapan untuk titik akhir atau wilayah yang Anda rencanakan untuk digunakan diperlukan. Berikut tautan untuk informasi selengkapnya:

Penting

Biaya bervariasi untuk suara saraf bawaan (disebut Neural di halaman harga) dan suara neural kustom (disebut Neural Kustom di halaman harga). Untuk informasi selengkapnya, lihat Harga layanan Azure Cognitive Service untuk Ucapan.

Sebelum Anda menggunakan REST API teks ke ucapan, pahami bahwa Anda perlu menyelesaikan pertukaran token sebagai bagian dari autentikasi untuk mengakses layanan. Untuk informasi lebih lanjut, lihat Autentikasi.

Mendapatkan daftar suara

Anda dapat menggunakan tts.speech.microsoft.com/cognitiveservices/voices/list titik akhir untuk mendapatkan daftar lengkap suara untuk wilayah atau titik akhir tertentu. Awali titik akhir daftar suara dengan wilayah untuk mendapatkan daftar suara untuk wilayah tersebut. Misalnya, untuk mendapatkan daftar suara untuk wilayah tersebut westus , gunakan https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list titik akhir. Untuk daftar semua wilayah yang didukung, lihat dokumentasi wilayah .

Catatan

Suara dan gaya dalam pratinjau hanya tersedia di tiga wilayah layanan: US Timur, Eropa Barat, dan Asia Tenggara.

Header permintaan

Tabel ini mencantumkan header yang diperlukan dan opsional untuk permintaan teks ke ucapan:

Header Deskripsi Diperlukan atau opsional
Ocp-Apim-Subscription-Key Kunci sumber daya Ucapan Anda. Baik header ini atau Authorization diperlukan.
Authorization Token otorisasi didahului oleh kata Bearer. Untuk informasi lebih lanjut, lihat Autentikasi. Baik header ini atau Ocp-Apim-Subscription-Key diperlukan.

Isi permintaan

Badan tidak diperlukan untuk permintaan GET ke titik akhir ini.

Permintaan sampel

Permintaan ini hanya memerlukan header otorisasi:

GET /cognitiveservices/voices/list HTTP/1.1

Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY

Berikut adalah contoh perintah curl:

curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'

Respon sampel

Anda harus menerima respons dengan isi JSON yang mencakup semua lokal, suara, jenis kelamin, gaya, dan detail lainnya yang didukung. Properti WordsPerMinute untuk setiap suara dapat digunakan untuk memperkirakan panjang ucapan output. Contoh JSON ini menunjukkan hasil parsial untuk mengilustrasikan struktur respons:

[  
    // 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
]

Kode status HTTP

Kode status HTTP untuk setiap respons menunjukkan keberhasilan atau kesalahan umum.

Kode status HTTP Deskripsi Kemungkinan alasan
200 OK Permintaan berhasil.
400 Permintaan Buruk Parameter yang diperlukan hilang, kosong, atau null. Atau, nilai yang diteruskan ke parameter yang diperlukan atau opsional tidak valid. Masalah umumnya adalah header yang terlalu panjang.
401 Tidak diizinkan Permintaan tersebut tidak diotorisasi. Pastikan kunci sumber daya atau token Anda valid dan di wilayah yang benar.
429 Terlalu banyak permintaan Anda melebihi kuota atau tingkat permintaan yang diizinkan untuk sumber daya Anda.
502 Gateway buruk Ada masalah jaringan atau sisi server. Status ini mungkin juga menunjukkan header yang tidak valid.

Mengonversi teks menjadi ucapan

Titik akhir cognitiveservices/v1 memungkinkan Anda mengonversi teks ke ucapan menggunakan Speech Synthesis Markup Language (SSML).

Wilayah dan titik akhir

Wilayah ini didukung untuk teks ke ucapan melalui REST API. Pastikan untuk memilih titik akhir yang cocok dengan wilayah sumber daya Ucapan Anda.

Suara neural bawaan

Gunakan tabel ini untuk menentukan ketersediaan suara neural menurut wilayah atau titik akhir:

Wilayah Titik akhir
Australia Timur https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
Brasil Selatan https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
Kanada Tengah https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
US Tengah https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
Asia Timur https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
AS Timur https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
AS Timur 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
Prancis Tengah https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
Jerman Barat Tengah https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
India Tengah https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
Jepang Timur https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
Jepang Barat https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
Jio India Barat https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1
Korea Tengah https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
US Tengah Utara https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Eropa Utara https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
Norwegia Timur https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
US Tengah Selatan https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Asia Tenggara https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
Swedia Tengah https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
Swiss Utara https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
Swiss Barat https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
Arab Saudi Utara https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
US Gov Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
US Gov Virginia https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
UK Selatan https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
AS Tengah Bagian Barat https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Eropa Barat https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
US Barat https://westus.tts.speech.microsoft.com/cognitiveservices/v1
US Barat 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
AS Barat 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

Tip

Suara dalam pratinjau hanya tersedia di tiga wilayah ini: US Timur, Eropa Barat, dan Asia Tenggara.

Suara neural kustom

Jika Anda telah membuat font suara neural kustom, gunakan titik akhir yang telah Anda buat. Anda juga dapat menggunakan titik akhir berikut. Ganti {deploymentId} dengan ID penyebaran untuk model suara neural Anda.

Wilayah Pelatihan Penyebaran Titik akhir
Australia Timur Ya Ya https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Brasil Selatan Tidak Ya https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Kanada Tengah Tidak Ya https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Tengah Tidak Ya https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Asia Timur Tidak Ya https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Timur Ya Ya https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Timur 2 Ya Ya https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Prancis Tengah Tidak Ya https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Jerman Barat Tengah Tidak Ya https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
India Tengah Ya Ya https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Jepang Timur Ya Ya https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Jepang Barat Tidak Ya https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Jio India Barat Tidak Ya https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Korea Tengah Ya Ya https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Tengah Bagian Utara Tidak Ya https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Eropa Utara Ya Ya https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Norwegia Timur Tidak Ya https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Afrika Selatan Utara Tidak Ya https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
US Tengah Selatan Ya Ya https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Asia Tenggara Ya Ya https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Swiss Utara Tidak Ya https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Swiss Barat Tidak Ya https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Arab Saudi Utara Tidak Ya https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
UK Selatan Ya Ya https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Tengah Bagian Barat Tidak Ya https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Eropa Barat Ya Ya https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
US Barat Ya Ya https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
US Barat 2 Ya Ya https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
AS Barat 3 Tidak Ya https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

Catatan

Wilayah sebelumnya tersedia untuk hosting model suara neural dan sintesis real time. Pelatihan suara neural tersedia di beberapa wilayah. Tetapi pengguna dapat dengan mudah menyalin model suara neural dari tiga wilayah ke wilayah lain dalam daftar sebelumnya.

Long Audio API

API Audio Panjang tersedia di beberapa wilayah dengan titik akhir yang unik:

Wilayah Titik akhir
Australia Timur https://australiaeast.customvoice.api.speech.microsoft.com
AS Timur https://eastus.customvoice.api.speech.microsoft.com
India Tengah https://centralindia.customvoice.api.speech.microsoft.com
US Tengah Selatan https://southcentralus.customvoice.api.speech.microsoft.com
Asia Tenggara https://southeastasia.customvoice.api.speech.microsoft.com
UK Selatan https://uksouth.customvoice.api.speech.microsoft.com
Eropa Barat https://westeurope.customvoice.api.speech.microsoft.com

Header permintaan

Tabel ini mencantumkan header yang diperlukan dan opsional untuk permintaan teks ke ucapan:

Header Deskripsi Diperlukan atau opsional
Authorization Token otorisasi didahului oleh kata Bearer. Untuk informasi lebih lanjut, lihat Autentikasi. Wajib
Content-Type Menentukan jenis konten untuk teks yang disediakan. Nilai yang diterima: application/ssml+xml. Wajib
X-Microsoft-OutputFormat Menentukan format keluaran audio. Untuk daftar lengkap nilai yang diterima, lihat Output audio. Wajib
User-Agent Nama aplikasi. Panjang nilai yang diberikan harus kurang dari 255 karakter. Wajib

Isi permintaan

Jika menggunakan suara neural kustom, isi permintaan dapat dikirim sebagai teks biasa (ASCII atau UTF-8). Jika tidak, isi setiap permintaan POST akan dikirim sebagai SSML. SSML memungkinkan Anda memilih suara dan bahasa ucapan yang disintesis yang dikembalikan oleh fitur teks ke ucapan. Untuk mengetahui daftar lengkap suara, lihat Dukungan bahasa dan suara untuk layanan Azure Cognitive Service untuk Ucapan.

Permintaan sampel

Permintaan HTTP ini menggunakan SSML untuk menentukan suara dan bahasa. Jika isi terlalu panjang, dan audio yang dihasilkan melebihi 10 menit, hasilnya akan dipotong menjadi 10 menit. Dengan kata lain, durasi audio tidak boleh melebihi 10 menit.

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>

* Untuk Panjang Konten, Anda harus menggunakan panjang konten Anda sendiri. Dalam kebanyakan kasus, nilai ini dihitung secara otomatis.

Kode status HTTP

Kode status HTTP untuk setiap respons menunjukkan keberhasilan atau kesalahan umum:

Kode status HTTP Deskripsi Kemungkinan alasan
200 OK Permintaan berhasil. Isi respons merupakan file audio.
400 Permintaan Buruk Parameter yang diperlukan hilang, kosong, atau null. Atau, nilai yang diteruskan ke parameter yang diperlukan atau opsional tidak valid. Masalah umumnya adalah header yang terlalu panjang.
401 Tidak diizinkan Permintaan tersebut tidak diotorisasi. Pastikan kunci atau token sumber daya Ucapan Anda valid dan di wilayah yang benar.
415 Jenis Media yang Tidak Didukung Ada kemungkinan bahwa nilai Content-Type yang salah disediakan. Content-Type harus ditetapkan ke application/ssml+xml.
429 Terlalu banyak permintaan Anda melebihi kuota atau tingkat permintaan yang diizinkan untuk sumber daya Anda.
502 Gateway buruk Ada masalah jaringan atau sisi server. Status ini mungkin juga menunjukkan header yang tidak valid.

Jika status HTTP adalah 200 OK, badan respons berisi file audio dalam format yang diminta. File ini bisa diputar seperti yang ditransfer, disimpan ke penyangga, atau disimpan ke sebuah file.

Output audio

Format audio streaming dan nonstreaming yang didukung dikirim di setiap permintaan sebagai X-Microsoft-OutputFormat header. Setiap format menggabungkan bit rate dan jenis pengodean. Layanan Azure Cognitive Service untuk Ucapan mendukung output audio 48 kHz, 24 kHz, 16 kHz dan 8-kHz. Setiap model suara neural bawaan tersedia pada 24kHz dan high-fidelity 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

Catatan

Jika Anda memilih format output 48kHz, model suara dengan keakuratan tinggi dengan 48kHz akan dipanggil. Laju sampel selain 24kHz dan 48kHz dapat diperoleh melalui upsampling atau downsampling saat mensintesis, misalnya, 44,1kHz diturunkan dari 48kHz.

Jika format suara dan output yang Anda pilih memiliki laju bit yang berbeda, audio akan disampling ulang jika diperlukan. Anda dapat mendekode format ogg-24khz-16bit-mono-opus dengan menggunakan codec Opus.

Autentikasi

Setiap permintaan memerlukan header otorisasi. Tabel ini mengilustrasikan header mana yang didukung untuk setiap fitur:

Header otorisasi yang didukung Ucapan ke Teks Teks ke ucapan
Ocp-Apim-Subscription-Key Ya Ya
Authorization: Bearer Ya Ya

Saat Anda menggunakan Ocp-Apim-Subscription-Key header, hanya kunci sumber daya Anda yang harus disediakan. Contohnya:

'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'

Saat menggunakan Authorization: Bearer header, Anda perlu membuat permintaan ke issueToken titik akhir. Dalam permintaan ini, Anda menukar kunci sumber daya dengan token akses yang berlaku selama 10 menit.

Opsi lain adalah menggunakan autentikasi Microsoft Entra yang juga menggunakan Authorization: Bearer header, tetapi dengan token yang dikeluarkan melalui ID Microsoft Entra. Lihat Menggunakan autentikasi Microsoft Entra.

Cara mendapatkan token akses

Untuk mendapatkan token akses, Anda perlu membuat permintaan ke issueToken titik akhir dengan menggunakan Ocp-Apim-Subscription-Key dan kunci sumber daya Anda.

Titik akhir issueToken memiliki format ini:

https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken

Ganti <REGION_IDENTIFIER> dengan pengidentifikasi yang cocok dengan wilayah langganan Anda.

Gunakan sampel berikut untuk membuat permintaan token akses Anda.

Sampel HTTP

Contoh ini adalah permintaan HTTP sederhana untuk mendapatkan token. Ganti YOUR_SUBSCRIPTION_KEY dengan kunci sumber daya Anda untuk layanan Ucapan. Jika langganan Anda tidak berada di wilayah US Barat, ganti header Host dengan nama host wilayah Anda.

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

Isi respons berisi token akses dalam format JSON Web Token (JWT).

Sampel PowerShell

Contoh ini adalah skrip PowerShell sederhana untuk mendapatkan token akses. Ganti YOUR_SUBSCRIPTION_KEY dengan kunci sumber daya Anda untuk layanan Ucapan. Pastikan untuk menggunakan titik akhir yang benar untuk wilayah yang cocok dengan langganan Anda. Contoh ini saat ini diatur ke US Barat.

$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

Sampel cURL

cURL adalah alat baris perintah yang tersedia di Linux (dan di Subsistem Windows untuk Linux). Perintah cURL ini menggambarkan cara mendapatkan token akses. Ganti YOUR_SUBSCRIPTION_KEY dengan kunci sumber daya Anda untuk layanan Ucapan. Pastikan untuk menggunakan titik akhir yang benar untuk wilayah yang cocok dengan langganan Anda. Contoh ini saat ini diatur ke US Barat.

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"

Sampel C#

Kelas C# ini menggambarkan cara mendapatkan token akses. Teruskan kunci sumber daya Anda untuk layanan Ucapan saat Anda membuat instans kelas. Jika langganan Anda tidak berada di wilayah US Barat, ubah nilai FetchTokenUri agar cocok dengan wilayah untuk langganan Anda.

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();
        }
    }
}

Sampel 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)

Cara menggunakan token akses

Token akses harus dikirim ke layanan sebagai header Authorization: Bearer <TOKEN>. Setiap token akses berlaku selama 10 menit. Anda bisa mendapatkan token baru kapan saja, tetapi, untuk meminimalkan lalu lintas dan latensi jaringan, sebaiknya gunakan token yang sama selama sembilan menit.

Berikut adalah contoh permintaan HTTP ke REST API Ucapan ke teks untuk audio pendek:

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...

Menggunakan autentikasi Microsoft Entra

Untuk menggunakan autentikasi Microsoft Entra dengan REST API Ucapan ke teks untuk audio pendek, Anda perlu membuat token akses. Langkah-langkah untuk mendapatkan token akses yang terdiri dari ID Sumber Daya dan token akses Microsoft Entra sama seperti saat menggunakan Speech SDK. Ikuti langkah-langkah di sini Menggunakan autentikasi Microsoft Entra

  • Membuat sumber daya Ucapan
  • Mengonfigurasi sumber daya Ucapan untuk autentikasi Microsoft Entra
  • Mendapatkan token akses Microsoft Entra
  • Dapatkan ID sumber daya Ucapan

Setelah ID sumber daya dan token akses Microsoft Entra diperoleh, token akses aktual dapat dibangun mengikuti format ini:

aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN

Anda perlu menyertakan awalan "aad#" dan pemisah "#" (hash) antara ID sumber daya dan token akses.

Berikut adalah contoh permintaan HTTP ke REST API Ucapan ke teks untuk audio pendek:

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...

Untuk mempelajari selengkapnya tentang token akses Microsoft Entra, termasuk masa pakai token, kunjungi Token akses di platform identitas Microsoft.

Langkah berikutnya