AWS Lambda + AI = 音声文字起こしと感情分析(その1:S3+Lambda)
AWSのホームページの初心者ハンズオンにある「AWS Lambda と AWS AI Services を組み合わせて作る音声文字起こし & 感情分析パイプライン 」の内容を自分のAWSアカウントでやってみました。
ハンズオンではAWSホームページで、10本の Youtube-video でもって、Lambda と AIサービスの基本を、実際の操作の様子で確認することができます。
今回の投稿では、この中から、以下の内容で5パートに分けてあげようと思っています。
- S3トリガーで Lambdaファンクションを起動する
- Amazon Transcribeを使って文字起こしを試してみる
- S3への音声ファイルアップロードをトリガに Lambdaを起動し、Transcribeするパイプラインを作る
- パイプラインで文字起こししたテキストを Comprehend で感情分析する
- Amazon Polly で作成した音声ファイルをパイプラインに投入する
ざっくりと基本構成を図で表してみて、最後まで行くと以下のような構成になります。
今回の投稿は、この構成の中から、S3への音声ファイルアップロードに対するイベントに連携して、Lambdaを動かします。
AWS Lambda と他のAWSサービスとの連携パターン
今回はパート1~5のうちのパート1として、S3 トリガーで Lambdaファンクションを起動するところをやってみます。
S3バケット:mikolabo-serverless-input(インプット用)を作成
Lambda関数の作成
Lambdaダッシュボードから
「関数の作成」をクリック
「設計図の使用」をクリック
「S3-get-object-python」をクリック
「設定」をクリック
関数名に「transcribe-function」
と設定
ロール名に
「transcribe-function-role」
と設定
バケットに、先ほど作成したS3バケットを指定
(mikolabo-serverless-input)
プレフィックス、サフィックスでトリガーとなるオブジェクトを条件付けできるが、今回は設定しない
指定したブループリントのコード
「関数の作成」をクリック
今回、Lambda関数でコンテントタイプを出力する処理だけ実施してみる。
「S3」をクリック
設定したS3バケットの
「プロパティ」タブをクリック
設定されているイベントをチェックし、
「編集」をクリック
イベントのタイプを指定できる。
今回は指定しない。
設定したLambda関数が登録されている。
「変更の保存」をクリック
S3バケットに音声ファイルをアップロード
「アップロード」をクリック
「ファイルを追加」をクリック
「アップロード」をクリック
アップロードされた。
Lambda関数のトリガー結果を確認
「モニタリング」
→「CloudWatchのログを表示」
Lambda関数のログが記録されている。
ログのリンクをクリック
コンテントタイプが出力されている。
Lambda関数を変更してみる
コメントアウトされていたイベント情報を出力するコードを有効化して、デプロイを実施
先ほどの音声ファイルをS3バケット「h4b-serverless-3.mp3」を再度アップロード
現時刻のログストリームをクリック
イベント通知の内容が追加されている。
今回は、ぞの1:S3トリガーで Lambdaファンクションを起動しました。
次回は、その2:Amazon Transcribeを使って文字起こしを試してみます。