はじめに
こんにちは、初めまして、すずたつと申します。
AWS認定試験の勉強がひと段落したので、実際にAWSを使ってサービスを構築しよう!と思い、あるサービスの構築(こちらも投稿したいと思ってます)を進めているのですが、その際に使用したAmazon Transcribeについて紹介したいと思います。
Amazon Transcribeとは
AWS Documentationでは、以下のように記載されています。
Amazon Transcribe は、機械学習モデルを使用して音声をテキストに変換する自動音声認識(ASR)サービスです。Amazon Transcribeをスタンドアロンの文字起こしサービスとして使用したり、任意のアプリケーションにspeech-to-text機能を追加したりできます。
使ってみた
今回はマネージメントコンソールからAmazon Transcribeを使用してみました。Amazon Transcribeでは、以下の2つの処理方法が提供されています。
- バッチ文字起こし
- ストリーミング文字起こし
使用する際の前提条件
- AWSアカウントを所有
- IAMポリシーを使用するエンティティにアタッチ
2つ目のIAMポリシーについては、AWSのマネージドポリシーとして"AmazonTranscribeFullAccess"が用意されているので、このポリシーをアタッチすると最低限の動作は実行できると思います。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"transcribe:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::*transcribe*"
]
}
]
}
このポリシーだけだと、バケットをリストアップすることができません。s3:ListAllMyBucketsとs3:ListBucketのActionを追加することで、所有するバケットとその中身を一覧表示できます。(このポリシーに追加したほうが便利だと思うんだけど、、)
バッチ文字起こし
Amazon S3バケットにアップロードされたメディアファイルを文字起こしする方法。
- S3バケットに音声データファイルをアップロード
- トランスクリプションジョブを作成
- 文字起こし結果の表示
1. S3バケットに音声データファイルをアップロード
今回使用した音声データはこちら:medical-diarization.wav
2. トランスクリプションジョブを作成
2.1 ジョブの名前を入力
2.2 言語の設定
| 設定項目 | 内容 |
|---|---|
| 特定の言語 | 1つの言語を明示的に指定 言語が確定している場合に最も適切 |
| 自動言語識別 | 自動で言語を判別 言語が不明な場合に適切 |
| 複数言語の識別 | 候補となる言語を複数選択し、選択した言語の中から判別 複数の言語が話されており、言語が不明な場合に適切 |
今回は話されている言語がわかっているので、「特定の言語」を選択
言語は英語に設定
2.3 モデルタイプの選択
2.4 入力データとしてS3バケット内の音声データを選択
2.5 出力データの保存先バケットを指定
3. 文字起こし結果の表示
右上の「ダウンロード」からJSON形式で出力ファイルをダウンロード可能

JSON形式の出力ファイル
全体の構造
{
"jobName": "MyTranscriptionJob",
"accountId": "XXXXXXXXXXXX",
"status": "COMPLETED",
"results": {
"transcripts": [ ... ],
"items": [ ... ],
"audio_segments": { ... }
}
}
主要フィールド
➀results.transcripts
文字起こしした文章全体
②results.items
文字起こしした文章の各単語と句読点に関する情報
| フィールド名 | 説明 |
|---|---|
| type | pronunciation(発音する単語)かpunctuation(句読点)か |
| alternatives | 推測された単語の候補。confidence(0〜1の信頼度)が含まれる |
| start_time | 開始時間 |
| end_time | 終了時間 |
ストリーミング文字起こし
メディアストリームをリアルタイムで文字起こしする方法。
- 言語の設定
- ストリーミングを開始
1. 言語の設定
2. ストリーミングを開始
オプション機能
Amazon Transcribeでは以下の追加機能が使用できます。
| 機能 | 説明 |
|---|---|
| 代替文字起こし | 推測された単語を複数候補として列挙 |
| マルチチャネル | チャネルの識別が可能 |
| ジョブキューイング | 大量の同時文字起こしジョブを実行する場合に同時実行ジョブの制限を超えてジョブを送信可能 |
| 話者分離 | 文字起こし時に話者を区別可能 |
料金
おわりに
ここまで読んでいただきありがとうございました。
今回はAmazon Transcribeをマネージメントコンソールから使用してみました。AWSサービスの中でも簡単に使用できるサービスなので、ITの知識が少ない人でも簡単に実装できるのではないかと感じました。
誰かの参考になっていればうれしいです。
参考リンク











