ストリーミング文字起こしの設定 - Amazon Transcribe

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ストリーミング文字起こしの設定

このセクションでは、メインのストリーミングセクションをさらに詳しく説明します。これは、ストリームを ではなく HTTP/2 または WebSockets で直接セットアップするユーザー向けの情報を提供することを目的としています AWS SDK。このセクションの情報を使用して、独自の を構築することもできますSDK。

重要

HTTP/2 と を直接使用するのSDKsではなく、 を使用することを強くお勧めします WebSockets 。SDKs は、データストリームを文字起こしするための最もシンプルで信頼性の高い方法です。を使用してストリーミングを開始するには、 AWS SDK「」を参照してくださいAWS SDKs を使用した文字起こし

で文字起こしリクエストをストリーミングするための HTTP/2 プロトコルの主なコンポーネント Amazon Transcribe は次のとおりです。

  • ヘッダーフレーム。これには、リクエストの HTTP/2 ヘッダーと、データフレームに署名するためのシード署名として Amazon Transcribe を使用する認証ヘッダーの署名が含まれます。

  • メタデータと未加工の音声バイトを含む、イベントストリームエンコーディングの 1 つ以上のメッセージフレーム。

  • 終了フレーム。空の本文を持つイベントストリームエンコーディングの署名付きメッセージです。

注記

Amazon Transcribe は HTTP/2 セッションごとに 1 つのストリームのみをサポートします。複数のストリーミングを使用しようとすると、文字起こしリクエストは失敗します。

  1. リクエストを行う IAM ロールに次のポリシーをアタッチします。詳細については、IAM 「ポリシーの追加」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-http2-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscription", "Resource": "*" } ] }
  2. セッションを開始するには、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

    追加のオペレーションとパラメータはAPIリファレンス にリストされています。すべての AWS APIオペレーションに共通するパラメータは、共通パラメータセクションにリストされています。

    Amazon Transcribe は、次のレスポンスを送信します。

    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. 音声データを含む音声イベントを作成します。以下の表に示すヘッダを、イベントエンコードされたメッセージの音声バイトのチャンクと組み合わせます。イベントメッセージのペイロードを作成するには、raw バイト形式のバッファを使用します。

    ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 イベント

    このリクエスト例のバイナリデータは base64 でエンコードされています。実際のリクエストでは、データはローバイトです。

    :content-type: "application/vnd.amazon.eventstream" :event-type: "AudioEvent" :message-type: "event" UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA==
  4. 音声データを含む音声メッセージを作成します。

    1. 音声メッセージデータフレームには、現在の日付と、音声チャンクと音声ベントの署名を含むイベントエンコードのヘッダーが含まれます。

      ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長
      16 : チャンク署名 6 可変 生成された署名
      5 : 日付 8 8 タイムスタンプ

      このリクエストのバイナリデータは base64 でエンコードされています。実際のリクエストでは、データはローバイトです。

      :date: 2019-01-29T01:56:17.291Z :chunk-signature: signature AAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5 cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA AAAAAAAAAAAA//8CAP3/BAC7QLFf
    2. 署名バージョン 4 の署名文字列を作成する」に従って、署名文字列を作成します。文字列は次の形式に従います。

      String stringToSign = "AWS4-HMAC-SHA256" + "\n" + DateTime + "\n" + Keypath + "\n" + Hex(priorSignature) + "\n" + HexHash(nonSignatureHeaders) + "\n" + HexHash(payload);
      • DateTime: 署名が作成された日時。形式は でYYYYMMDDTHHMMSSZ、YYYY=year、MM=month、DD=day、HH=hour、MM=minute、SS=seconds、'T' と 'Z' は固定文字です。詳細については、「署名バージョン 4 で日付を扱う」を参照してください。

      • Keypath: date/region/service/aws4_request 形式の署名範囲。例えば、20220127/us-west-2/transcribe/aws4_request と指定します。

      • Hex: 入力を 16 進数にエンコードする関数。

      • priorSignature: 前のフレームの署名。最初のデータフレームで、ヘッダーフレームの署名を使用します。

      • HexHash: 最初に入力の SHA-256 ハッシュを作成し、次に Hex 関数を使用してハッシュをエンコードする関数。

      • nonSignatureHeaders: 文字列としてエンコードされた DateTime ヘッダー。

      • payload: 音声イベントデータを含むバイトバッファ。

    3. AWS シークレットアクセスキーから署名キーを取得し、それを使用して に署名しますstringToSign。保護レベルを高めるために、派生キーは日付、サービス、 AWS リージョンに固有になっています。詳細については、「AWS署名バージョン 4 の署名を計算する」を参照してください。

      GetSignatureKey 関数を実装して署名キーを取得します。まだ署名キーを取得していない場合は、「署名バージョン 4 の署名キーを取得する方法の例」を参照してください。

      String signature = HMACSHA256(derivedSigningKey, stringToSign);
      • HMACSHA256: SHA-256 ハッシュ関数を使用して署名を作成する関数。

      • derivedSigningKey: 署名バージョン 4 の署名キー。

      • stringToSign: データフレームに対して計算した文字列。

      データフレームの署名を計算したら、日付、署名、および音声イベントペイロードを含むバイトバッファを構築します。文字起こし用にバイト配列を Amazon Transcribe に送信します。

  5. 音声ストリームが完了したことを示すには、日付と署名のみを含む空のデータ終了フレームを送信します。データフレームを構築するのと同じ方法で、この終了フレームを構築します。

    Amazon Transcribe は、アプリケーションに送信される文字起こしイベントのストリームで応答します。このレスポンスはイベントストリームでエンコードされます。また、標準の prelude と以下のヘッダーが含まれます。

    ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 イベント

    イベントは、ローバイトの形式で送信されます。この例では、バイトは base64 でエンコードされています。

    AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI 5eGn83jdBwCaRUBJA+eaDafqjqI=

    文字起こし結果を表示するには、イベントストリームのエンコードを使用してローバイトをデコードします。

    :content-type: "application/vnd.amazon.eventstream" :event-type: "TranscriptEvent" :message-type: "event" { "Transcript": { "Results": [ results ] } }
  6. ストリームを終了するには、空の音声イベントを Amazon Transcribeに送信します。他の音声イベントとまったく同じように音声イベントを作成します (空のペイロードは除く)。イベントに署名し、その署名を :chunk-signature ヘッダーに含めます。以下に手順を示します。

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

HTTP/2 ストリーミングエラーの処理

メディアストリームの処理中にエラーが発生した場合、 は例外レスポンス Amazon Transcribe を送信します。レスポンスはイベントストリームでエンコードされます。

レスポンスには、標準の prelude と以下のヘッダーが含まれます。

ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
13 :content-type 7 16 application/json
11 :event-type 7 19 BadRequestException
13 :message-type 7 9 例外

デコードされた例外レスポンスには、以下の情報が含まれます。

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

で文字起こしリクエストをストリーミングするためのWebSocketプロトコルの主なコンポーネント Amazon Transcribe は次のとおりです。

  • アップグレードリクエスト。これには、リクエストのクエリパラメータと、データフレームに署名するためのシード署名として が Amazon Transcribe 使用する署名が含まれます。

  • メタデータと未加工の音声バイトを含む、イベントストリームエンコーディングの 1 つ以上のメッセージフレーム。

  • 終了フレーム。空の本文を持つイベントストリームエンコーディングの署名付きメッセージです。

注記

Amazon Transcribe は WebSocket 、セッションごとに 1 つのストリームのみをサポートします。複数のストリーミングを使用しようとすると、文字起こしリクエストは失敗します。

  1. リクエストを行う IAM ロールに次のポリシーをアタッチします。詳細については、IAM 「ポリシーの追加」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "my-transcribe-websocket-policy", "Effect": "Allow", "Action": "transcribe:StartStreamTranscriptionWebSocket", "Resource": "*" } ] }
  2. セッションを開始するには、URL次の形式で署名付き を作成します。読みやすくするために、改行が追加されています。

    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
    注記

    X-Amz-Expires の最大値は 300 (5 分) です。

    追加のオペレーションとパラメータはAPIリファレンス にリストされています。すべての AWS APIオペレーションに共通するパラメータは、共通パラメータセクションにリストされています。

    リクエストURLの を構築し、署名バージョン 4 の署名を作成するには、次のステップを参照してください。例は擬似コードで示しています。

    1. 正規リクエストを作成します。正規は、リクエストからの情報を標準化された形式で含む文字列です。これにより、 がリクエスト AWS を受信すると、 用に作成したのと同じ署名を計算できますURL。詳細については、「署名バージョン 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. ドメインとクエリ文字列URIの間の の一部URIである正規 を作成します。

      canonical_uri = "/stream-transcription-websocket"
    3. 正規ヘッダーと署名付きヘッダーを作成します。正規ヘッダーの末尾の \n に注意してください。

      • 小文字のヘッダー名とそれに続くコロン ( : ) を追加します。

      • このヘッダーの値のカンマ区切りリストを追加します。複数の値を持つヘッダーの値はソートしません。

      • 改行 (\n) を追加します。

      canonical_headers = "host:" + host + "\n" signed_headers = "host"
    4. アルゴリズムをハッシュアルゴリズムに一致させます。SHA-256 を使用します。

      algorithm = "AWS4-HMAC-SHA256"
    5. 派生キーの範囲を日付、 AWS リージョン、サービスに絞るための認証情報スコープを作成します。例えば、20220127/us-west-2/transcribe/aws4_request と指定します。

      credential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request"
    6. 正規クエリ文字列を作成します。クエリ文字列値は、URIエンコードされ、名前でソートされる必要があります。

      • パラメータ名を文字コードポイントで昇順にソートします。名前が重複しているパラメータは、値でソートする必要があります。たとえば、大文字 F で始まるパラメータ名は、小文字 b で始まるパラメータ名より前に置きます。

      • RFC 3986 で定義されている予約されていない文字をURIエンコードしないでください。A~Z、a~z、0~9、ハイフン (~)、アンダースコア (_)、ピリオド (.)、チルダ (~)。

      • 他のすべての文字についても、%XY によるパーセントエンコードが必要です。X および Y には 16 進数文字 (0~9 および大文字の A~F) が入ります。例えば、スペース文字は %20 としてエンコードする必要があります (一部のエンコードスキームでは「+」を含めないでください)。拡張 UTF-8 文字は %XY%ZA%BC の形式である必要があります。

      • パラメータ値の等号 (=) 文字を二重エンコードします。

      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. ペイロードのハッシュを作成します。GET リクエストの場合、ペイロードは空の文字列です。

      payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
    8. 以下の要素を組み合わせて正規リクエストを作成します。

      canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
  3. リクエストについてのメタ情報が含まれる署名する文字列を作成します。次のステップでリクエストの署名を計算するときに、文字列を使用してサインインします。詳細については、「署名バージョン 4 の署名文字列を作成する」を参照してください。

    string_to_sign=algorithm + "\n" + amz_date + "\n" + credential_scope + "\n" + HashSHA256(canonical_request.Encode("utf-8")).HexDigest()
  4. 署名を計算します。これを行うには、シー AWS クレットアクセスキーから署名キーを取得します。保護レベルを高めるために、派生キーは日付、サービス、 AWS リージョンに固有になっています。派生キーを使用して、リクエストに署名します。詳細については、「署名バージョン 4 AWS の署名を計算する」を参照してください。

    GetSignatureKey 関数を実装して署名キーを取得します。まだ署名キーを取得していない場合は、「署名バージョン 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

    関数は、バイナリ形式で結果を返す HMAC-SHA256 関数HMAC(key, data)を表します。

  5. リクエストに署名情報を追加し、リクエスト を作成しますURL。

    署名を計算したら、クエリ文字列に追加します。詳細については、「署名をリクエストに追加する」を参照してください。

    まず、クエリ文字列に認証情報を追加します。

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

    次に、リクエストURLの を作成します。

    request_url = endpoint + canonical_uri + "?" + canonical_querystring

    WebSocket ライブラリURLで リクエストを使用して、 にリクエストを行います Amazon Transcribe。

  6. へのリクエストには、次のヘッダーを含める Amazon Transcribe 必要があります。通常、これらのヘッダーは WebSocket クライアントライブラリによって管理されます。

    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. Amazon Transcribe が WebSocket リクエストを受信すると、アップグレードレスポンスで WebSocket 応答します。通常、 WebSocket ライブラリはこのレスポンスを管理し、 との通信用のソケットを設定します Amazon Transcribe。

    からのレスポンスを次に示します Amazon Transcribe。読みやすくするために、改行が追加されています。

    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. WebSocket ストリーミングリクエストを行います。

    WebSocket 接続が確立されると、クライアントは一連のオーディオフレームの送信を開始できます。各オーディオフレームは、イベントストリームエンコード を使用してエンコードされます。

    各データフレームには、未加工の音声バイトのチャンクと組み合わせた 3 つのヘッダーが含まれています。以下の表はこれらのヘッダーについて説明したものです。

    ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
    13 :content-type 7 24 application/octet-stream
    11 :event-type 7 10 AudioEvent
    13 :message-type 7 5 イベント
  9. データストリームを終了するには、空の音声チャンクをイベントストリームでエンコードされたメッセージで送信します。

    レスポンスには、イベントストリームでエンコードされた raw バイトがペイロードに含まれています。また、標準の prelude と以下のヘッダーが含まれます。

    ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
    13 :content-type 7 16 application/json
    11 :event-type 7 15 TranscriptEvent
    13 :message-type 7 5 イベント

    バイナリレスポンスをデコードすると、文字起こし結果を含むJSON構造になります。

WebSocket ストリーミングエラーの処理

リクエストの処理中に例外が発生した場合、 はイベントストリームでエンコードされたレスポンスを含むターミナル WebSocket フレームに Amazon Transcribe 応答します。このレスポンスには以下の表で示しているヘッダーがあり、レスポンスの本文には説明のエラーメッセージが含まれます。例外レスポンスを送信した後、 Amazon Transcribe はクローズフレームを送信します。

ヘッダー名のバイト長 ヘッダー名 (文字列) ヘッダー値の型 値の文字列のバイト長 値文字列 (UTF-8)
13 :content-type 7 16 application/json
15 :exception-type 7 varies varies、以下を参照してください
13 :message-type 7 9 例外

exception-type ヘッダーには、次のいずれかの値が含まれます。

  • BadRequestException: ストリームの作成時にクライアントエラーが発生したか、データのストリーミング中にエラーが発生しました。クライアントでデータの受け入れ準備ができていることを確認し、リクエストを再試行してください。

  • InternalFailureException: クライアントとのハンドシェイク中に Amazon Transcribe 問題が発生しました。リクエストを再試行してください。

  • LimitExceededException: クライアントで同時ストリームの制限を超えました。詳細については、「Amazon Transcribe 制限」を参照してください。文字起こしするストリームの数を減らしてください。

  • UnrecognizedClientException: WebSocket アップグレードリクエストが不正なアクセスキーまたはシークレットキーで署名されました。アクセスキーを正しく作成していることを確認し、リクエストを再試行してください。

Amazon Transcribe は、一般的なサービスエラーを返すこともできます。リストについては、「共通エラー」を参照してください。

イベントストリームエンコード

Amazon Transcribe は、ストリーミング文字起こしにイベントストリームエンコードと呼ばれる形式を使用します。

イベントストリームエンコードは、クライアントとサーバーの間の双方向通信を提供します。 Amazon Transcribe ストリーミングサービスに送信されるデータフレームは、この形式でエンコードされます。からのレスポンス Amazon Transcribe もこのエンコードを使用します。

各メッセージは、prelude と data の 2 つのセクションで構成されています。prelude の構成要素は以下のとおりです。

  1. メッセージの合計バイト長

  2. すべてのヘッダーを組み合わせたバイトの長さ

データセクションの構成要素は以下のとおりです。

  1. ヘッダー

  2. ペイロード

各セクションは、4 バイトのビッグエンディアン整数周期冗長チェック (CRC) チェックサムで終わります。メッセージCRCチェックサムは、prelude セクションと data セクションの両方を対象としています。 Amazon Transcribe は CRC32 (多くの場合 CRC32) GZIP を使用して両方の を計算しますCRCs。の詳細についてはCRC32、GZIP「ファイル形式仕様バージョン 4.3」を参照してください。

合計メッセージオーバーヘッド (prelude と両方のチェックサムを含む) は 16 バイトです。

次の図は、メッセージとヘッダーを構成するコンポーネントを示します。メッセージごとに複数のヘッダーがあります。

ストリーミング文字起こしのメッセージとヘッダーの構成要素の図。

各メッセージには、以下のコンポーネントが含まれます。

  • Prelude: 2 つの 4 バイトのフィールドで構成され、合計は 8 バイトに固定されています。

    • 最初の 4 バイト: メッセージ全体のビッグエンディアン整数バイト長です (4 バイト長のフィールド自体を含む)。

    • 次の 4 バイト メッセージのヘッダー部分のビッグエンディアン整数バイト長 (ヘッダー長フィールド自体を除く)。

  • Prelude CRC: メッセージの prelude 部分の 4 バイトのCRCチェックサム。CRCそれ自体は除きます。プレリュードには、メッセージ CRCとは別の がありますCRC。これにより、 Amazon Transcribe はバッファオーバーランなどのエラーを発生させることなく、破損したバイト長情報をすぐに検出できます。

  • ヘッダー: メッセージタイプ、コンテンツタイプなど、メッセージに注釈を付けるメタデータ。メッセージには、キーと値のペアである複数のヘッダーがあり、キーは UTF-8 文字列です。ヘッダーは、メッセージのヘッダー部分に任意の順序で表示することができ、各ヘッダーは一度だけ表示することができます。

  • ペイロード: 書き起こされた音声コンテンツ。

  • メッセージ CRC: メッセージの開始からCRCチェックサムの開始までの 4 バイトのチェックサム。つまり、メッセージ内のCRCそれ自体を除くすべてです。

ヘッダーフレームは、ストリーミング文字起こしの認証フレームです。 は、リクエスト内のデータフレームの認証ヘッダーチェーンを生成するためのシードとして、認証ヘッダーの値 Amazon Transcribe を使用します。

各ヘッダーには以下のコンポーネントが含まれており、フレームごとに複数のヘッダーがあります。

  • ヘッダー名のバイト長: ヘッダー名のバイトの長さ。

  • ヘッダー名: ヘッダータイプを示すヘッダの名前。有効な値については、次のフレームの説明を参照してください。

  • ヘッダー値のタイプ: ヘッダー値を示す数値。以下の表に、ヘッダーに指定できる値と、ヘッダーが示す値を示します。

    • 0 – TRUE

    • 1 – FALSE

    • 2 – BYTE

    • 3 – SHORT

    • 4 – INTEGER

    • 5 – LONG

    • 6 – BYTE ARRAY

    • 7 – STRING

    • 8 – TIMESTAMP

    • 9 – UUID

  • 値の文字列のバイト長: ヘッダー値の文字列のバイト長。

  • ヘッダー値: ヘッダー文字列の値。このフィールドの有効な値は、ヘッダーのタイプによって異なります。詳細については、「HTTP/2 ストリームのセットアップ」または「 WebSocket ストリームのセットアップ」を参照してください。

データフレーム

各ストリーミングリクエストには、1 つ以上のデータフレームが含まれています。データフレームを作成するには 2 つのステップがあります。

  1. 未加工の音声データとメタデータを組み合わせて、リクエストのペイロードを作成します。

  2. ペイロードを署名と組み合わせて、 Amazon Transcribeに送信されるイベントメッセージを形成します。

この 仕組み を以下に示します。

ストリーミング文字起こしのデータフレームのコンポーネント。