0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Transcribe使ってみた

0
Posted at

はじめに

こんにちは、初めまして、すずたつと申します。
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"が用意されているので、このポリシーをアタッチすると最低限の動作は実行できると思います。

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バケットにアップロードされたメディアファイルを文字起こしする方法。

  1. S3バケットに音声データファイルをアップロード
  2. トランスクリプションジョブを作成
  3. 文字起こし結果の表示

1. S3バケットに音声データファイルをアップロード

image.png

今回使用した音声データはこちら:medical-diarization.wav

2. トランスクリプションジョブを作成

image.png

2.1 ジョブの名前を入力

image.png

2.2 言語の設定

image.png

設定項目 内容
特定の言語 1つの言語を明示的に指定
言語が確定している場合に最も適切
自動言語識別 自動で言語を判別
言語が不明な場合に適切
複数言語の識別 候補となる言語を複数選択し、選択した言語の中から判別
複数の言語が話されており、言語が不明な場合に適切

今回は話されている言語がわかっているので、「特定の言語」を選択
言語は英語に設定

2.3 モデルタイプの選択

事前にトレーニングしたモデルを使用することも可能
image.png

2.4 入力データとしてS3バケット内の音声データを選択

image.png

2.5 出力データの保存先バケットを指定

image.png

3. 文字起こし結果の表示

音声データが文字起こしされている
image.png

右上の「ダウンロード」からJSON形式で出力ファイルをダウンロード可能
image.png

JSON形式の出力ファイル

全体の構造

asrOutput.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. ストリーミングを開始

1. 言語の設定

バッチ文字起こしと同様に設定可能
image.png

2. ストリーミングを開始

「ストリーミングを開始」を選択
image.png

マイクに向かって話すとリアルタイムで文字起こしされる
image.png

オプション機能

Amazon Transcribeでは以下の追加機能が使用できます。

機能 説明
代替文字起こし 推測された単語を複数候補として列挙
マルチチャネル チャネルの識別が可能
ジョブキューイング 大量の同時文字起こしジョブを実行する場合に同時実行ジョブの制限を超えてジョブを送信可能
話者分離 文字起こし時に話者を区別可能

料金

1秒ごとに課金され、1リクエストあたりの最低料金は15秒
image.png

おわりに

ここまで読んでいただきありがとうございました。
今回はAmazon Transcribeをマネージメントコンソールから使用してみました。AWSサービスの中でも簡単に使用できるサービスなので、ITの知識が少ない人でも簡単に実装できるのではないかと感じました。
誰かの参考になっていればうれしいです。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?