会議の議事録を取ることが大変なので可能な限り自動化したい。
目標
動画をアップロードしたら音声をテキスト化してそれを読みやすい形で要約する。近年のAIサービスを使えば可能なのではという浅い考え。
前提
・動画→テキストは不可で動画→音声→テキストと一度、動画から音声に出力する必要がありそう。
・動画→音声はFFmpegというサービスが良さそう。
・IaaSサービスだと稼働している限りお金がかかるのでサーバレスで実装したい
・処理の流れとしては
動画をアップロード→サーバレスサービスが自動で動画を音声に抽出→サーバレスサービスが自動で音声をテキストに抽出→AIサービスがテキストを要約
クラウドサービスの候補
-
Google Cloud
→ 社内の会議ツールがGoogle Meetということもあり第一候補。 -
AWS
→ 単純に有名で自分自身知識があるため。
※その他のサービスは触ったこともないため候補に入れてません。
Google Cloud
結論
サーバレスでの実装ができなかったのでAWSでの実装を進めることに
利用サービス
Cloud Storage
Cloud Functions
speech to text(動画→音声の実装ができなかったのでそもそも使ってない)
実装できなかった理由
Cloud FunctionsにFFmpegをインストールするためにはカスタムランタイムを使用する必要があり、複雑そうだったので挫折。(こちらについては現在方法を模索中)
その他の方法としてApp EngineやCompute EngineにFFmpegをインストールして実装する方法があるようですがサーバーありきとなるので諦めました。
AWS
FFmpegの実装方法
Lambdaへの実装方法としてはLambda Layerを使うことでFFmpegの実装が可能なようです。
「FFmpeg をカスタムレイヤーとして Lambda 上で動かしてみた」
https://dev.classmethod.jp/articles/ffmpeg-lambda-layer/
具体的な実装方法については次回説明します。
利用サービス
Lambda
S3
Transcribe
具体的な構成
S3への何回PUTする気?というツッコミが入りそうですが一旦これでいきます。
- PCからS3に手動で動画をアップロード
- S3への動画ファイルのアップロードをトリガーにLambdaを実行
- Lambdaで動画ファイルを音声ファイルに変換してS3の別のバケットに保存
- S3への音声ファイルのアップロードをトリガーにTranscribeを実行
- Transcribeで音声ファイルをテキストファイルに変換してS3の別のバケットに保存
- S3へのテキストファイルのアップロードをトリガーに別のAIツールを用いてテキストファイルを要約する(予定)
次回
その2、その3
上記の1~3までを実装する手順を具体的に記載したいと思います。
最後までご覧いただきありがとうございました。