ヤマムギ

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教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

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

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

 - AWS , , ,

  関連記事

EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました

EC2 Global Viewという機能がリリースされました。 EC2コンソール …

WordPressの年ごとのブログ投稿数を調べるSQL

毎年年末に使いそうなのでメモです。 [crayon-6aebcf303e5b94 …

EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する

EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …

Amazon Linux にnodejsとmongoDBをインストールする

EPEL リポジトリを利用してnodejsとnpmをインストールする [bash …

AWS Lambda(Python)でDynamoDB テーブルを日次で削除/作成(オートスケーリング付き)

この記事はAWS #2 Advent Calendar 2018に参加した記事で …

Amazon CodeCatalystのスペースとプロジェクトを作成してみました

Amazon CodeCatalystはIAMユーザーで操作するのではなく、AW …

LMA(amazon-transcribe-live-meeting-assistant)を海外とのインタビューミーティングで使ってみました

amazon-transcribe-live-meeting-assistant …

ユーザーガイドの方法でGithubからCodeCommitへリポジトリを移行する

GitリポジトリをAWS CodeCommitに移行するを参照しました。 環境 …

プライベートサブネットのEC2でセッションマネージャを使うようVPCエンドポイントを構成する

インターネットゲートウェイへのルートがないルートテーブルに関連付けられたプライベ …

Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する

Microsoft Teamsの検証を始めましたので、Slackで自動化している …