Configuración de una transcripción de streaming - Amazon Transcribe

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de una transcripción de streaming

Esta sección amplía la sección principal de streaming. Su objetivo es proporcionar información a los usuarios que desean configurar su transmisión con HTTP/2 o WebSockets directamente, en lugar de hacerlo con un AWS SDK. La información de esta sección también se puede utilizar para crear su propio SDK.

importante

Recomendamos encarecidamente usar los SDK en lugar de usar HTTP/2 directamente. WebSockets Los SDK son el método más sencillo y fiable para transcribir flujos de datos. Para empezar a transmitir con un AWS SDK, consulte. Transcripción con los SDK AWS

Los componentes clave de un protocolo HTTP/2 para transmitir solicitudes de transcripción Amazon Transcribe son:

  • Una trama de encabezado. Contiene los encabezados HTTP/2 de su solicitud y una firma en el encabezado de autorización que se Amazon Transcribe utiliza como firma inicial para firmar los marcos de datos.

  • Una o más tramas de mensajes en la codificación de secuencias de eventos que contienen metadatos y bytes de audio sin procesar.

  • Una trama final. Se trata de un mensaje firmado en la codificación de secuencias de eventos con un cuerpo vacío.

nota

Amazon Transcribe solo admite una transmisión por sesión de HTTP/2. Si intenta usar varias transmisiones, la solicitud de transcripción fallará.

  1. Adjunte la siguiente política al IAM rol que realiza la solicitud. Consulte Añadir IAM políticas para obtener más información.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-http2-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscription", "Resource": "*" } ] }
  2. Para iniciar la sesión, envíe una solicitud 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

    Las operaciones y los parámetros adicionales se enumeran en la Referencia de la API; los parámetros comunes a todas las operaciones de la API de AWS se enumeran en la sección Parámetros comunes.

    Amazon Transcribe envía la siguiente respuesta:

    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. Cree un evento de audio que contenga sus datos de audio. Combine los encabezados, que se describen en la siguiente tabla, con un fragmento de bytes de audio en un mensaje codificado para eventos. Para crear la carga del mensaje del evento, utilice un búfer con un formato de bytes sin procesar.

    Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 : message-type 7 5 evento

    Los datos binarios de este ejemplo están codificados en base64. En una solicitud real, los datos serán bytes sin procesar.

    :content-type: "application/vnd.amazon.eventstream" :event-type: "AudioEvent" :message-type: "event" UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA==
  4. Cree un mensaje de audio que contenga sus datos de audio.

    1. Su trama de datos contiene encabezados de codificación de eventos que incluyen la fecha actual y una firma del fragmento y el evento de audio.

      Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Valor
      16 :chunk-signature 6 varía firma generada
      5 :date 8 8 Marca de tiempo

      Los datos binarios de esta solicitud están codificados en base64. En una solicitud real, los datos serán bytes sin procesar.

      :date: 2019-01-29T01:56:17.291Z :chunk-signature: signature AAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5 cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA AAAAAAAAAAAA//8CAP3/BAC7QLFf
    2. Construya una cadena para firmar, tal y como se describe en la sección Creación de una cadena de firma para Signature Version 4. La cadena debe seguir este formato:

      String stringToSign = "AWS4-HMAC-SHA256" + "\n" + DateTime + "\n" + Keypath + "\n" + Hex(priorSignature) + "\n" + HexHash(nonSignatureHeaders) + "\n" + HexHash(payload);
      • DateTime: La fecha y la hora en que se creó la firma. El formato es YYYMMDDTHHMMSSZ, donde YYYY=año, MM=mes, DD=día, HH=hora, MM=minuto, SS=segundos y 'T' y 'Z' son caracteres fijos. Para obtener más información, consulte Control de fechas en Signature Version 4.

      • Keypath: ámbito de la firma en formato date/region/service/aws4_request. Por ejemplo, 20220127/us-west-2/transcribe/aws4_request.

      • Hex: función que codifica la entrada en una representación hexadecimal.

      • priorSignature: firma de la trama anterior. En la primera trama de datos, utilice la firma de la trama del encabezado.

      • HexHash: función que primero crea un hash SHA-256 de su entrada y, a continuación, utiliza la función Hex para codificar el hash.

      • non SignatureHeaders: el DateTime encabezado codificado como una cadena.

      • payload: búfer de bytes que contiene los datos del evento de audio.

    3. Obtenga una clave de firma de su clave de acceso AWS secreta y utilícela para firmar lastringToSign. Para un mayor grado de protección, la clave derivada es específica de la fecha, el servicio y Región de AWS. Para obtener más información, consulte la sección Calcular la firma para Signature Version 4 de AWS.

      Asegúrese de implementar la función GetSignatureKey para obtener la clave de firma. Si aún no ha obtenido una clave de firma, consulte los ejemplos de cómo obtener una clave de firma para Signature Version 4.

      String signature = HMACSHA256(derivedSigningKey, stringToSign);
      • HMACSHA256: función que crea una firma utilizando la función hash SHA-256.

      • derivada SigningKey: la clave de firma de la versión 4 de Signature.

      • cadena ToSign: la cadena que calculó para el marco de datos.

      Después de calcular la firma de la trama de datos, cree un búfer de bytes que contenga la fecha, la firma y la carga del evento de audio. Envíe la matriz de bytes a Amazon Transcribe para que la transcriba.

  5. Para indicar que la secuencia de audio se ha completado, envíe una trama (una trama de datos vacía) que contenga únicamente la fecha y la firma. Cree esta trama final del mismo modo que crea las tramas de datos.

    Amazon Transcribe responde con un flujo de eventos de transcripción, que se envía a su aplicación. Esta respuesta es la secuencia de eventos codificada. Contienen el preludio estándar y los siguientes encabezados.

    Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 : message-type 7 5 evento

    Los eventos se envían en formato de bytes sin procesar. En este ejemplo, los bytes están codificados en base64.

    AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI 5eGn83jdBwCaRUBJA+eaDafqjqI=

    Para ver los resultados de la transcripción, descodifique los bytes sin procesar utilizando la codificación de secuencias de eventos.

    :content-type: "application/vnd.amazon.eventstream" :event-type: "TranscriptEvent" :message-type: "event" { "Transcript": { "Results": [ results ] } }
  6. Para finalizar la transmisión, envíe un evento de audio vacío a Amazon Transcribe. Cree el evento de audio exactamente igual que cualquier otro, pero utilice una carga vacía. Firme el evento e incluya la firma en el encabezado :chunk-signature, tal y como se describe a continuación:

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

Cómo gestionar los errores de streaming de HTTP/2

Si se produce un error al procesar la transmisión multimedia, Amazon Transcribe envía una respuesta de excepción. La respuesta es la secuencia de eventos codificada.

La respuesta contiene el preludio estándar y los siguientes encabezados:

Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
13 :content-type 7 16 application/json
11 :event-type 7 19 BadRequestExcepción
13 : message-type 7 9 exception

Cuando se descodifica, la respuesta de excepción contiene la siguiente información:

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

Los componentes clave de un WebSocketprotocolo para transmitir solicitudes de transcripción Amazon Transcribe son:

  • La solicitud de actualización. Contiene los parámetros de consulta de su solicitud y una firma que se Amazon Transcribe utiliza como firma inicial para firmar los marcos de datos.

  • Una o más tramas de mensajes en la codificación de secuencias de eventos que contienen metadatos y bytes de audio sin procesar.

  • Una trama final. Se trata de un mensaje firmado en la codificación de secuencias de eventos con un cuerpo vacío.

nota

Amazon Transcribe solo admite una transmisión por WebSocket sesión. Si intenta usar varias transmisiones, la solicitud de transcripción fallará.

  1. Adjunta la siguiente política al IAM rol que realiza la solicitud. Consulte Añadir IAM políticas para obtener más información.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-websocket-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscriptionWebSocket", "Resource": "*" } ] }
  2. Para iniciar la sesión, cree una URL prefirmada con el siguiente formato. Se han añadido saltos de línea para facilitar la lectura.

    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

    El valor máximo de X-Amz-Expires es 300 (5 minutos).

    Las operaciones y los parámetros adicionales se enumeran en la Referencia de la API; los parámetros comunes a todas las operaciones de la API de AWS se enumeran en la sección Parámetros comunes.

    Para construir la URL de la solicitud y crear la firma de Signature Version 4, utilice los siguientes pasos. Los ejemplos están en pseudocódigo.

    1. Cree una solicitud canónica. Cree una solicitud canónica que incluya información de su solicitud en un formato estandarizado. Esto garantiza que, cuando AWS reciba la solicitud, pueda calcular la misma firma que creaste para tu URL. Para obtener más información, consulte Creación de una solicitud canónica para 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. Cree el URI canónico, que es la parte del URI entre el dominio y la cadena de consulta.

      canonical_uri = "/stream-transcription-websocket"
    3. Cree los encabezados canónicos y los encabezados firmados. Tenga en cuenta la \n final en los encabezados canónicos.

      • Agregue el nombre de encabezado en minúsculas seguido de dos puntos ( : ).

      • Agregue una lista de valores separados por comas para ese encabezado. No ordene los valores de los encabezados que tengan múltiples valores.

      • Agregue una nueva línea (\n).

      canonical_headers = "host:" + host + "\n" signed_headers = "host"
    4. Haga coincidir el algoritmo con el algoritmo de hash. Utilice SHA-256.

      algorithm = "AWS4-HMAC-SHA256"
    5. Cree el ámbito de credenciales, que abarca la clave derivada de la fecha, Región de AWS y el servicio. Por ejemplo, 20220127/us-west-2/transcribe/aws4_request.

      credential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request"
    6. Cree la cadena de consulta canónica. Los valores de cadena de la consulta deben estar codificados en URI y ordenados por nombre.

      • Ordene los nombres de los parámetros en orden ascendente según el punto del código de caracteres. Los parámetros con nombres duplicados deben ordenarse por valor. Por ejemplo, un nombre de parámetro que comienza por la letra mayúscula F precede a un nombre de parámetro que empieza por la letra minúscula b.

      • No codifique según las normas de los URI ninguno de los caracteres no reservados definidos en la norma RFC 3986: A-Z, a-z, 0-9, guion (-), guion bajo (_), punto (. ) y tilde ( ~ ).

      • Codifique con signos de porcentaje el resto de los caracteres con %XY, donde X e Y son caracteres hexadecimales (0-9 y A-F mayúsculas). Por ejemplo, el carácter de espacio debe codificarse como %20 (no incluya el signo “+” como en algunos esquemas de codificación) y los caracteres extendidos UTF-8 deben indicarse con el formato %XY%ZA%BC.

      • Codifique dos veces los caracteres de equivalencia (=) en los valores de los parámetros.

      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. Cree un hash de la carga. Para una solicitud GET, la carga es una cadena vacía.

      payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
    8. Combine los elementos siguientes para crear la solicitud canónica.

      canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
  3. Cree la cadena para firmar, que contiene metainformación sobre su solicitud. Puede utilizar la cadena para firmar en el siguiente paso cuando calcule la firma de la solicitud. Para obtener más información, consulte la sección Creación de una cadena para firmar para Signature Version 4.

    string_to_sign=algorithm + "\n" + amz_date + "\n" + credential_scope + "\n" + HashSHA256(canonical_request.Encode("utf-8")).HexDigest()
  4. Calcule la firma. Para ello, extrae una clave de firma de tu clave de acceso AWS secreta. Para un mayor grado de protección, la clave derivada es específica de la fecha, el servicio y Región de AWS. Utilice la clave derivada para firmar la solicitud. Para obtener más información, consulte Calcular la AWS firma para la versión 4.

    Asegúrese de implementar la función GetSignatureKey para obtener la clave de firma. Si aún no ha obtenido una clave de firma, consulte los ejemplos de cómo obtener una clave de firma para 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 función HMAC(key, data) representa una función HMAC-SHA256 que devuelve resultados en formato binario.

  5. Agregue información de firma a la solicitud y cree la URL de la solicitud.

    Después de calcular la firma, agrégesela a la cadena de la solicitud. Para obtener más información, consulte Agregar la firma de la solicitud.

    En primer lugar, agregue la información de autenticación a la cadena de consulta.

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

    En segundo lugar, cree la URL de la solicitud.

    request_url = endpoint + canonical_uri + "?" + canonical_querystring

    Usa la URL de la solicitud junto con tu WebSocket biblioteca para realizar la solicitud Amazon Transcribe.

  6. La solicitud Amazon Transcribe debe incluir los siguientes encabezados. Por lo general, estos encabezados los administra la biblioteca de su 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. Cuando Amazon Transcribe recibe su WebSocket solicitud, responde con una respuesta de WebSocket actualización. Por lo general, la WebSocket biblioteca gestiona esta respuesta y configura un conector para comunicarse con ella Amazon Transcribe.

    La siguiente es la respuesta de Amazon Transcribe. Se han añadido saltos de línea para facilitar la lectura.

    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. Haz tu solicitud WebSocket de streaming.

    Una vez establecida la WebSocket conexión, el cliente puede empezar a enviar una secuencia de fotogramas de audio, cada uno codificado mediante la codificación de flujo de eventos.

    Cada trama de datos contiene tres encabezados combinados con un fragmento de bits de audio sin procesar. En la siguiente tabla se describen estos encabezados.

    Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 : message-type 7 5 evento
  9. Para cerrar el flujo de datos, envíe un fragmento de audio vacío en un mensaje codificado de secuencia de eventos.

    La respuesta contiene bytes sin procesar codificados de la secuencia de eventos en la carga. Contienen el preludio estándar y los siguientes encabezados.

    Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 : message-type 7 5 evento

    Cuando descodifique la respuesta binaria, dispondrá de una estructura JSON con los resultados de la transcripción.

Manejo de errores WebSocket de transmisión

Si se produce una excepción al procesar la solicitud, Amazon Transcribe responde con una WebSocket estructura de terminal que contiene una respuesta codificada en el flujo de eventos. La respuesta tiene los encabezados descritos en la siguiente tabla y el cuerpo de la respuesta contiene un mensaje de error descriptivo. Tras enviar la respuesta a la excepción, Amazon Transcribe envía un fotograma cerrado.

Longitud en bytes del nombre de encabezado Nombre de encabezado (cadena) Tipo de valor de encabezado Longitud en bytes de la cadena de valor Cadena de valor (UTF-8)
13 :content-type 7 16 application/json
15 : excepción-type 7 varía varía, consulte a continuación
13 : message-type 7 9 exception

El encabezado exception-type contiene uno de los siguientes valores:

  • BadRequestException: se produjo un error en el cliente al crear la secuencia, o se produjo un error al transmitir los datos. Asegúrese de que su cliente esté listo para aceptar los datos e intente realizar la solicitud de nuevo.

  • InternalFailureException: Amazon Transcribe tuve un problema durante el apretón de manos con el cliente. Intente volver a realizar la solicitud.

  • LimitExceededException: el cliente ha superado el límite de secuencias simultáneas. Para obtener más información, consulte Amazon Transcribe Límites. Reduzca el número de transmisiones que transcribe.

  • UnrecognizedClientException: La solicitud de WebSocket actualización se firmó con una clave de acceso o una clave secreta incorrectas. Asegúrese de crear correctamente la clave de acceso y vuelva a intentar realizar la solicitud.

Amazon Transcribe también puede devolver cualquiera de los errores de servicio más comunes. Para ver una lista, consulte Errores comunes.

Codificación de secuencias de eventos

Amazon Transcribe utiliza un formato denominado codificación de flujo de eventos para la transmisión de transcripciones.

La codificación de secuencias de eventos permite establecer una comunicación bidireccional entre un cliente y un servidor. Los marcos de datos enviados al servicio Amazon Transcribe de streaming se codifican en este formato. La respuesta de Amazon Transcribe también utiliza esta codificación.

Cada mensaje se compone de dos secciones: el preludio y los datos. La preludio se compone de:

  1. La longitud total de bytes del mensaje

  2. La longitud de bytes combinada de todos los encabezados

La sección de datos se compone de:

  1. Encabezados

  2. Carga

Cada sección termina con una suma de comprobación de redundancia cíclica (CRC) de un número entero big-endian de 4 bytes. La suma de comprobación CRC del mensaje es tanto para la sección de preludio como para la sección de datos. Amazon Transcribe utiliza CRC32 (a menudo denominado GZIP CRC32) para calcular ambos CRC. Para obtener más información sobre CRC32, consulte GZIP file format specification version 4.3.

La carga total del mensaje, incluido el preludio y las dos sumas de comprobación, es de 16 bytes.

En el siguiente diagrama, se muestran los componentes que conforman un mensaje y un encabezado. Hay varios encabezados en cada mensaje.

Esquema de los componentes de un mensaje y encabezado para una transcripción en streaming.

Cada mensaje contiene los siguientes componentes:

  • Preludio: consta de dos campos de 4 bytes, con un total fijo de 8 bytes.

    • Primeros 4 bytes: se trata de la longitud en bytes indicada en números enteros big-endian de todo el mensaje, incluido el propio campo de 4 bytes.

    • Segundos 4 bytes: se trata de la longitud en bytes indicada en números enteros big-endian de los ‘encabezados’ del mensaje, sin incluir el propio campo de longitud de los ‘encabezados’.

  • CRC del preludio: suma de comprobación CRC de 4 bytes del preludio del mensaje, sin incluir la propia CRC. El preludio tiene un CRC independiente del CRC del mensaje. Esto garantiza que Amazon Transcribe se pueda detectar inmediatamente información dañada de longitud de bytes sin provocar errores, como sobrecargas de búfer.

  • Encabezados: metadatos que actúan como comentarios del mensaje; por ejemplo, el tipo de mensaje y el tipo de contenido. Los mensajes tienen varios encabezados, que son pares clave-valor, donde la clave es una cadena UTF-8. Los encabezados pueden aparecer en cualquier orden en la parte ‘encabezados’ del mensaje y cada encabezado puede aparecer sólo una vez.

  • Carga: contenido de audio que se va a transcribir.

  • CRC del mensaje: suma de comprobación CRC de 4 bytes desde el comienzo del mensaje hasta el inicio de la suma de comprobación. Es decir, todo en el mensaje, excepto la propia CRC.

El marco de cabecera es el marco de autorización para la transcripción en streaming. Amazon Transcribe utiliza el valor del encabezado de autorización como base para generar una cadena de encabezados de autorización para los marcos de datos de la solicitud.

Cada encabezado contiene los siguientes componentes; hay varios encabezados por trama.

  • Longitud en bytes del nombre de encabezado: longitud en bytes del nombre del encabezado.

  • Nombre de encabezado: nombre del encabezado que indica el tipo de encabezado. Para ver los valores válidos, consulte las siguientes descripciones de tramas.

  • Tipo de valor del encabezado: número que indica el tipo de valor del encabezado. La siguiente lista muestra los valores posibles del encabezado y lo que indican.

    • 0 – TRUE

    • 1 – FALSE

    • 2 – BYTE

    • 3 – SHORT

    • 4 – INTEGER

    • 5 – LONG

    • 6 – MATRIZ DE BYTES

    • 7 – STRING

    • 8 – TIMESTAMP

    • 9 – UUID

  • Longitud en bytes de cadena de valores: longitud en bytes de la cadena de valores del encabezado.

  • Valor del encabezado: el valor de la cadena del encabezado. Los valores válidos de este campo dependen del tipo de encabezado. Para obtener más información, consulte Configuración de una secuencia HTTP/2 o Configuración de una WebSocket transmisión.

Tramas de datos

Cada solicitud contiene una o varias tramas de datos. Hay dos pasos para crear una trama de datos:

  1. Combinar los datos de audio sin procesar con metadatos para crear la carga de la solicitud.

  2. Combinar la carga con una firma para conformar el mensaje del evento que se envía a Amazon Transcribe.

En el siguiente diagrama, se muestra cómo funciona.

Los componentes de una trama de datos para una transcripción en streaming.