mcpField
A
amazon-transcribe

amazon-transcribe

github.com/calesthioクリエイティブ・メディア219100 回インストール15 週間前に更新
リポジトリ

amazon-transcribe について

amazon-transcribe は、AWS 管理下のワークフローで Amazon Transcribe の計画、実行、レビュー、トラブルシューティングを行うスキルです。バッチ、ストリーミング、Call Analytics、Medical の用途を区別し、データ管理、言語対応、人による確認を重視します。

主な機能

  1. 01バッチとリアルタイム文字起こしの計画
  2. 02Call Analytics と Medical の適用範囲
  3. 03話者ダイアライゼーションとチャンネル識別
  4. 04語彙と自動言語識別の指針
  5. 05マスキングと AWS ガバナンスの考慮

活用シーン

  1. 01S3 のメディアファイルから字幕を生成
  2. 02ライブ字幕やストリーミング文字起こしを計画
  3. 03カスタマーサービス通話の録音を分析
  4. 04話者ラベルと機微情報のマスキングを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/calesthio/generative-media-skills --skill amazon-transcribe

インストール後、Claude Code で/amazon-transcribeを入力して読み込まれたか確認します。

同梱ファイルEVAL.md

詳細

Amazon Transcribe

エージェントが、AWS 管理下のワークフローで音声テキスト変換プロバイダーとして Amazon Transcribe の計画、実行、レビュー、トラブルシューティングを行う必要がある場合に、このスキルを使用してください。まず Amazon Transcribe を AWS の管理下でデータを扱う選択肢として検討してください。メディアがすでに S3 にある場合、組織で IAM/KMS/CloudTrail によるガバナンスが必要な場合、バッチファイルから字幕を生成する場合、またはリアルタイムの文字起こしを AWS のストリーミングエンドポイントに流す場合に最適です。

このスキルを、汎用的な「最適な文字起こしモデル」のランキングとして使用しないでください。実際のタスクに照らして、精度、レイテンシー、コスト、対応言語、データの管理要件を比較してください。医療、コールセンター分析、機密性の高い音声では、選択前に一般的な Transcribe の経路と Medical および Call Analytics の製品を区別してください。

以下の情報は、別途記載がない限り、2026-07-10 に AWS のドキュメントで確認済みです。

適切な Amazon Transcribe の利用方法を選ぶ

確認済みの情報:Amazon Transcribe は、音声をテキストに変換する自動音声認識サービスです。メディアファイル向けの非同期バッチジョブ、またはライブ音声向けのリアルタイムストリーミングで利用できます。出典:Amazon Transcribe とは、音声のストリーミング、StartTranscriptionJob API。

次の判断基準を使用してください。

  • バッチ文字起こし:Amazon S3 内のファイル、オフラインの文字起こし、字幕、キャプション、ポッドキャスト/動画のバックログ、アーカイブ、品質保証レビュー、ジョブの完了を待てるワークフローに使用します。バッチでは、StartTranscriptionJob の実行前にメディアファイルを S3 に置く必要があります。
  • ストリーミング文字起こし:ライブキャプション、通話アシスタント、会議、音声入力、低レイテンシーの部分的/最終的な文字起こしに使用します。ストリーミングは双方向 HTTP/2 または WebSocket を使用し、言語の選択または言語識別、メディアのエンコーディング、サンプルレートが必要です。出典:StartStreamTranscription API。
  • Call Analytics:メディアが顧客とエージェントの通話、または営業/サポートの通話であり、ターンごとの出力、感情分析、割り込み、非会話時間、会話速度、カテゴリ、要約、アクションアイテムなど、通話に特化したインサイトが必要な場合にのみ使用します。汎用的なキャプション生成の経路として使用しないでください。出典:Call Analytics、通話後の出力。
  • Medical:医師の口述、遠隔医療、医師と患者の会話など、医療関連の音声にのみ使用します。Amazon Transcribe Medical はバッチとストリーミングで利用でき、対応言語は米国英語(en-US)のみです。AWS は、専門的な医療上の助言、診断、治療の代わりにはならないとしており、患者のケアに使用する場合は、訓練を受けた人間によるレビューが必要です。出典:Amazon Transcribe Medical。

本番環境でのヒューリスティック:編集済みメディアやキャプションの納品物には、ユーザーがライブテキストを明示的に必要としていない限り、バッチを優先してください。各話者が別々のチャンネルに分離された二者間の録音では、ダイアライゼーションよりチャンネル識別を優先してください。単一チャンネルで話者が不明な場合は、ダイアライゼーションを使用し、話者名を人手で確認する工程を計画してください。

入出力の仕様

文書化されている事実:

  • バッチ入力形式には AMR、FLAC、M4A、MP3、MP4、Ogg、WebM、WAV が含まれます。ストリーミング形式には FLAC、Ogg Opus、PCM エンコーディングが含まれます。AWS は、可能であれば PCM 16-bit エンコーディングの FLAC や WAV など、ロスレス形式を推奨しています。出典:データの入出力。
  • Amazon Transcribe は、シングルチャンネルおよびデュアルチャンネルのメディアに対応しています。2 チャンネルを超えるメディアは、標準の Transcribe ではサポートされていません。出典:データの入出力、チャンネルの識別。
  • バッチ文字起こしの出力形式は JSON です。JSON には段落単位の文字起こしと項目レベルのデータが含まれます。少なくとも、単語項目には開始時間、終了時間、信頼度スコアが含まれます。出典:データの入出力。
  • バッチの動画字幕出力は WebVTT(.vtt)と SubRip(.srt)に対応しています。字幕をリクエストすると、AWS は字幕ファイルと通常の JSON 文字起こしの両方を同じ出力先に生成します。出典:動画字幕の作成。

本番運用のヒューリスティック:

  • アップロード前に本番用の音声を正規化します。字幕に使用する最終ミックスを抽出し、チャンネル識別が不要な場合に限ってダウンミックスし、編集上問題がない範囲で長い無音部分を削除します。また、字幕生成に使用した音声の完全なコピーを保管します。
  • QA と後続のアラインメントには、JSON 文字起こしを信頼できる唯一の情報源として使用します。AWS が生成した SRT/VTT は出発点として扱い、納品前に改行、読み上げ速度、句読点、ブランド名、話者の切り替わり、ショットの切り替わりとの衝突を確認します。
  • 字幕のアクセシビリティを確保するため、[music]、[laughter]、意味のある効果音など、音声以外の情報について、別途編集作業を計画します。Amazon Transcribe は音声をテキストに変換するサービスであり、人間が字幕を全面的に作成するシステムではありません。

本番運用で重要な機能の境界

話者ラベルとチャンネル識別

文書化されている事実:

  • 話者ダイアライゼーションは話者を区分し、最大 30 人の固有の話者に spk_0 から spk_29 のラベルを付けられます。バッチとストリーミングの両方で利用できます。出典:話者の区分。
  • チャンネル識別は 2 チャンネル音声を個別に文字起こしし、チャンネルに ch_0 と ch_1 のラベルを付けます。Amazon Transcribe は 2 チャンネルを超える音声に対応していません。出典:マルチチャンネル音声の文字起こし。

本番運用のヒューリスティック:

  • コールセンターのステレオ音声、インタビュアーとインタビュー対象者が別々のトラックに分かれた音声、または各話者の音声が安定して別のチャンネルに分離されているファイルには、チャンネル識別を使用します。
  • 1 チャンネルの会議、パネルディスカッション、ポッドキャスト、カメラ音声にはダイアライゼーションを使用します。ただし、実在する人物名が自動で割り当てられることは保証しないでください。spk_0 = host、spk_1 = guest のように対応付ける工程を設け、話者の交代後に対応関係を確認します。
  • 選択したリクエストタイプで、現在の API ドキュメントがその組み合わせを明示的にサポートしていない限り、チャンネル識別とダイアライゼーションを同時に有効にしないでください。「どのチャンネルか」と「誰か」の両方を把握する必要がある場合は、ワークフローを分けるか、手動で後処理します。
カスタム語彙、カスタム言語モデル、語彙フィルター

ドキュメントに記載された事実:

  • カスタム語彙を使うと、ブランド名、頭字語、固有名詞、専門用語などの特定の単語をより正確に認識できます。サポートされているすべての言語で使用できますが、各言語でサポートされている文字セットの文字のみ使用できます。出典:カスタム語彙。
  • AWS は、表形式をカスタム語彙の推奨形式としています。表には Phrase、SoundsLike、IPA、DisplayAs が含まれます。Phrase は必須で、スペースを含めることはできません。出典:表形式を使ったカスタム語彙の作成。
  • カスタム語彙フィルターは、選択した方法を使って完全一致した単語を変更でき、バッチリクエストとストリーミングリクエストの両方に適用できます。出典:語彙フィルタリング。
  • 言語識別とカスタム語彙、カスタム言語モデル、または語彙フィルターを組み合わせる場合は、各言語に対して LanguageIdSettings が必要です。また、複数言語の識別ではカスタム言語モデルはサポートされません。出典:バッチでの言語識別。

本番環境での指針:

  • 「これを正確に認識してほしい」場合はカスタム語彙を使い、「この単語が出てきた場合にマスク、削除、またはフラグ付けしてほしい」場合は語彙フィルターを使います。
  • ブランドに配慮した字幕を作成する場合、カスタム語彙と語彙フィルターでは解決する問題が異なります。製品名は語彙に登録し、卑語や公開禁止の用語は語彙フィルターに登録します。
  • 最初の本番ジョブの前に、台本、ゲスト名、製品名、頭字語、特殊な綴り、キャンペーン用語をもとに語彙を作成します。代表的な短い音声サンプルを再度実行し、精度が向上することを確認してください。
  • 多言語のメディアや方言が曖昧なメディアでは、可能な場合 LanguageOptions を限定します。AWS は、言語オプションが一致しないと不正確な文字起こしが生成される可能性があると警告しています。また、方言が一致しないと、言語固有のカスタマイズが適用されない場合があります。
言語識別

ドキュメントに記載された事実:

  • バッチでは、自動言語識別と自動複数言語識別がサポートされています。出典:バッチでの言語識別。
  • ストリーミングでは、コンソール、HTTP/2、または WebSocket を介した自動言語識別がサポートされています。出典:ストリーミングでの言語識別。
  • サポートされる言語や言語固有の機能は異なります。AWS は、先に進む前に、必要な機能が対象言語でサポートされていることを確認するよう案内しています。出典:サポートされる言語と言語固有の機能。

本番環境での指針:

  • ユーザーが言語を把握している場合は、その言語を指定します。言語が本当に不明な場合や、ワークフローで複数の言語を受け入れる必要がある場合に、言語識別を使用します。
  • 規制対象のコンテンツの編集では、編集機能が想定されるすべての言語に対応していない限り、広範な自動言語検出に依存しないでください。AWS のドキュメントによると、言語識別をコンテンツの編集と組み合わせた場合、サポート対象の編集言語のみが編集されます。また、サポートされていない言語では警告や失敗が発生しないことがあります。
PII、PHI、マスキング、毒性

文書に記載されている事実:

  • ストリーミングでの PII マスキングでは、識別された PII の各インスタンスが [PII] に置き換えられます。出典:リアルタイムストリームでの PII マスキング。
  • バッチ言語識別とコンテンツのマスキングには、重要な制約があります。音声にマスキングがサポートされている言語以外が含まれている場合、サポート対象の言語のコンテンツのみがマスキングされ、その他の言語は警告もジョブの失敗もなく、マスキングされません。出典:バッチ言語識別。
  • Toxicity Detection は、セクシャルハラスメント、ヘイトスピーチ、脅迫、虐待、冒とく、侮辱、露骨なコンテンツなどのカテゴリにわたって、音声に基づく有害なコンテンツを識別し、分類します。AWS によると、音声とテキストの手がかりを使用します。利用できるのは、米国英語(en-US)のバッチ文字起こしのみです。AWS コンソールのワークフローには、Toxicity Detection と併せて PII マスキングを有効にできますが、一覧にあるその他のオプションは併用できないことも記載されています。出典:有害な音声の検出、有害な音声検出の使用。
  • AWS のドキュメントによると、Amazon Transcribe Medical は HIPAA の対象となる要件を満たしていますが、患者のケアを目的とする Medical の出力は、訓練を受けた医療専門家による確認が必要です。出典:Amazon Transcribe Medical、Amazon Transcribe のよくある質問。

本番環境での経験則:

  • PII/PHI のマスキングは安全性を高めるための補助と捉え、法的な保証とはみなさないでください。一般公開、法的な証拠開示、医療記録、人事、未成年者、法執行、または金融目的で出力を使用する場合は、人によるプライバシー確認に回してください。
  • ジョブ名、タグ、自由記述欄、外部 URL には機密データを絶対に含めないでください。AWS は、こうしたフィールドが請求や診断のログに表示される可能性があると警告しています。出典:データ保護。
  • 有害なコンテンツの検出では、カテゴリの信頼度を、人によるポリシー確認なしにモデレーションの判断へと直結させないでください。フラグ付けのレイヤーとして使用し、文脈を保持してください。

AWS の保管、セキュリティ、アクセス許可

文書に記載されている事実:

  • バッチジョブでは、入力音声と出力文字起こしに S3 を使用します。独自の出力バケットを指定した場合、文字起こしは削除するまでそのバケットに保持されます。出典:データの入力と出力。
  • Amazon Transcribe は、S3 管理キーまたは AWS KMS キーによる保存時の暗号化をサポートし、転送中は TLS を使用します。出典:データの暗号化。
  • AWS の責任共有モデルが適用されます。AWS はインフラストラクチャを保護し、顧客はコンテンツの管理、セキュリティ設定、サービス管理に責任を負います。AWS は、最小権限の IAM、MFA、TLS、CloudTrail ログ記録、暗号化、機密性の高い S3 データの検出に向けた Macie の利用を推奨しています。出典:データ保護。
  • AWS のドキュメントによると、デフォルトでは Amazon Transcribe は処理した音声入力を保存し、サービスの開発と改善に使用します。顧客は AWS Organizations の AI サービスオプトアウトポリシーを通じてオプトアウトできます。出典:オプトアウト。
  • Amazon Transcribe が使用する IAM ロールには S3 アクセスが必要です。KMS を使用する場合は、該当する KMS キーのアクセス許可も必要です。AWS は、S3 入力用の GetObject/ListBucket、出力用の PutObject、KMS アクセス許可、および aws:SourceArn と aws:SourceAccount を使用した混乱した代理人の防止に関するポリシーを提供しています。出典:アイデンティティベースのポリシーの例。
  • Amazon Transcribe は、アイデンティティベースのポリシー、ポリシーアクション/リソース/条件キー、一時的な認証情報、サービスロールをサポートしていますが、リソースベースのポリシー、ACL、サービスリンクロールはサポートしていません。出典:Amazon Transcribe と IAM の連携。

本番環境のチェックリスト:

  1. アップロード前に、AWS アカウント、リージョン、データレジデンシー要件を確認します。
  2. 規制対象の文字起こしや長期間保持する文字起こしには、顧客所有の S3 バケットを使用します。保持期間、ライフサイクル、監査可能性が重要な場合は、サービス管理の出力を避けます。
  3. バケットの暗号化を有効にし、顧客がキーのポリシーを制御する必要がある場合や KMS の監査証跡が必要な場合は、SSE-KMS を選択します。
  4. 必要なアクションのみを許可します。必要に応じて transcribe:StartTranscriptionJob、transcribe:GetTranscriptionJob、transcribe:ListTranscriptionJobs、入力プレフィックスへの S3 読み取り、出力プレフィックスへの S3 書き込みを許可し、必要な場合にのみ KMS の復号/暗号化/データキー生成を許可します。
  5. CloudTrail と、元のメディア、JSON、SRT/VTT、一時的な派生ファイル、マスキング済み/未マスキングのバリアントに対するライフサイクル削除を設定します。
  6. プライバシーポリシーで AI サービスのコンテンツ改善への使用を禁止している場合は、機密性の高い音声を処理する前に、AWS Organizations のオプトアウトポリシーを確認します。

クォータ、料金、リージョンの利用可否

変動する情報の確認日:2026-07-10:

  • 標準の Transcribe クォータには、音声ファイルの最大長 28,800 秒、音声ファイルの最大サイズ 2 GB、音声の最小長 500 ms、2 チャネルのチャネル識別、標準ストリーミングセッションの同時実行数 25、標準文字起こしジョブの同時実行数 250、語彙の合計数 100、語彙フィルター数 100、ジョブ記録の保持期間 90 日が含まれます。多くのクォータは変更できますが、変更できないものもあります。出典:Amazon Transcribe endpoints and quotas。
  • Call Analytics のバッチクォータは異なります。Call Analytics のバッチジョブでは、音声の最大長は 14,400 秒、ファイルの最大サイズは 500 MB です。出典:Amazon Transcribe endpoints and quotas。
  • AWS の料金はリージョンごとに異なり、時間の経過とともに変わります。公開されている米国東部(バージニア北部)の料金例では、標準ストリーミングは 1 分あたり $0.01、バッチは 1 分あたり $0.006 で、Call Analytics、コンテンツの編集、Medical、アドオンには別料金が設定されています。出典:Amazon Transcribe pricing。
  • リージョンの利用可否は API や製品によって異なります。本番用のリージョンを決定する前に、必ず AWS General Reference と製品固有のリージョン一覧を確認してください。出典:エンドポイントとクォータ、Medical のリージョン利用可否、Call Analytics のリージョン利用可否。

本番環境での経験則:

  • ファイルサイズではなく、音声の長さに基づいて料金を見積もります。再実行も見積もりに含めてください。サンプルの処理を 1 回、最終処理を 1 回、さらに編集や字幕の再処理が発生する可能性があります。
  • 大規模なバッチ処理の前に、対象リージョンの Service Quotas を確認し、スロットリングに備えた再試行とバックオフ機能を備えるキューを設計します。
  • 大量の字幕を処理する場合、ワークフローを管理するうえで必要な場合に限り、自然な区切りで長い動画を事前に分割します。句読点や文脈に悪影響を与える可能性があるため、発話の途中での分割は避けてください。

例:編集済み動画のバッチ字幕ジョブ

例の目的:すでに S3 にアップロード済みの最終動画から、英語字幕と JSON 文字起こしを作成します。このジョブでは製品名にカスタム語彙が必要ですが、話者分離は不要です。出力先は顧客所有の S3 プレフィックスとします。

import time
import boto3

region = "us-west-2"
job_name = "launch-video-captions-20260710"
input_uri = "s3://example-prod-media/final/launch-video.wav"
output_bucket = "example-prod-transcripts"
output_key = "captions/launch-video/"

transcribe = boto3.client("transcribe", region_name=region)

transcribe.start_transcription_job(
    TranscriptionJobName=job_name,
    Media={"MediaFileUri": input_uri},
    OutputBucketName=output_bucket,
    OutputKey=output_key,
    LanguageCode="en-US",
    Settings={
        "VocabularyName": "launch-product-terms-en-us"
    },
    Subtitles={
        "Formats": ["srt", "vtt"],
        "OutputStartIndex": 1
    },
    Tags=[
        {"Key": "project", "Value": "launch-video"},
        {"Key": "data-class", "Value": "public-after-review"}
    ],
)

while True:
    job = transcribe.get_transcription_job(TranscriptionJobName=job_name)
    status = job["TranscriptionJob"]["TranscriptionJobStatus"]
    if status in ("COMPLETED", "FAILED"):
        break
    time.sleep(15)

print(status)
print(job["TranscriptionJob"])

この構成を選ぶ理由:

  • 字幕はオフラインで納品するため、バッチ処理を使用します。
  • SRT と VTT の両方に加え、完全な JSON 文字起こしも出力します。
  • ブランド名や製品名の表記が重要なため、カスタム語彙を使用します。
  • 編集上、実際に話者の識別が必要でない限り、話者ラベルは通常の字幕に余計な情報を加えるため、話者分離は使用しません。

納品前の確認事項:

  • 台本と語彙に照らし合わせて、製品名を確認します。
  • 句読点、文の区切り、改行、読み上げ速度、シーンの切り替わりでの同期を確認します。
  • 対象プラットフォームまたはアクセシビリティ基準で必要な場合は、音声以外の編集上必要な字幕を手動で追加します。
  • S3 の入力音声と文字起こし出力の両方について、保持ポリシーと削除ポリシーを確認します。

例:コールセンターのステレオ文字起こしの選択

想定する用途:エージェントが左チャンネル、顧客が右チャンネルに録音されているサポート通話を文字起こしします。プロダクトチームが必要としているのは検索や品質保証のためのテキストであり、感情分析や通話の自動要約ではありません。

推奨する方法:

  1. Call Analytics ではなく、ChannelIdentification を使用した標準のバッチ Transcribe を使用します。
  2. 言語がわかっている場合は LanguageCode を設定します。通話が複数の言語で届く可能性がある場合にのみ、言語識別を使用します。
  3. 製品名にはカスタム語彙を使用し、マスクまたはフラグ付けが必要な用語には語彙フィルターを使用します。
  4. 文字起こしではチャンネルラベルを維持し、ch_0/ch_1 を録音システムのチャンネル規則に対応付けます。
  5. ユーザーから通話カテゴリ、感情分析、発話時間の指標、割り込み、または生成 AI による通話要約を求められた場合にのみ、Call Analytics に切り替えます。

理由:

  • チャンネル識別は2チャンネルの音声向けに設計されており、話者の交代を推測する必要がありません。
  • Call Analytics はコストが高く、プロダクト固有の機能です。単純な文字起こしに使用すると、不要なコストやガバナンス上の対象範囲が発生する可能性があります。

例:リアルタイムストリーミングの制約

想定する用途:社内イベントにライブキャプションを追加します。

手順:

  1. HTTP/2 または WebSocket 経由でストリーミング Transcribe を使用します。
  2. FLAC、Ogg Opus、PCM など、サポートされているストリーミング形式でリアルタイム音声を送信します。
  3. 言語がわかっている場合は言語コードを指定します。わからない場合は、ストリーミング言語識別を使用します。
  4. 画面上の暫定キャプションには部分結果を、ログには確定結果を使用します。
  5. イベント後にキャプションを公開する場合は、最終録音をバッチ処理で再度文字起こしし、ライブ出力だけに頼らず字幕を編集します。

本番環境での経験則:ライブキャプションは、完璧な編集品質よりも低遅延を優先します。公開用の録音では、最終的なミックス音声を後からバッチ処理で文字起こしし、字幕の品質確認を行ってください。

本番環境の品質確認基準

公開前に、影響の大きい文字起こしをすべて確認してください。

  • 正確性:冒頭、専門用語が多い箇所、名前、数字、頭字語、発話の重なり、SNR が低い箇所からサンプルを確認します。
  • タイミング:開始時刻と終了時刻を、ドラフトの書き出しではなく最終メディアと照合します。
  • 話者の処理:spk_* または ch_* ラベルがエンドユーザーにとって意味のあるものか確認します。根拠がある場合にのみ、汎用ラベルを名前に置き換えます。
  • キャプション:行の長さ、読み上げ速度、分割、ショット切り替えのタイミング、非音声オーディオの欠落、プラットフォームの形式要件を確認します。
  • マスキング:セキュアなレビュー環境でマスキング前後の出力を比較し、PII/PHI のカテゴリと、サポート対象外の言語に関するリスクを確認します。
  • 管理:S3 バケット、プレフィックス、暗号化、KMS キー、ライフサイクル、IAM ロール、CloudTrail、AI サービスのオプトアウト要件を確認します。
  • コスト:リージョン、音声の長さ、追加機能、再実行回数、Call Analytics/Medical の料金が適用されるかを記録します。

公式ソース

コメント