Configuration d’une transcription en streaming - Amazon Transcribe

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d’une transcription en streaming

Cette section développe la section principale consacrée au streaming. Il est destiné à fournir des informations aux utilisateurs qui souhaitent configurer leur flux avec HTTP /2 ou WebSockets directement, plutôt qu'avec un AWS SDK. Les informations contenues dans cette section peuvent également être utilisées pour créer les vôtresSDK.

Important

Nous vous recommandons vivement d'utiliser SDKs plutôt que HTTP /2 et WebSockets directement. SDKssont la méthode la plus simple et la plus fiable pour transcrire des flux de données. Pour démarrer le streaming à l'aide d'un AWS SDK, voirTranscription avec les SDK AWS.

Les composants clés d'un protocole HTTP /2 pour le streaming des demandes de transcription Amazon Transcribe sont les suivants :

  • Une image d’en-tête. Il contient les en-têtes HTTP /2 de votre demande et une signature dans l'en-tête d'autorisation qui Amazon Transcribe sert de signature initiale pour signer les trames de données.

  • Une ou plusieurs trames de message dans encodage de flux d’événements qui contiennent des métadonnées et des octets audio bruts.

  • Une image de fin. Il s’agit d’un message signé dans un encodage de flux d’événements avec un corps vide.

Note

Amazon Transcribe ne prend en charge qu'un seul flux par session HTTP /2. Si vous essayez d’utiliser plusieurs flux, votre demande de transcription échouera.

  1. Associez la politique suivante au IAM rôle qui fait la demande. Voir Ajouter IAM des politiques pour plus d'informations.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-http2-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscription", "Resource": "*" } ] }
  2. Pour démarrer la session, envoyez une demande HTTP /2 à 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

    Les opérations et paramètres supplémentaires sont répertoriés dans la APIréférence ; les paramètres communs à toutes les AWS API opérations sont répertoriés dans la section Paramètres communs.

    Amazon Transcribe envoie la réponse suivante :

    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. Créez un événement audio contenant vos données audio. Combinez les en-têtes décrits dans le tableau suivant avec une partie des octets audio dans un message encodé en événement. Pour créer la charge utile du message d’événement, utilisez une mémoire tampon en octet brut.

    Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 event

    Les données binaires de cet exemple de demande sont encodées en base64. Dans une requête réelle, les données sont des octets bruts.

    :content-type: "application/vnd.amazon.eventstream" :event-type: "AudioEvent" :message-type: "event" UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA==
  4. Créez un message audio contenant vos données audio.

    1. L’image de données de votre message audio contient des en-têtes encodés en événement comprenant la date actuelle et une signature pour la partie audio et l’événement audio.

      Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Valeur
      16 :chunk-signature 6 varie signature générée
      5 :date 8 8 timestamp

      Les données binaires de cette demande sont encodées en base64. Dans une requête réelle, les données sont des octets bruts.

      :date: 2019-01-29T01:56:17.291Z :chunk-signature: signature AAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5 cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA AAAAAAAAAAAA//8CAP3/BAC7QLFf
    2. Créez une chaîne à signer, comme indiqué à la section Créer une chaîne à signer pour Signature Version 4. Votre chaîne suit le format suivant :

      String stringToSign = "AWS4-HMAC-SHA256" + "\n" + DateTime + "\n" + Keypath + "\n" + Hex(priorSignature) + "\n" + HexHash(nonSignatureHeaders) + "\n" + HexHash(payload);
      • DateTime: date et heure de création de la signature. Le format est YYYYMMDDTHHMMSSZ le suivant : où YYYY =année, MM=mois, DD=jour, HH=heure, MM=minute, SS=secondes, et « T » et « Z » sont des caractères fixes. Pour plus d’informations, consultez la section Gestion des dates dans Signature Version 4.

      • Keypath : portée de la signature au format date/region/service/aws4_request. Par exemple, 20220127/us-west-2/transcribe/aws4_request.

      • Hex : fonction qui encode l’entrée sous forme de représentation hexadécimale.

      • priorSignature: signature du cadre précédent. Pour la première image de données, utilisez la signature de l’image d’en-tête.

      • HexHash: fonction qui crée d'abord un hachage SHA -256 de son entrée, puis utilise la fonction Hex pour coder le hachage.

      • nonSignatureHeaders: L' DateTime en-tête est codé sous forme de chaîne.

      • payload : mémoire tampon en octets contenant les données d’événement audio.

    3. Dérivez une clé de signature de votre clé d'accès AWS secrète et utilisez-la pour signer lestringToSign. La clé dérivée est spécifique à la date, au service et à la Région AWS, pour un niveau de protection plus élevé. Pour plus d’informations, consultez la section Calculer la signature pour Signature Version 4 AWS.

      Assurez-vous de mettre en œuvre la fonction GetSignatureKey pour dériver votre clé de signature. Si vous n’avez pas encore dérivé de clé de signature, reportez-vous à la section Exemples de dérivation d’une clé de signature pour Signature Version 4.

      String signature = HMACSHA256(derivedSigningKey, stringToSign);
      • HMACSHA256: fonction qui crée une signature à l'aide de la fonction de hachage SHA -256.

      • derivedSigningKey: la clé de signature Signature version 4.

      • stringToSign: chaîne que vous avez calculée pour le bloc de données.

      Une fois que vous avez calculé la signature pour l’image de données, construisez une mémoire tampon en octets contenant la date, la signature et la charge utile de l’événement audio. Envoyez le tableau en octets à Amazon Transcribe pour la transcription.

  5. Pour indiquer que le flux audio est complet, envoyez une image de fin (une image de données vide) ne contenant que la date et une signature. L’image de fin se construit de la même façon qu’une image de données.

    Amazon Transcribe répond par un flux d'événements de transcription, envoyé à votre application. Cette réponse est encodée en flux d’événements. Elle contient le préambule standard et les en-têtes suivants :

    Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 event

    Les événements sont envoyés en octet brut. Dans cet exemple, les octets sont encodés en base64.

    AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI 5eGn83jdBwCaRUBJA+eaDafqjqI=

    Pour voir les résultats de la transcription, décodez les octets bruts à l’aide de l’encodage de flux d’événements :

    :content-type: "application/vnd.amazon.eventstream" :event-type: "TranscriptEvent" :message-type: "event" { "Transcript": { "Results": [ results ] } }
  6. Pour mettre fin à votre flux, envoyez un événement audio vide à Amazon Transcribe. Créez l’événement audio comme n’importe quel événement, mais avec une charge utile vide. Signez l’événement et incluez la signature dans l’en-tête :chunk-signature, comme suit :

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

Gestion de HTTP /2 erreurs de streaming

Si une erreur se produit lors du traitement de votre flux multimédia, Amazon Transcribe envoie une réponse d'exception. La réponse est encodée en flux d’événement.

Elle contient le préambule standard et les en-têtes suivants :

Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
13 :content-type 7 16 application/json
11 :event-type 7 19 BadRequestException
13 :message-type 7 9 exception

Lorsque la réponse d’exception est décodée, elle contient les informations suivantes :

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

Les composants clés d'un WebSocketprotocole de diffusion en continu des demandes de transcription Amazon Transcribe sont les suivants :

  • La demande de mise à niveau. Il contient les paramètres de requête pour votre demande, ainsi qu'une signature qui Amazon Transcribe sert de signature initiale pour signer les blocs de données.

  • Une ou plusieurs trames de message dans encodage de flux d’événements qui contiennent des métadonnées et des octets audio bruts.

  • Une image de fin. Il s’agit d’un message signé dans un encodage de flux d’événements avec un corps vide.

Note

Amazon Transcribe ne prend en charge qu'un seul flux par WebSocket session. Si vous essayez d’utiliser plusieurs flux, votre demande de transcription échouera.

  1. Associez la politique suivante au IAM rôle qui fait la demande. Voir Ajouter IAM des politiques pour plus d'informations.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-websocket-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscriptionWebSocket", "Resource": "*" } ] }
  2. Pour démarrer la session, créez un présigné URL au format suivant. Les sauts de ligne ont été ajoutés pour faciliter la lecture.

    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
    Note

    La valeur maximale pour X-Amz-Expires est de 300 (5 minutes).

    Les opérations et paramètres supplémentaires sont répertoriés dans la APIréférence ; les paramètres communs à toutes les AWS API opérations sont répertoriés dans la section Paramètres communs.

    Pour créer la signature URL adaptée à votre demande et créer la signature de la version 4 de la signature, reportez-vous aux étapes suivantes. Les exemples sont en pseudo-code.

    1. Créez une demande canonique. Une demande canonique est une chaîne qui inclut des informations de votre demande dans un format normalisé. Cela garantit que lors de la AWS réception de la demande, elle peut calculer la même signature que celle que vous avez créée pour votreURL. Pour plus d’informations, consultez la section Créer une demande canonique pour 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. Créez un canoniqueURI, qui est la partie située URI entre le domaine et la chaîne de requête.

      canonical_uri = "/stream-transcription-websocket"
    3. Créez les en-têtes canoniques et les en-têtes signés. Notez la barre oblique \n dans les en-têtes canoniques.

      • Ajoutez le nom d’en-tête en minuscules suivi du signe deux points (:).

      • Ajoutez une liste de valeurs séparées par des virgules pour cet en-tête. Ne triez pas les valeurs dans les en-têtes ayant plusieurs valeurs.

      • Ajoutez une nouvelle ligne (\n).

      canonical_headers = "host:" + host + "\n" signed_headers = "host"
    4. Associez l’algorithme à l’algorithme de hachage. Utilisez SHA-256.

      algorithm = "AWS4-HMAC-SHA256"
    5. Créez la portée des informations d’identification qui déterminera la clé dérivée de la date, de la Région AWS et du service. Par exemple, 20220127/us-west-2/transcribe/aws4_request.

      credential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request"
    6. Créez la chaîne de requête canonique. Les valeurs des chaînes de requête doivent être URI codées et triées par nom.

      • Triez les noms de paramètre selon le point de code de caractère dans l’ordre croissant. Les paramètres avec des noms en double doivent être triés par valeur. Par exemple, un nom de paramètre qui commence par la lettre majuscule F précède un nom de paramètre qui commence par la lettre minuscule b.

      • Ne URI codez aucun des caractères non réservés définis par RFC 3986 : A-Z, a-z, 0-9, tiret (-), trait de soulignement (_), point (.) et tilde (~).

      • Encodez de pourcentage tous les autres caractères avec %XY, où X et Y représentent les caractères hexadécimaux (0 à 9 et les lettres majuscules A à F). Par exemple, le caractère d'espace doit être codé sous la forme %20 (ne pas inclure « + », comme le font certains schémas de codage) ; les caractères étendus de UTF -8 doivent être au format %XY%ZA%BC.

      • Encodez deux fois tous les caractères égaux à (=) dans les valeurs de paramètre.

      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. Créez un hachage de la charge utile. Pour une demande GET, la charge utile est une chaîne vide.

      payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
    8. Combinez les éléments suivants pour créer la demande canonique.

      canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
  3. Créez la chaîne à signer qui contient les informations des métadonnées sur votre demande. Vous utilisez la chaîne à signer dans l’étape suivante lorsque vous calculez la signature de la demande. Pour plus d’informations, consultez la section Créer une chaîne à signer pour Signature Version 4.

    string_to_sign=algorithm + "\n" + amz_date + "\n" + credential_scope + "\n" + HashSHA256(canonical_request.Encode("utf-8")).HexDigest()
  4. Calculez la signature. Pour ce faire, dérivez une clé de signature de votre clé d'accès AWS secrète. La clé dérivée est spécifique à la date, au service et à la Région AWS, pour un niveau de protection plus élevé. Utilisez cette clé dérivée pour signer la demande. Pour plus d'informations, voir Calculer la signature pour la version 4 de la AWS signature.

    Assurez-vous de mettre en œuvre la fonction GetSignatureKey pour dériver votre clé de signature. Si vous n’avez pas encore dérivé de clé de signature, reportez-vous à la section Exemples de dérivation d’une clé de signature pour 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 fonction HMAC(key, data) représente une SHA256 fonction HMAC - qui renvoie les résultats au format binaire.

  5. Ajoutez les informations de signature à la demande et créez la demandeURL.

    Une fois que vous avez calculé la signature, vous l’ajoutez à la chaîne de requête. Pour plus d’informations, consultez la section Ajout de la signature à la demande.

    Commencez par ajouter les informations d’authentification à la chaîne de requête.

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

    Ensuite, créez le URL pour la demande.

    request_url = endpoint + canonical_uri + "?" + canonical_querystring

    Utilisez la demande URL auprès de votre WebSocket bibliothèque pour faire la demande à Amazon Transcribe.

  6. La demande Amazon Transcribe doit inclure les en-têtes suivants. Ces en-têtes sont généralement gérés par votre bibliothèque WebSocket cliente.

    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. Lorsqu'il Amazon Transcribe reçoit votre WebSocket demande, il répond par une réponse de WebSocket mise à niveau. En général, votre WebSocket bibliothèque gère cette réponse et met en place un socket pour les communications avec Amazon Transcribe.

    Voici la réponse de Amazon Transcribe. Les sauts de ligne ont été ajoutés pour faciliter la lecture.

    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. Faites votre demande de WebSocket streaming.

    Une fois la WebSocket connexion établie, le client peut commencer à envoyer une séquence de trames audio, chacune étant codée à l'aide du codage du flux d'événements.

    Chaque trame de données contient trois en-têtes de données combinés à un fragment d’octets audio bruts. Le tableau suivant décrit ces en-têtes.

    Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 event
  9. Pour mettre fin au flux de données, envoyez un fragment audio vide dans un message codé de flux d’événement.

    La réponse contient des octets bruts codés de flux d’événement dans la charge utile. Elle contient le préambule standard et les en-têtes suivants :

    Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 event

    Lorsque vous décodez la réponse binaire, vous obtenez une JSON structure contenant les résultats de la transcription.

Gestion des erreurs WebSocket de streaming

Si une exception survient lors du traitement de votre demande, Amazon Transcribe répond par une WebSocket trame de terminal contenant une réponse codée dans le flux d'événements. Cette réponse contient la description des en-têtes dans le tableau suivant, et le corps de la réponse contient un message d’erreur descriptif. Après avoir envoyé la réponse d'exception, Amazon Transcribe envoie un cadre fermé.

Longueur en octets du nom de l’en-tête Nom de l’en-tête (chaîne) Type de valeur de l’en-tête Longueur en octets de la chaîne de valeur Chaîne de valeur (UTF-8)
13 :content-type 7 16 application/json
15 :exception-type 7 varie varie, voir ci-dessous
13 :message-type 7 9 exception

L’en-tête exception-type contient l’une des valeurs suivantes.

  • BadRequestException : une erreur client s’est produite lors de la création du flux, ou une erreur s’est produite lors de la diffusion de données. Assurez-vous que votre client est prêt à accepter les données et réessayez votre demande.

  • InternalFailureException: Amazon Transcribe a eu un problème lors de la poignée de main avec le client. Réessayez votre demande.

  • LimitExceededException : le client a dépassé la limite de flux simultanés. Pour plus d’informations, consultez Limites Amazon Transcribe. Réduisez le nombre de flux que vous transcrivez.

  • UnrecognizedClientException: La demande de WebSocket mise à niveau a été signée avec une clé d'accès ou une clé secrète incorrecte. Assurez-vous que vous créez correctement la clé d’accès et renouvelez votre demande.

Amazon Transcribe peut également renvoyer toutes les erreurs de service courantes. Pour obtenir une liste, consultez Erreurs courantes.

Encodage de flux d’événements

Amazon Transcribe utilise un format appelé encodage du flux d'événements pour les transcriptions en continu.

L’encodage de flux d’événements permet une communication bidirectionnelle entre un client et un serveur. Les trames de données envoyées au service de Amazon Transcribe streaming sont codées dans ce format. La réponse de utilise Amazon Transcribe également ce codage.

Chaque message est constitué de deux sections : le préambule et les données. Le préambule est composé des éléments suivants :

  1. La longueur totale du message en octets

  2. La longueur en octets de tous les en-têtes combinés

La section des données comprend :

  1. En-têtes

  2. Charge utile

Chaque section se termine par une somme de contrôle cyclique check () de 4 octets en entier de 4 octets. CRC La CRC somme de contrôle du message concerne à la fois la section de prélude et la section de données. Amazon Transcribe utilise CRC32 (souvent appelé GZIPCRC32) pour calculer les deuxCRCs. Pour plus d'informationsCRC32, consultez la version 4.3 de la spécification GZIP du format de fichier.

La surcharge totale de message, incluant le préambule et les deux totaux de contrôle, s’élève à 16 octets.

Le schéma suivant montre les composants qui constituent un message et un en-tête. Il y a plusieurs en-têtes par message.

Schéma des composants d’un message et d’un en-tête pour une transcription en streaming.

Chaque message comporte les composants suivants :

  • Préambule : se compose de deux champs de 4 octets, pour un total fixe de 8 octets.

    • Premier champ de 4 octets : entier de poids fort de l’ensemble du message, y compris ce champ de 4 octets.

    • Deuxième champ de 4 octets : entier de poids fort de la partie des en-têtes du message, sans le champ des en-têtes.

  • Prélude CRC : CRC somme de contrôle de 4 octets pour la partie prélude du message, à l'exception de la partie elle-même. CRC Le prélude a un caractère distinct CRC du messageCRC. Cela permet de Amazon Transcribe détecter immédiatement les informations corrompues sur la longueur des octets sans provoquer d'erreurs, telles que des dépassements de mémoire tampon.

  • En-têtes : métadonnées qui décrivent le message (par exemple, type du message, de contenu, etc.). Les messages ont plusieurs en-têtes, qui sont des paires clé:valeur, où la clé est une UTF chaîne -8. Les en-têtes peuvent être insérés dans n’importe quel ordre dans la partie en-têtes du message, et chaque en-tête ne peut apparaître qu’une seule fois.

  • Charge utile : contenu audio qui doit être transcrit.

  • Message CRC : CRC somme de contrôle de 4 octets comprise entre le début du message et le début de la somme de contrôle. C'est-à-dire tout ce qui se trouve dans le message sauf CRC lui-même.

Le cadre d'en-tête est le cadre d'autorisation pour la transcription en streaming. Amazon Transcribe utilise la valeur de l'en-tête d'autorisation comme point de départ pour générer une chaîne d'en-têtes d'autorisation pour les trames de données de la demande.

Chaque en-tête contient les composants suivants ; il existe plusieurs en-têtes par image.

  • Longueur en octet du nom de l’en-tête : longueur en octet du nom de l’en-tête.

  • Nom de l’en-tête : nom de l’en-tête, qui indique son type. Pour connaître les valeurs valides, consultez les descriptions d’image suivantes :

  • Type de valeur d’en-tête : nombre indiquant la valeur d’en-tête. La liste suivante indique les valeurs possibles pour l’en-tête et ce qu’elles indiquent.

    • 0 – TRUE

    • 1 – FALSE

    • 2 – BYTE

    • 3 – SHORT

    • 4 – INTEGER

    • 5 – LONG

    • 6 – BYTE ARRAY

    • 7 – STRING

    • 8 – TIMESTAMP

    • 9 – UUID

  • Longueur en octet de la chaîne de valeur : longueur en octet de la chaîne de valeur d’en-tête.

  • Valeur de l’en-tête : valeur de la chaîne de l’en-tête. Les valeurs valides de ce champ dépendent du type d’en-tête. Pour plus d’informations, consultez les sections Configuration d'un flux HTTP /2 ou Configuration d'un WebSocket stream.

Images de données

Chaque requête en streaming contient une ou plusieurs images de données. La création d’une image de données se fait en deux étapes :

  1. Combiner des données audio brutes aux métadonnées pour créer la charge utile de votre requête.

  2. Combiner la charge utile à une signature pour former le message d’événement envoyé à Amazon Transcribe.

Le schéma suivant illustre leur fonctionnement.

Composants d’une image de données pour une transcription en streaming.