事件流编码 - Amazon Transcribe
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

事件流编码

事件流编码在客户端和服务器之间使用消息来提供双向通信。发送到 Amazon Transcribe Medical 流式处理服务的数据帧使用此格式进行编码。Amazon Transcribe Medical 的响应也使用此编码。

每个消息都包含两部分:前导信息和数据。前导信息包括:

  1. 消息的总字节长度

  2. 所有标头的组合字节长度

数据部分包含:

  1. 标头

  2. 负载

每个部分以 4 字节 big-endian 整数 CRC 校验和结尾。消息 CRC 校验和同时适用于前导信息部分和数据部分。Amazon Transcribe Medical 使用 CRC32(通常称为 GZIP CRC32)来计算这两个 CRC。有关 CRC32 的更多信息,请参阅 GZIP 文件格式规范版本 4.3

总消息开销(包括前导信息和两个校验和)为 16 个字节。

下图显示了构成消息和标头的组件。每个消息有多个标头。

每个消息都包含以下组件:

  • 前奏曲:大小始终固定为 8 字节,由两个 4 字节的字段组成。

    • 前 4 个字节:总字节长度。这是整个消息的 big-endian 整数字节长度,包括 4 字节长度字段本身。

    • 第二个 4 字节:标头字节长度。这是消息的标头部分的 big-endian 整数字节长度,不包括标头长度字段本身。

  • CRC 前奏曲:消息前导信息部分的 4 字节 CRC 校验和,不包括 CRC 本身。前导信息具有不同于消息 CRC 的 CRC,以确保 Amazon Transcribe Medical 可以立即检测到损坏的字节长度信息,而不会导致缓冲区溢出之类的错误。

  • 标头:用于批注消息(如消息类型、内容类型等)的元数据。消息有多个标头。标头是一些键值对,其中的键为 UTF-8 字符串。标头可按任何顺序出现在消息的标头部分中,并且任何给定标头只能出现一次。对于必需的标头类型,请参阅以下部分。

  • 负载:要转录的音频内容。

  • CRC 消息:从消息开头到校验和开头的 4 字节 CRC 校验和。也就是说,消息中除 CRC 本身之外的所有内容。

每个标头都包含以下组件。每个帧有多个标头。

  • 标头名称字节长度:标头名称的字节长度。

  • 标头名称:指示标头类型的标头名称。有关有效值,请参阅下面的帧描述。

  • 标头值类型:指示标头值的枚举。

    以下标头显示标头的可能的值以及它们的表示。

    • 0— TRUE

    • 1— FALSE

    • 2— 字节

    • 3— 短

    • 4— 整数

    • 5— 长整型

    • 6— 字节数组

    • 7— 字符串

    • 8— 时间戳

    • 9— UUID

  • 值字符串字节长度:标头值字符串的字节长度。

  • 标头值:标头字符串的值。此字段的有效值取决于标头的类型。有关有效值,请参阅下面的帧描述。