Impostazione di una trascrizione in streaming - Amazon Transcribe

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione di una trascrizione in streaming

Questa sezione amplia la sezione principale dello streaming. Ha lo scopo di fornire informazioni agli utenti che desiderano configurare il proprio streaming con HTTP /2 o WebSockets direttamente, anziché con un. AWS SDK Le informazioni contenute in questa sezione possono essere utilizzate anche per crearne di proprie. SDK

Importante

Consigliamo vivamente di usare SDKs invece di usare HTTP /2 e WebSockets direttamente. SDKssono il metodo più semplice e affidabile per trascrivere i flussi di dati. Per iniziare lo streaming utilizzando un AWS SDK, consulta. Trascrizione con gli SDK AWS

I componenti chiave di un protocollo HTTP /2 per lo streaming di richieste di trascrizione sono: Amazon Transcribe

  • Un frame di intestazione. Contiene le intestazioni HTTP /2 per la richiesta e una firma nell'intestazione di autorizzazione che viene Amazon Transcribe utilizzata come firma iniziale per firmare i frame di dati.

  • Uno o più frame di messaggi nella codifica del flusso di eventi che contengono metadati e byte audio non elaborati.

  • Un frame finale. Si tratta di un messaggio firmato nella codifica del flusso di eventi con un corpo vuoto.

Nota

Amazon Transcribe supporta solo uno stream per sessione /2. HTTP Se tenti di utilizzare flussi multipli, la richiesta di trascrizione fallirà.

  1. Allega la seguente politica al IAM ruolo che effettua la richiesta. Per ulteriori informazioni, consulta Aggiungere IAM politiche.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-http2-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscription", "Resource": "*" } ] }
  2. Per avviare la sessione, invia una richiesta HTTP /2 a Amazon Transcribe.

    POST /stream-transcription HTTP/2 host: transcribestreaming.us-west-2.amazonaws.com X-Amz-Target: com.amazonaws.transcribe.Transcribe.StartStreamTranscription Content-Type: application/vnd.amazon.eventstream X-Amz-Content-Sha256: string X-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=string x-amzn-transcribe-language-code: en-US x-amzn-transcribe-media-encoding: flac x-amzn-transcribe-sample-rate: 16000 transfer-encoding: chunked

    Operazioni e parametri aggiuntivi sono elencati nella sezione APIRiferimento; i parametri comuni a tutte le AWS API operazioni sono elencati nella sezione Parametri comuni.

    Amazon Transcribe invia la seguente risposta:

    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
  3. Crea un evento audio che contenga i tuoi dati audio. Combina le intestazioni descritte nella seguente tabella con un blocco di byte audio in un messaggio codificato in base agli eventi. Per creare il payload per il messaggio di evento, utilizza un buffer in formato di byte non elaborati.

    Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valore (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 evento

    I dati binari in questo esempio di richiesta sono con codifica base64. In una richiesta reale, i dati sono byte non elaborati.

    :content-type: "application/vnd.amazon.eventstream" :event-type: "AudioEvent" :message-type: "event" UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA==
  4. Crea un messaggio audio che contenga i tuoi dati audio.

    1. Il frame di dati del messaggio audio contiene le intestazioni di codifica degli eventi che includono la data e la firma correnti per il blocco audio e l'evento audio.

      Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Valore
      16 :chunk-signature 6 varia firma generata
      5 :date 8 8 timestamp

      I dati binari in questa richiesta sono con codifica base64. In una richiesta reale, i dati sono byte non elaborati.

      :date: 2019-01-29T01:56:17.291Z :chunk-signature: signature AAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5 cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA AAAAAAAAAAAA//8CAP3/BAC7QLFf
    2. Costruisci una stringa da firmare, come indicato in Creazione di una stringa da firmare in Signature Version 4. La tua stringa segue questo formato:

      String stringToSign = "AWS4-HMAC-SHA256" + "\n" + DateTime + "\n" + Keypath + "\n" + Hex(priorSignature) + "\n" + HexHash(nonSignatureHeaders) + "\n" + HexHash(payload);
      • DateTime: data e ora di creazione della firma. Il formato è YYYYMMDDTHHMMSSZ il seguente: YYYY =anno, MM=mese, DD=giorno, HH=ora, MM=minuto, ss=secondi e 'T' e 'Z' sono caratteri fissi. Per ulteriori informazioni, consulta Gestione delle date in Signature Version 4.

      • Keypath: l'ambito della firma nel formato date/region/service/aws4_request. Ad esempio 20220127/us-west-2/transcribe/aws4_request.

      • Hex: una funzione che codifica l’input in una rappresentazione esadecimale.

      • priorSignature: La firma per il frame precedente. Per il primo frame di dati, utilizza la firma del frame di intestazione.

      • HexHash: Una funzione che prima crea un hash SHA -256 del relativo input e poi utilizza la funzione Hex per codificare l'hash.

      • nonSignatureHeaders: L' DateTime intestazione codificata come stringa.

      • payload: il buffer di byte contenente i dati degli eventi audio.

    3. Ricava una chiave di firma dalla chiave di accesso AWS segreta e usala per firmare il. stringToSign La chiave derivata è specifica per la data, il servizio e la Regione AWS per un maggior livello di protezione. Per ulteriori informazioni, consulta Calcolo della firma per Signature Version 4 AWS.

      Assicurati di implementare la funzioneGetSignatureKey per ricavare la tua chiave di firma. Se non hai ancora ricavato una chiave di firma, consulta Esempi su come ricavare una chiave di firma per Signature Version 4.

      String signature = HMACSHA256(derivedSigningKey, stringToSign);
      • HMACSHA256: Una funzione che crea una firma utilizzando la funzione SHA hash -256.

      • derivedSigningKey: La chiave di firma Signature Version 4.

      • stringToSign: La stringa che hai calcolato per il frame di dati.

      Dopo avere calcolato la firma per il frame di dati, crei un buffer di byte contenente la data, la firma e il payload degli eventi audio. Invia l'array di byte ad Amazon Transcribe per la trascrizione.

  5. Per indicare che il flusso audio è completo, invia un frame finale (un frame di dati vuoto) che contiene solo la data e la firma. Puoi creare il frame finale allo stesso modo in cui crei il frame di dati.

    Amazon Transcribe risponde con un flusso di eventi di trascrizione, inviati all'applicazione. La risposta è un flusso di eventi codificati. Esso contiene l'introduzione standard e le intestazioni seguenti:

    Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valori (-8) UTF
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 evento

    Gli eventi vengono inviati in formato di byte non elaborati. In questo esempio, i byte sono con codifica base64.

    AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI 5eGn83jdBwCaRUBJA+eaDafqjqI=

    Per vedere i risultati di trascrizione, decodifica i byte non elaborati utilizzando la codifica del flusso di eventi.

    :content-type: "application/vnd.amazon.eventstream" :event-type: "TranscriptEvent" :message-type: "event" { "Transcript": { "Results": [ results ] } }
  6. Per terminare il flusso, invia un evento audio vuoto ad Amazon Transcribe. Crea l'evento audio esattamente come qualsiasi altro evento, salvo con un payload vuoto. Firma l'evento e includi la firma nell'intestazione :chunk-signature, come segue:

    :date: 2019-01-29T01:56:17.291Z :chunk-signature: signature

Gestione degli HTTP errori di streaming /2

Se si verifica un errore durante l'elaborazione del flusso multimediale, Amazon Transcribe invia una risposta di eccezione. La risposta è un flusso di eventi codificati.

La risposta contiene l'introduzione standard e le intestazioni seguenti:

Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valori (UTF-8)
13 :content-type 7 16 application/json
11 :event-type 7 19 BadRequestException
13 :message-type 7 9 exception

Quando viene codificata, la risposta di eccezione contiene le informazioni seguenti:

:content-type: "application/vnd.amazon.eventstream" :event-type: "BadRequestException" :message-type: "exception" Exception message

I componenti chiave di un WebSocketprotocollo per lo streaming di richieste di trascrizione sono: Amazon Transcribe

  • La richiesta di aggiornamento. Contiene i parametri di interrogazione per la richiesta e una firma che Amazon Transcribe viene utilizzata come firma iniziale per firmare i frame di dati.

  • Uno o più frame di messaggi nella codifica del flusso di eventi che contengono metadati e byte audio non elaborati.

  • Un frame finale. Si tratta di un messaggio firmato nella codifica del flusso di eventi con un corpo vuoto.

Nota

Amazon Transcribe supporta solo uno stream per WebSocket sessione. Se tenti di utilizzare flussi multipli, la richiesta di trascrizione fallirà.

  1. Allega la seguente politica al IAM ruolo che effettua la richiesta. Per ulteriori informazioni, consulta Aggiungere IAM politiche.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-websocket-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscriptionWebSocket", "Resource": "*" } ] }
  2. Per avviare la sessione, crea un predefinito URL nel seguente formato. Le interruzioni di riga sono state aggiunte per la leggibilità.

    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=16000
    Nota

    Il valore massimo di X-Amz-Expires è 300 (5 minuti).

    Operazioni e parametri aggiuntivi sono elencati nella sezione APIRiferimento; i parametri comuni a tutte le AWS API operazioni sono elencati nella sezione Parametri comuni.

    Per creare la firma URL per la tua richiesta e creare la firma Signature Version 4, fai riferimento ai seguenti passaggi. Gli esempi sono in pseudocodice.

    1. Creare una richiesta canonica. Una richiesta canonica è una stringa che include informazioni dalla richiesta in un formato standardizzato. In questo modo, quando AWS riceve la richiesta, può calcolare la stessa firma che hai creato per la tuaURL. Per ulteriori informazioni, consulta Creazione di una richiesta canonica per Signature Version 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
    2. Crea un valore canonicoURI, che è la parte URI tra il dominio e la stringa di query.

      canonical_uri = "/stream-transcription-websocket"
    3. Crea le intestazioni canoniche e le intestazioni firmate. Notare la \n in coda nelle intestazioni canoniche.

      • Aggiungi il nome dell'intestazione in caratteri minuscoli seguito da due punti ( : ).

      • Aggiungi un elenco separato da virgole di valori per l'intestazione. Non ordinare i valori nelle intestazioni che presentano più valori.

      • Aggiungi una nuova riga (\n).

      canonical_headers = "host:" + host + "\n" signed_headers = "host"
    4. Eseguire la corrispondenza dell'algoritmo con l'algoritmo hash. Utilizza SHA-256.

      algorithm = "AWS4-HMAC-SHA256"
    5. Creare l'ambito delle credenziali che definisce gli ambiti della chiave derivata per la data, la Regione AWS e i servizi. Ad esempio 20220127/us-west-2/transcribe/aws4_request.

      credential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request"
    6. Creare la stringa di query canonica. I valori della stringa di query devono essere URI codificati e ordinati per nome.

      • Organizza i nomi dei parametri per punto di codice carattere in ordine crescente. I parametri con nomi duplicati devono essere ordinati in base al valore. Ad esempio, un nome di parametro che inizia con la lettera maiuscola F precede un nome di parametro che inizia con la lettera minuscola b.

      • Non URI codificate nessuno dei caratteri non riservati definiti da RFC 3986: A-Z, a-z, 0-9, trattino (-), trattino basso (_), punto (.) e tilde (~).

      • Codifica tutti gli altri caratteri con codifica percentuale con %XY, dove X e Y sono caratteri esadecimali (0-9 e A-F maiuscole). Ad esempio, il carattere dello spazio deve essere codificato come %20 (non includere '+', come fanno alcuni schemi di codifica); gli -8 caratteri estesi devono avere il formato %XY%ZA%BC. UTF

      • Esegui la doppia codifica di qualsiasi carattere uguale (=) nei valori dei parametri.

      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"
    7. Creare un hash di payload. Per una richiesta GET, il payload è una stringa vuota.

      payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
    8. Combina i successivi elementi per creare la richiesta canonica.

      canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
  3. Crea la stringa per la firma che contiene le meta informazioni che interessano la richiesta. È possibile utilizzare la stringa per firmare il passaggio successivo quando si calcola la firma della richiesta. Per ulteriori informazioni, consulta Creazione di una stringa di firma per Signature Version 4.

    string_to_sign=algorithm + "\n" + amz_date + "\n" + credential_scope + "\n" + HashSHA256(canonical_request.Encode("utf-8")).HexDigest()
  4. Calcola la firma. Per fare ciò, ricava una chiave di firma dalla tua chiave di accesso segreta. AWS La chiave derivata è specifica per la data, il servizio e la Regione AWS per un maggior livello di protezione. Utilizza la chiave derivata per firmare la richiesta. Per ulteriori informazioni, consulta Calcolare la firma per la versione 4 AWS della firma.

    Assicurati di implementare la funzioneGetSignatureKey per ricavare la tua chiave di firma. Se non hai ancora ricavato una chiave di firma, consulta Esempi su come ricavare una chiave di firma per Signature Version 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()).HexDigest

    La funzione HMAC(key, data) rappresenta una SHA256 funzione HMAC - che restituisce risultati in formato binario.

  5. Aggiungi le informazioni di firma alla richiesta e crea la richiestaURL.

    Dopo aver calcolato la firma, aggiungerla alla stringa di query. Per ulteriori informazioni, consulta Aggiungi la firma alla richiesta.

    Per prima cosa, aggiungi le informazioni di autenticazione alla stringa di query.

    canonical_querystring += "&X-Amz-Signature=" + signature

    In secondo luogo, crea il URL file per la richiesta.

    request_url = endpoint + canonical_uri + "?" + canonical_querystring

    Usa la richiesta URL con la tua WebSocket libreria a cui inviare la richiesta a Amazon Transcribe.

  6. La richiesta Amazon Transcribe deve includere le seguenti intestazioni. In genere queste intestazioni sono gestite dalla libreria WebSocket client.

    Host: transcribestreaming.us-west-2.amazonaws.com:8443 Connection: Upgrade Upgrade: websocket Origin: URI-of-WebSocket-client Sec-WebSocket-Version: 13 Sec-WebSocket-Key: randomly-generated-string
  7. Quando Amazon Transcribe riceve la WebSocket richiesta, risponde con una risposta di WebSocket aggiornamento. In genere la WebSocket libreria gestisce questa risposta e imposta un socket per le comunicazioni con Amazon Transcribe.

    Quella che segue è la risposta di Amazon Transcribe. Le interruzioni di riga sono state aggiunte per la leggibilità.

    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: RequestId Strict-Transport-Security: max-age=31536000 sec-websocket-accept: hash-of-the-Sec-WebSocket-Key-header
  8. Effettua la tua richiesta di WebSocket streaming.

    Dopo aver stabilito la WebSocket connessione, il client può iniziare a inviare una sequenza di frame audio, ciascuno codificato utilizzando la codifica del flusso di eventi.

    Ogni frame di dati contiene tre intestazioni combinate con un blocco di byte audio non elaborati; la tabella successiva indica queste intestazioni.

    Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valori (-8) UTF
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 evento
  9. Per terminare il flusso di dati, inviare un blocco audio in un messaggio codificato in base al flusso eventi.

    La risposta contiene byte grezzi codificati in base al flusso eventi nel payload. Esso contiene l'introduzione standard e le intestazioni seguenti:

    Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valore (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 evento

    Quando si decodifica la risposta binaria, si ottiene una JSON struttura contenente i risultati della trascrizione.

Gestione degli errori di streaming WebSocket

Se si verifica un'eccezione durante l'elaborazione della richiesta, Amazon Transcribe risponde con un WebSocket frame terminale contenente una risposta codificata del flusso di eventi. Questa risposta contiene le intestazioni descritte nella seguente tabella; il corpo della risposta contiene un messaggio di errore descrittivo. Dopo aver inviato la risposta all'eccezione, Amazon Transcribe invia un frame chiuso.

Lunghezza in byte nome intestazione Nome intestazione (stringa) Tipo di valore intestazione Lunghezza byte stringa valore Stringa di valore (UTF-8)
13 :content-type 7 16 application/json
15 :exception-type 7 varia varia, vedere di seguito
13 :message-type 7 9 exception

L'intestazione exception-type contiene uno dei seguenti valori.

  • BadRequestException: si è verificato un errore del client quando è stato creato il flusso o si è verificato un errore durante lo streaming dei dati. Assicurati che il client sia pronto ad accettare i dati e riprova la richiesta.

  • InternalFailureException: Amazon Transcribe ha avuto un problema durante la stretta di mano con il cliente. Riprova la richiesta.

  • LimitExceededException: il client ha superato il limite di streaming simultaneo. Per ulteriori informazioni, consulta Amazon Transcribe Limiti. Riduci il numero di flussi in fase di trascrizione.

  • UnrecognizedClientException: La richiesta di WebSocket aggiornamento è stata firmata con una chiave di accesso o una chiave segreta errata. Assicurati di aver creato correttamente la chiave di accesso e riprova la richiesta.

Amazon Transcribe può anche restituire uno qualsiasi degli errori di servizio più comuni. Per visualizzare un elenco, consulta Errori comuni.

Codifica del flusso di eventi

Amazon Transcribe utilizza un formato chiamato Event Stream Encoding per le trascrizioni in streaming.

La codifica del flusso di eventi offre la comunicazione bidirezionale tra un client e un server. I frame di dati inviati al servizio di Amazon Transcribe streaming sono codificati in questo formato. Amazon Transcribe Anche la risposta di utilizza questa codifica.

Ogni messaggio è composto da due sezioni: è costituita da due sezioni: l'introduzione e i dati. L'introduzione è composta da:

  1. Lunghezza totale dei byte del messaggio

  2. Lunghezza in byte combinati di tutte le intestazioni

La sezione dei dati è composta da:

  1. Headers

  2. Payload

Ogni sezione termina con un checksum di ridondanza ciclica check () intero big-endian a 4 byte. CRC Il CRC checksum del messaggio è sia per la sezione preludio che per la sezione dati. Amazon Transcribe utilizza CRC32 (spesso indicato come GZIPCRC32) per calcolare entrambi. CRCs Per ulteriori informazioni in meritoCRC32, vedere la versione 4.3 delle specifiche GZIP del formato di file.

La lunghezza totale del messaggio, inclusi introduzione ed entrambi i checksum, è pari a 16 byte.

Il seguente diagramma mostra i componenti che compongono un messaggio e un'intestazione. Sono presenti più intestazioni per messaggio.

Uno schema dei componenti di un messaggio e un'intestazione per una trascrizione in streaming.

Ogni messaggio contiene i seguenti componenti:

  • Preludio: è composto da due campi da 4 byte, per un totale fisso di 8 byte.

    • Primi 4 byte: si tratta della lunghezza in byte interi big-endian dell'intero messaggio, incluso il campo della lunghezza a 4 byte.

    • Secondi 4 byte:Si tratta della lunghezza in byte interi big-endian della porzione delle “intestazioni” del messaggio, escluso il campo della lunghezza delle “intestazioni”.

  • Prelude CRC: il CRC checksum a 4 byte per la parte preludio del messaggio, escluso il messaggio stesso. CRC Il preludio è separato dal messaggio. CRC CRC Ciò garantisce che sia Amazon Transcribe possibile rilevare immediatamente le informazioni danneggiate relative alla lunghezza in byte senza causare errori, come sovraccarichi del buffer.

  • Intestazioni: i metadati per l'annotazione del messaggio, come il tipo di messaggio e il tipo di contenuto. I messaggi hanno più intestazioni, che sono coppie chiave:valore, in cui la chiave è una stringa -8. UTF Le “intestazioni” possono essere visualizzate in qualsiasi ordine nella relativa porzione del messaggio e vengono visualizzate una sola volta.

  • Payload: il contenuto audio da trascrivere.

  • Messaggio CRC: il CRC checksum a 4 byte dall'inizio del messaggio all'inizio del checksum. Cioè, tutto ciò che è contenuto nel messaggio tranne il messaggio stesso. CRC

L'header frame è il frame di autorizzazione per la trascrizione in streaming. Amazon Transcribe utilizza il valore dell'intestazione di autorizzazione come base per generare una catena di intestazioni di autorizzazione per i frame di dati nella richiesta.

Ogni intestazione contiene i seguenti componenti; ci sono più intestazioni per frame.

  • Lunghezza in byte del nome dell'intestazione: la lunghezza dei byte del nome dell'intestazione.

  • Nome dell'intestazione: il nome dell'intestazione che indica il tipo di intestazione. Per i valori validi, consulta le seguenti descrizioni di frame.

  • Tipo di valore dell'intestazione: un'enumerazione che indica il tipo di valore dell'intestazione. L'elenco seguente mostra i valori possibili per l'intestazione e ciò che indicano.

    • 0 – TRUE

    • 1 – FALSE

    • 2 – BYTE

    • 3 – SHORT

    • 4 – INTEGER

    • 5 – LONG

    • 6 – BYTE ARRAY

    • 7 – STRING

    • 8 – TIMESTAMP

    • 9 – UUID

  • Lunghezza dei byte della stringa di valori: la lunghezza dei byte della stringa di valori dell'intestazione.

  • Valore dell'intestazione: il valore della stringa dell'intestazione. I valori validi per questo campo dipendono dal tipo di intestazione. Per ulteriori informazioni, consultare Configurazione di uno HTTP stream /2 o Configurazione di uno WebSocket stream.

Frame di dati

Ogni richiesta di streaming contiene uno o più frame di dati. Esistono due fasi per creare un frame di dati:

  1. Combinazione di dati audio non elaborati con metadati per creare il payload della richiesta.

  2. Combinazione del payload con una firma per formare il messaggio di evento inviato a Amazon Transcribe.

Il seguente diagramma ne mostra il funzionamento.

I componenti di un frame di dati per una trascrizione in streaming.