https://github.com/michimani/jaws-ug-bgnr-24-homework
JAWS-UG 初心者支部#24 サーバレスハンズオン勉強会 にて宿題となっていた 文字起こし + 翻訳 パイプライン を構築するための CDK プロジェクトです。
https://github.com/michimani/jaws-ug-bgnr-24-homework
Last synced: 3 months ago
JSON representation
JAWS-UG 初心者支部#24 サーバレスハンズオン勉強会 にて宿題となっていた 文字起こし + 翻訳 パイプライン を構築するための CDK プロジェクトです。
- Host: GitHub
- URL: https://github.com/michimani/jaws-ug-bgnr-24-homework
- Owner: michimani
- Created: 2020-04-21T12:19:43.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T21:49:45.000Z (almost 2 years ago)
- Last Synced: 2025-01-04T15:57:34.181Z (5 months ago)
- Language: TypeScript
- Homepage:
- Size: 1.23 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
jaws-ug-bgnr-24-homework
---# 概要
JAWS-UG 初心者支部#24 サーバレスハンズオン勉強会 にて宿題となっていた **文字起こし + 翻訳 パイプライン** を構築するための CDK プロジェクトです。
- [JAWS-UG 初心者支部#24 サーバレスハンズオン勉強会 - connpass](https://jawsug-bgnr.connpass.com/event/165065/)
この CDK プロジェクトで作成されるリソース、構築されるアーキテクチャは次のとおりです。
## 作成されるリソース
- S3 Bucket
- 文字起こし対象ファイルアップロード用
- 文字起こし結果出力用
- 翻訳結果出力用
- Lambda 関数
- 文字起こし用
- 翻訳用
- IAM ロール、 IAM ポリシー
- 文字起こし用 Lambda 関数用
- 翻訳用 Lambda 関数用## 構築されるアーキテクチャ

## アーキテクチャの詳細
- `transcribe-input-bucket` に英語の音声ファイル (`.mp3`) をアップロードすると、そのイベントをトリガーに、 Amazon Transcribe の API を実行する Lambda 関数が起動します。
- Transcribe による文字起こしの結果は JSON 形式で `transcribe-output` に出力されます。
- `transcribe-output-bucket` への JSON ファイルの出力をトリガーに、 Amazon Translate の API を実行する Lambda 関数が起動します。
- この Lambda 関数では、 Translate による翻訳結果を TXT 形式で `translate-output-bucket` に出力します。また、 Slack の WebHook URL が指定されている場合は Slack への通知も行います。# 準備
1. AWS CDK のインストール (未インストールの場合)
```bash
$ npm install -g aws-cdk
$ cdk --version
1.95.1 (build ed2bbe6)
```2. リポジトリを clone
```bash
$ git clone https://github.com/michimani/jaws-ug-bgnr-24-homework.git
$ cd jaws-ug-bgnr-24-homework
```
対象の AWS アカウントで CDK を初めて使用する場合は、下記のコマンドを実行します。
```bash
$ cdk bootstrap
```3. npm パッケージのインストール
```bash
$ npm install
```4. config ファイルの作成
`stack-config.json.sample` をコピーして `stack-config.json` を作成します。
```bash
$ cp stack-config.json.sample stack-config.json
```
`stack-config.json` は下記のような内容になっています。
```json
{
"s3_suffix": "replace-to-any-string",
"slack_webhook_url": "https://*********"
}
```
- `s3_suffix`
作成される S3 バケット名のサフィックスを編集します。(自分の名前や日付など、一意になるような文字列を指定します)
- `slack_webhook_url`
Slack への通知を行う場合は Incoming WebHook の URL を指定します。
5. CloudFormation テンプレートの生成```bash
$ cdk synth
```
`cdk.out` ディレクトリに CloudFormation のテンプレートが生成されます。6. CDK のデプロイ
```bash
$ cdk deploy
```# パイプラインの実行
`sample/HelloEnglish-Joanna.mp3` を `transcribe-input-****` バケットにアップロードします。
しばらくすると `translate-output-****` バケットに翻訳結果が `yyyymmddhhmmss_Translate.txt` というキー名で出力されます。Slack の Incoming WebHook URL を指定している場合は、対象となっているチャンネルにも翻訳結果の文章が通知されます。サンプルの MP3 ファイルは Amazon Polly のサンプル音源を使用しています。
- [Amazon Polly](https://aws.amazon.com/polly/?nc1=h_ls)
# リソースの削除
作成したリソースを削除する場合は、作成された S3 バケット内のオブジェクトをすべて削除したあとに、下記のコマンドを実行してください。
```bash
$ cdk destroy
```