ヤマムギ

growing hard days.

*

テキストをAmazon PollyでMP3に変換してS3に格納(AWS Lambda Python)

   

Google Calendar Twilio ReminderのテキストをAmazon Pollyを使ってMP3ファイルに変換してS3に格納する部分の説明です。

AWS側の設定

MP3格納用S3バケット作成

Pollyのためというよりも後でTwilioでアクセスするための設定です。

Static website hostingを有効にします。

バケットポリシーを作成します。

ライフサイクルを設定します

生成されたMP3ファイルは不要になるのでライフサイクルルールで削除します。

Lambda実行用ロールの作成

ここで作ったロールをLambdaに設定します。

雑ですが、管理ポリシーに以下を設定しました。

  • AWSLambdaFullAccess
  • AmazonS3FullAccess
  • AmazonPollyFullAccess

あと、インラインポリシーに下記を設定しました。
これがないとログが出力されませんでした。

AWS Lambdaの環境変数

変数名 設定値
BUCKET_NAME Amazon Pollyが生成するMP3ファイルを格納するS3バケット名
BUCKET_REGION ap-northeast-1など S3バケットがあるリージョン名
VOICE_ID Amazon PollyのボイスID 日本語なので Mizuki
POLLY_REGION Amazon Pollyのリージョン名

ソースコードの説明

AWSのサンプルコードをベースにして少し変えてます。

set_twiml

  • Twilioを実行するためのTwiml(Twilio独自のXML)をS3に格納しています。
  • ContentType=’application/xml’ がないとTwilioが認識出来ません。

set_mp3

  • PollyがテキストをMP3ファイルに変換してS3に格納しています。
  • synthesize_speech にテキストを渡して変換結果を受け取っています。
  • response[“AudioStream”]をput_objectでS3にContentType = ‘audio/mpeg’で書き込んでいます。

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

IAMアクセス許可の境界でIAMロールの権限を制御する

IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …

AWS AmplifyでTodoアプリを作るハンズオンをやってみました

【お手軽ハンズオンで AWS を学ぶ】AWS Amplify で Todo アプ …

CodeDeployでECR、ECSにデプロイするパイプラインのチュートリアル

チュートリアル: Amazon ECR ソースと、ECS と CodeDeplo …

S3をトリガーにしたときのLambdaのリソースベースポリシー

LambdaのトリガーでS3を設定したとき、自動的にLambdaのリソースベース …

AD Connectorを作成してシームレスにドメイン参加する

VPN接続先のADで管理されているドメインにEC2 Windowsインスタンスか …

AWS Transit GatewayをResource Access Managerで他アカウントと共有

AWS Transit Gatewayを他アカウントに共有しました。 画面画像で …

EC2 Instance Connect向けのセキュリティグループのソースにプレフィックスリストを

EC2 Instance Connect、便利ですね。 キーペア不要で、EC2イ …

Amazon Linux2のジャンボフレーム

ユーザーガイドのEC2 インスタンスのネットワークの最大送信単位 (MTU)を試 …

RDS自動バックアップの自動クロスリージョンコピー

このブログのRDS for MySQLはAWS Backupで大阪リージョンから …

AWS Organizationsでアカウントを50作って指定したOUに移動するスクリプト

AWS Organizationsでアカウントを50個作る必要がありましたので、 …