SAM使って文字起こし&言語分析してみた
はじめに
先日開催された JAWS-UG Shimane#10 で行ったハンズオンが非常に面白かったです。
ざっくり下図のような構成のハンズオンで、以下のリポジトリがハンズオンの資料です。
ここから本題
これらをハンズオン後に、AWS SAM 使って一式構築してみました。
↓ 実装したソース一式
https://github.com/gitkado/aws-sam-polly-transcribe-comprehend
ポイント
利用サービス
AWS Lambda(サーバレスでコードを実行)
https://aws.amazon.com/jp/lambda/Amazon Translate(深層学習モデルを使用した言語翻訳)
https://aws.amazon.com/jp/translate/Amazon Polly(深層学習を使用して文章をリアルな音声に変換)
https://aws.amazon.com/jp/polly/Amazon Transcribe(音声をテキストに自動的に変換する)
https://aws.amazon.com/jp/transcribe/AWS Comprehed(テキスト内でインサイトや関係性を検出)
https://aws.amazon.com/jp/comprehend/
構成
TranslateFunction
- 英語文章でリクエストされたparams['text']を日本語文章に変換して出力(Translate)
ComprehendFunction
- リクエストされたparams['text']を読み上げてmp3ファイルを生成 (Polly)
- 作成したmp3をS3にアップロード (S3)
- S3のmp3ファイルを文字起こし (Transcribe)
※ params['text']と同じ値が生成される予定 - 文字起こししたJSONファイルを言語分析して結果を出力 (Comprehend)
実行手順
- Cloud9上で実行できることは確認できています。
- Cloud9で本リポジトリをcloneして使用してください。
# 関数実行 $ sam local invoke TranslateFunction --event events/us_event.json $ sam local invoke ComprehendFunction --event events/ja_event.json # APIサーバ起動(http://127.0.0.1:3000/) $ sam local start-api # sam package $ sam package \ --template-file template.yaml \ --s3-bucket 作成済みの自由なバケット名 \ --output-template-file packaged-template.yaml \ --region ap-northeast-1 # sam deploy $ sam deploy \ --template-file packaged-template.yaml \ --stack-name cfn-aws-sam-polly-transcribe-comprehend \ --capabilities CAPABILITY_IAM