Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan transkripsi streaming
Bagian ini memperluas bagian streaming utama. Ini dimaksudkan untuk memberikan informasi bagi pengguna yang ingin mengatur streaming mereka dengan HTTP/2 atau WebSockets secara langsung, bukan dengan AWS SDK. Informasi di bagian ini juga dapat digunakan untuk membangun SDK Anda sendiri.
penting
Kami sangat menyarankan menggunakan SDK daripada menggunakan HTTP/2 dan WebSockets secara langsung. SDK adalah metode paling sederhana dan paling andal untuk menyalin aliran data. Untuk memulai streaming menggunakan AWS SDK, lihatMentranskripsikan dengan AWS SDK.
Komponen kunci untuk HTTP/2 protokol
-
Bingkai header. Ini berisi HTTP/2 header untuk permintaan Anda, dan tanda tangan di header otorisasi yang digunakan Amazon Transcribe sebagai tanda tangan benih untuk menandatangani bingkai data.
-
Satu atau lebih bingkai pesan dalam pengkodean aliran acara yang berisi metadata dan byte audio mentah.
-
Bingkai akhir. Ini adalah pesan yang ditandatangani dalam pengkodean aliran acara dengan tubuh kosong.
catatan
Amazon Transcribe hanya mendukung satu aliran per HTTP/2 sesi. Jika Anda mencoba menggunakan beberapa aliran, permintaan transkripsi Anda gagal.
-
Lampirkan kebijakan berikut ke IAM peran yang membuat permintaan. Lihat Men ambahkan IAM kebijakan untuk informasi selengkapnya.
-
Untuk memulai sesi, kirim HTTP/2 permintaan ke Amazon Transcribe.
POST /stream-transcription HTTP/2 host: transcribestreaming.us-west-2.amazonaws.com X-Amz-Target: com.amazonaws.transcribe.Transcribe.StartStreamTranscriptionContent-Type: application/vnd.amazon.eventstream X-Amz-Content-Sha256:stringX-Amz-Date:YYYYMMDDTHHMMSSZ Authorization: AWS4-HMAC-SHA256 Credential=access-key/YYYYMMDD/us-west-2/transcribe/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date;x-amz-target;x-amz-security-token, Signature=stringx-amzn-transcribe-language-code:en-USx-amzn-transcribe-media-encoding:flacx-amzn-transcribe-sample-rate:16000transfer-encoding: chunkedOperasi dan parameter tambahan tercantum dalam Referensi API; parameter umum untuk semua operasi AWS API tercantum di bagian Parameter Umum.
Amazon Transcribe mengirimkan respons berikut:
HTTP/2.0 200 x-amzn-transcribe-language-code: en-US x-amzn-transcribe-media-encoding: flac x-amzn-transcribe-sample-rate: 16000 x-amzn-request-id: 8a08df7d-5998-48bf-a303-484355b4ab4e x-amzn-transcribe-session-id: b4526fcf-5eee-4361-8192-d1cb9e9d6887 content-type: application/json -
Buat acara audio yang berisi data audio Anda. Gabungkan header—dijelaskan dalam tabel berikut—dengan potongan byte audio dalam pesan yang dikodekan peristiwa. Untuk membuat payload untuk pesan acara, gunakan buffer dalam format raw-byte.
Nama header panjang byte Nama header (string) Jenis nilai header Nilai panjang byte string Nilai string (UTF-8) 13 :tipe konten 7 24 application/octet-aliran 11 :tipe acara 7 10 AudioEvent 13 :jenis pesan 7 5 kejadian Data biner dalam permintaan contoh ini dikodekan base64. Dalam permintaan aktual, data adalah byte mentah.
:content-type: "application/vnd.amazon.eventstream" :event-type: "AudioEvent" :message-type: "event" UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA== -
Buat pesan audio yang berisi data audio Anda.
-
Bingkai data pesan audio Anda berisi header pengkodean peristiwa yang menyertakan tanggal saat ini dan tanda tangan untuk potongan audio dan acara audio.
Nama header panjang byte Nama header (string) Jenis nilai header Nilai panjang byte string Nilai 16 :potongan tanda tangan 6 bervariasi tanda tangan yang dihasilkan 5 :tanggal 8 8 timestamp Data biner dalam permintaan ini dikodekan base64. Dalam permintaan aktual, data adalah byte mentah.
:date: 2019-01-29T01:56:17.291Z :chunk-signature:signatureAAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5 cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA AAAAAAAAAAAA//8CAP3/BAC7QLFf -
Buat string untuk ditandatangani, seperti yang diuraikan dalam Buat string untuk ditandatangani untuk Tanda Tangan Versi 4. String Anda mengikuti format ini:
String stringToSign = "AWS4-HMAC-SHA256" + "\n" +DateTime+ "\n" +Keypath+ "\n" + Hex(priorSignature) + "\n" + HexHash(nonSignatureHeaders) + "\n" + HexHash(payload);-
DateTime: Tanggal dan waktu tanda tangan dibuat. Formatnya adalah YYYYMMDDTHHMMSSZ, di mana YYYY=tahun, MM=bulan, DD = hari, HH=jam, MM=menit, SS=detik, dan 'T' dan 'Z' adalah karakter tetap. Untuk informasi selengkapnya, lihat Men angani Tanggal di Tanda Tangan Versi 4.
-
Keypath: Lingkup tanda tangan dalam format
date/region/service/aws4_request. Misalnya,20220127/us-west-2/transcribe/aws4_request. -
Hex: Fungsi yang mengkodekan input ke dalam representasi heksadesimal.
-
PriorSignature: Tanda tangan untuk frame sebelumnya. Untuk bingkai data pertama, gunakan tanda tangan dari bingkai header.
-
HexHash: Fungsi yang pertama kali membuat SHA-256 hash inputnya dan kemudian menggunakan fungsi Hex untuk mengkodekan hash.
-
non SignatureHeaders: DateTime Header dikodekan sebagai string.
-
payload: Buffer byte yang berisi data peristiwa audio.
-
-
Dapatkan kunci penandatanganan dari kunci akses AWS rahasia Anda dan gunakan untuk menandatangani
stringToSign. Untuk tingkat perlindungan yang lebih besar, kunci turunan khusus untuk tanggal, layanan, dan Wilayah AWS. Untuk informasi selengkapnya, lihat Mengh itung tanda tangan untuk T AWS anda Tangan Versi 4.Pastikan Anda menerapkan
GetSignatureKeyfungsi untuk mendapatkan kunci penandatanganan Anda. Jika Anda belum mendapatkan kunci penandatanganan, lihat Contoh cara mendapatkan kunci penandatanganan untuk Tanda Tangan Versi 4.String signature = HMACSHA256(derivedSigningKey, stringToSign);-
HMACSHA256: Fungsi yang membuat tanda tangan menggunakan fungsi hash. SHA-256
-
diturunkan SigningKey: Kunci penandatanganan Signature Versi 4.
-
string ToSign: String yang Anda hitung untuk bingkai data.
Setelah Anda menghitung tanda tangan untuk bingkai data, buat buffer byte yang berisi tanggal, tanda tangan, dan muatan peristiwa audio. Kirim array byte ke Amazon Transcribe untuk transkripsi.
-
-
-
Untuk menunjukkan aliran audio selesai, kirim bingkai akhir (bingkai data kosong) yang hanya berisi tanggal dan tanda tangan. Anda membangun bingkai akhir ini dengan cara yang sama seperti Anda membangun bingkai data.
Amazon Transcribe merespons dengan aliran peristiwa transkripsi, dikirim ke aplikasi Anda. Respons ini dikodekan aliran peristiwa. Ini berisi pendahuluan standar dan header berikut.
Nama header panjang byte Nama header (string) Jenis nilai header Nilai panjang byte string Nilai string (UTF-8) 13 :tipe konten 7 16 application/json 11 :tipe acara 7 15 TranscriptEvent 13 :jenis pesan 7 5 kejadian Acara dikirim dalam format raw-byte. Dalam contoh ini, byte dikodekan base64.
AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI 5eGn83jdBwCaRUBJA+eaDafqjqI=Untuk melihat hasil transkripsi, dekode byte mentah menggunakan pengkodean aliran peristiwa.
:content-type: "application/vnd.amazon.eventstream" :event-type: "TranscriptEvent" :message-type: "event" { "Transcript": { "Results": [results] } } -
Untuk mengakhiri streaming, kirim acara audio kosong ke Amazon Transcribe. Buat acara audio persis seperti yang lain, kecuali dengan muatan kosong. Tanda tangani acara dan sertakan tanda tangan di
:chunk-signatureheader, sebagai berikut::date: 2019-01-29T01:56:17.291Z :chunk-signature:signature
Men HTTP/2 angani kesalahan streaming
Jika terjadi kesalahan saat memproses aliran media Anda, Amazon Transcribe mengirimkan respons pengecualian. Responsnya adalah aliran peristiwa yang dikodekan.
Respons berisi pendahuluan standar dan header berikut:
| Nama header panjang byte | Nama header (string) | Jenis nilai header | Nilai panjang byte string | Nilai string (UTF-8) |
|---|---|---|---|---|
| 13 | :tipe konten | 7 | 16 | application/json |
| 11 | :tipe acara | 7 | 19 | BadRequestException |
| 13 | :jenis pesan | 7 | 9 | pengecualian |
Ketika respons pengecualian diterjemahkan, itu berisi informasi berikut:
:content-type: "application/vnd.amazon.eventstream" :event-type: "BadRequestException" :message-type: "exception"Exception message
Komponen kunci untuk WebSocket protokol
-
Permintaan peningkatan. Ini berisi parameter kueri untuk permintaan Anda, dan tanda tangan yang Amazon Transcribe digunakan sebagai tanda tangan benih untuk menandatangani bingkai data.
-
Satu atau lebih bingkai pesan dalam pengkodean aliran acara yang berisi metadata dan byte audio mentah.
-
Bingkai akhir. Ini adalah pesan yang ditandatangani dalam pengkodean aliran acara dengan tubuh kosong.
catatan
Amazon Transcribe hanya mendukung satu aliran per WebSocket sesi. Jika Anda mencoba menggunakan beberapa aliran, permintaan transkripsi Anda gagal.
-
Lampirkan kebijakan berikut ke IAM peran yang membuat permintaan. Lihat Men ambahkan IAM kebijakan untuk informasi selengkapnya.
-
Untuk memulai sesi, buat URL yang telah ditandatangani sebelumnya dalam format berikut. Istirahat baris telah ditambahkan untuk keterbacaan.
GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/stream-transcription-websocket? &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=access-key%2FYYYYMMDD%2Fus-west-2%2Ftranscribe%2Faws4_request &X-Amz-Date=YYYYMMDDTHHMMSSZ &X-Amz-Expires=300&X-Amz-Security-Token=security-token&X-Amz-Signature=string&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date &language-code=en-US&media-encoding=flac&sample-rate=16000catatan
Nilai maksimum untuk
X-Amz-Expiresadalah 300 (5 menit).Operasi dan parameter tambahan tercantum dalam Referensi API; parameter umum untuk semua operasi AWS API tercantum di bagian Parameter Umum.
Untuk membuat URL untuk permintaan Anda dan membuat tanda tangan Signature Versi 4, lihat langkah-langkah berikut. Contohnya ada dalam pseudocode.
-
Membuat permintaan kanonik. Permintaan kanonik adalah string yang menyertakan informasi dari permintaan Anda dalam format standar. Ini memastikan bahwa ketika AWS menerima permintaan, itu dapat menghitung tanda tangan yang sama yang Anda buat untuk URL Anda. Untuk informasi selengkapnya, lihat Membuat Permintaan Kanonik untuk Tanda Tangan Versi 4.
# HTTP verb method = "GET" # Service name service = "transcribe" # Region region = "us-west-2" # Amazon Transcribe streaming endpoint endpoint = "wss://transcribestreaming.us-west-2.amazonaws.com:8443" # Host host = "transcribestreaming.us-west-2.amazonaws.com:8443" # Date and time of request amz-date =YYYYMMDDTHHMMSSZ # Date without time for credential scope datestamp =YYYYMMDD -
Buat URI kanonik, yang merupakan bagian dari URI antara domain dan string kueri.
canonical_uri = "/stream-transcription-websocket" -
Buat header kanonik dan header yang ditandatangani. Perhatikan trailing
\ndi header kanonik.-
Tambahkan nama header huruf kecil diikuti dengan titik dua (:).
-
Tambahkan daftar nilai yang dipisahkan koma untuk header tersebut. Jangan mengurutkan nilai dalam header yang memiliki banyak nilai.
-
Tambahkan baris baru (
\n).
canonical_headers = "host:" + host + "\n" signed_headers = "host" -
-
Cocokkan algoritma dengan algoritma hashing. Gunakan
SHA-256.algorithm = "AWS4-HMAC-SHA256" -
Buat cakupan kredensia, yang mencakup kunci turunan ke tanggal, Wilayah AWS, dan layanan. Misalnya,
.20220127/us-west-2/transcribe/aws4_requestcredential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request" -
Buat string kueri kanonik. Nilai string kueri harus di URI-encoded urutkan berdasarkan nama.
-
Urutkan nama parameter dengan titik kode karakter dalam urutan naik. Parameter dengan nama duplikat harus diurutkan berdasarkan nilai. Misalnya, nama parameter yang dimulai dengan huruf besar F mendahului nama parameter yang dimulai dengan huruf kecil b.
-
Jangan gunakan karakter URI-encode tanpa syarat apa pun yang didefinisikan RFC 3986: A-Z, a-z, 0-9, tanda hubung (-), garis bawah (_), titik (.), dan tilde (~).
-
Percent-encode semua karakter lain dengan %XY, di mana X dan Y adalah karakter heksadesimal (0-9 dan huruf besar A-F). Misalnya, karakter spasi harus dikodekan sebagai %20 (jangan sertakan '+', seperti beberapa skema pengkodean); UTF-8 karakter yang diperpanjang harus dalam bentuk %XY%ZA%BC.
-
Double-encode setiap karakter sama dengan (=) dalam nilai parameter.
canonical_querystring = "X-Amz-Algorithm=" + algorithm canonical_querystring += "&X-Amz-Credential="+ URI-encode(access key + "/" + credential_scope) canonical_querystring += "&X-Amz-Date=" + amz_date canonical_querystring += "&X-Amz-Expires=300" canonical_querystring += "&X-Amz-Security-Token=" + token canonical_querystring += "&X-Amz-SignedHeaders=" + signed_headers canonical_querystring += "&language-code=en-US&media-encoding=flac&sample-rate=16000" -
-
Buat hash dari payload. Untuk
GETpermintaan, payload adalah string kosong.payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest() -
Gabungkan elemen-elemen berikut untuk membuat permintaan kanonik.
canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
-
-
Buat string untuk ditandatangani, yang berisi informasi meta tentang permintaan Anda. Anda menggunakan string untuk masuk pada langkah berikutnya ketika Anda menghitung tanda tangan permintaan. Untuk informasi selengkapnya, lihat Membuat String untuk Menandatangani untuk Tanda Tangan Versi 4.
string_to_sign=algorithm + "\n" + amz_date + "\n" + credential_scope + "\n" + HashSHA256(canonical_request.Encode("utf-8")).HexDigest() -
Hitung tanda tangannya. Untuk melakukan ini, dapatkan kunci penandatanganan dari kunci akses AWS rahasia Anda. Untuk tingkat perlindungan yang lebih besar, kunci turunan khusus untuk tanggal, layanan, dan Wilayah AWS. Gunakan kunci turunan ini untuk menandatangani permintaan. Untuk informasi selengkapnya, lihat Mengh itung Tanda Tangan untuk T AWS anda Tangan Versi 4.
Pastikan Anda menerapkan
GetSignatureKeyfungsi untuk mendapatkan kunci penandatanganan Anda. Jika Anda belum mendapatkan kunci penandatanganan, lihat Contoh cara mendapatkan kunci penandatanganan untuk Tanda Tangan Versi 4.#Create the signing key signing_key = GetSignatureKey(secret_key, datestamp, region, service) # Sign the string_to_sign using the signing key signature = HMAC.new(signing_key, (string_to_sign).Encode("utf-8"), Sha256()).HexDigestFungsi
HMAC(key, data)mewakili HMAC-SHA256 fungsi yang mengembalikan hasil dalam format biner. -
Tambahkan informasi penandatanganan ke permintaan dan buat URL permintaan.
Setelah Anda menghitung tanda tangan, tambahkan ke string kueri. Untuk informasi selengkapnya, lihat Menambahkan Tanda Tangan ke Permintaan.
Pertama, tambahkan informasi otentikasi ke string kueri.
canonical_querystring += "&X-Amz-Signature=" + signatureKedua, buat URL untuk permintaan.
request_url = endpoint + canonical_uri + "?" + canonical_querystringGunakan URL permintaan dengan WebSocket perpustakaan Anda untuk membuat permintaan Amazon Transcribe.
-
Permintaan untuk Amazon Transcribe harus menyertakan header berikut. Biasanya header ini dikelola oleh pustaka WebSocket klien Anda.
Host: transcribestreaming.us-west-2.amazonaws.com:8443 Connection: Upgrade Upgrade: websocket Origin:URI-of-WebSocket-clientSec-WebSocket-Version:13Sec-WebSocket-Key:randomly-generated-string -
Ketika Amazon Transcribe menerima WebSocket permintaan Anda, ia merespons dengan respons WebSocket peningkatan. Biasanya WebSocket perpustakaan Anda mengelola respons ini dan menyiapkan soket untuk komunikasi dengan Amazon Transcribe.
Berikut ini adalah tanggapan dari Amazon Transcribe. Istirahat baris telah ditambahkan untuk keterbacaan.
HTTP/1.1 101 WebSocket Protocol Handshake Connection: upgrade Upgrade: websocket websocket-origin: wss://transcribestreaming.us-west-2.amazonaws.com:8443 websocket-location: transcribestreaming.us-west-2.amazonaws.com:8443/stream-transcription-websocket? &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20220208%2Fus-west-2%2Ftranscribe%2Faws4_request &X-Amz-Date=20220208T235959Z &X-Amz-Expires=300 &X-Amz-Signature=Signature Version 4 signature&X-Amz-SignedHeaders=host &language-code=en-US &session-id=String&media-encoding=flac &sample-rate=16000 x-amzn-RequestId:RequestIdStrict-Transport-Security: max-age=31536000sec-websocket-accept:hash-of-the-Sec-WebSocket-Key-header -
Buat permintaan WebSocket streaming Anda.
Setelah WebSocket koneksi dibuat, klien dapat mulai mengirim urutan frame audio, masing-masing dikodekan menggunakan pengkodean aliran peristiwa.
Setiap bingkai data berisi tiga header yang dikombinasikan dengan potongan byte audio mentah; tabel berikut menjelaskan header ini.
Nama header panjang byte Nama header (string) Jenis nilai header Nilai panjang byte string Nilai string (UTF-8) 13 :tipe konten 7 24 application/octet-aliran 11 :tipe acara 7 10 AudioEvent 13 :jenis pesan 7 5 kejadian -
Untuk mengakhiri aliran data, kirim potongan audio kosong dalam pesan yang dikodekan aliran acara.
Respons berisi aliran peristiwa yang dikodekan byte mentah dalam payload. Ini berisi pendahuluan standar dan header berikut.
Nama header panjang byte Nama header (string) Jenis nilai header Nilai panjang byte string Nilai string (UTF-8) 13 :tipe konten 7 16 application/json 11 :tipe acara 7 15 TranscriptEvent 13 :jenis pesan 7 5 kejadian Saat Anda memecahkan kode respons biner, Anda berakhir dengan struktur JSON yang berisi hasil transkripsi.
Men WebSocket angani kesalahan streaming
Jika pengecualian terjadi saat memproses permintaan Anda, Amazon Transcribe merespons dengan WebSocket bingkai terminal yang berisi respons yang dikodekan aliran peristiwa. Respons ini berisi header yang dijelaskan dalam tabel berikut; isi respons berisi pesan kesalahan deskriptif. Setelah mengirim respons pengecualian, Amazon Transcribe mengirim bingkai tertutup.
| Nama header panjang byte | Nama header (string) | Jenis nilai header | Nilai panjang byte string | Nilai string (UTF-8) |
|---|---|---|---|---|
| 13 | :tipe konten | 7 | 16 | application/json |
| 15 | :tipe pengecualian | 7 | bervariasi | bervariasi, lihat di bawah |
| 13 | :jenis pesan | 7 | 9 | pengecualian |
exception-typeHeader berisi salah satu nilai berikut:
-
BadRequestException: Terjadi kesalahan klien saat streaming dibuat, atau terjadi kesalahan saat streaming data. Pastikan klien Anda siap menerima data dan coba permintaan Anda lagi. -
InternalFailureException: Amazon Transcribe memiliki masalah selama jabat tangan dengan klien. Coba permintaan Anda lagi. -
LimitExceededException: Klien melebihi batas aliran bersamaan. Untuk informasi selengkapnya, lihat Amazon Transcribe Batasan-batasan. Kurangi jumlah streaming yang Anda transkripsikan. -
UnrecognizedClientException: Per WebSocket mintaan peningkatan ditandatangani dengan kunci akses atau kunci rahasia yang salah. Pastikan Anda membuat kunci akses dengan benar dan coba permintaan Anda lagi.
Amazon Transcribe juga dapat mengembalikan salah satu kesalahan layanan umum. Untuk daftar, lihat Kes alahan Umum.
Pengkodean aliran acara
Amazon Transcribe menggunakan format yang disebut event stream encoding untuk transkripsi streaming.
Event stream encoding menyediakan komunikasi dua arah antara klien dan server. Bingkai data yang dikirim ke layanan Amazon Transcribe streaming dikodekan dalam format ini. Respons dari Amazon Transcribe juga menggunakan pengkodean ini.
Setiap pesan terdiri dari dua bagian: pendahuluan dan data. Pendahuluan terdiri dari:
-
Total panjang byte pesan
-
Panjang byte gabungan dari semua header
Bagian data terdiri dari:
-
Header
-
Payload
Setiap bagian diakhiri dengan checksum 4-byte big-endian integer cyclical redundancy check (CRC). Pesan CRC checksum adalah untuk bagian pendahuluan dan bagian data. Amazon Transcribe menggunakan CRC32 (sering disebut sebagai GZIP CRC32) untuk menghitung kedua CRC. Untuk informasi selengkapnya tentang CRC32, lihat spesifikasi format file GZIP versi 4.3.
Total overhead pesan, termasuk pendahuluan dan kedua checksum, adalah 16 byte.
Diagram berikut menunjukkan komponen yang membentuk pesan dan header. Ada beberapa header per pesan.
Setiap pesan berisi komponen-komponen berikut:
-
Prelude: Terdiri dari dua bidang 4-byte, dengan total tetap 8 byte.
-
4 byte pertama: Panjang byte integer big-endian dari seluruh pesan, termasuk bidang panjang 4-byte ini.
-
4 byte kedua: Panjang byte integer big-endian dari bagian 'header' pesan, tidak termasuk bidang panjang 'header' itu sendiri.
-
-
Prelude CRC: Checksum CRC 4-byte untuk bagian awal pesan, tidak termasuk CRC itu sendiri. Pendahuluan memiliki CRC terpisah dari pesan CRC. Itu memastikan bahwa Amazon Transcribe dapat mendeteksi informasi panjang byte yang rusak segera tanpa menyebabkan kesalahan, seperti buffer overrun.
-
Header: Metadata yang membuat anotasi pesan; misalnya, jenis pesan dan jenis konten. Pesan memiliki beberapa header, yaitu pasangan kunci:nilai, di mana kuncinya adalah string. UTF-8 Header dapat muncul dalam urutan apa pun di bagian 'header' pesan, dan setiap header hanya dapat muncul sekali.
-
Payload: Konten audio yang akan ditranskripsikan.
-
Pesan CRC: Checksum CRC 4-byte dari awal pesan hingga awal checksum. Artinya, semua yang ada di pesan kecuali CRC itu sendiri.
Bingkai header adalah bingkai otorisasi untuk transkripsi streaming. Amazon Transcribe menggunakan nilai header otorisasi sebagai benih untuk menghasilkan rantai header otorisasi untuk bingkai data dalam permintaan.
Setiap header berisi komponen berikut; ada beberapa header per frame.
-
Nama header byte-length: Panjang byte dari nama header.
-
Nama header: Nama header yang menunjukkan jenis header. Untuk nilai yang valid, lihat deskripsi bingkai berikut.
-
Jenis nilai header: Angka yang menunjukkan nilai header. Daftar berikut menunjukkan nilai yang mungkin untuk header dan apa yang mereka tunjukkan.
-
0— BENAR -
1— SALAH -
2— BYTE -
3— PENDEK -
4— BILANGAN BULAT -
5— PANJANG -
6— ARRAY BYTE -
7— TALI -
8— STEMPEL WAKTU -
9— UUID
-
-
Nilai panjang byte string: Panjang byte dari string nilai header.
-
Nilai header: Nilai string header. Nilai yang valid untuk bidang ini tergantung pada jenis header. Lihat Menyiapkan HTTP/2 aliran atau Menyiapkan WebSocket aliran untuk informasi lebih lanjut.
Bingkai data
Setiap permintaan streaming berisi satu atau lebih bingkai data. Ada dua langkah untuk membuat kerangka data:
-
Gabungkan data audio mentah dengan metadata untuk membuat muatan permintaan Anda.
-
Gabungkan payload dengan tanda tangan untuk membentuk pesan acara yang dikirim ke Amazon Transcribe.
Diagram berikut menunjukkan bagaimana inii bekerja.