ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , , ,

ad

ad

  関連記事

AWSのサービス数を数えてみました(2020/5/23)

何をもってサービスという単位にするかというのはあるかもしれませんが、とりあえず情 …

Cloud9でCodeWhispererを使用する

アクセス権限 Cloud9のEC2に設定するIAMロールのIAMポリシーで co …

AWS CLIからIAM Identity CenterへサインインしてCodeCommitのリポジトリを使用する

Macで操作しました。 AWS CLIバージョンアップ [crayon-6810 …

AWS Organizationsで新規メンバー登録したアカウントを組織から離して解約

2021年現在ではこの方法しかないと認識していますので書き残します。 そのうち新 …

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順

ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …

Amazon Q Developer for CLIをmacOSにインストールしました

2025/3/26のAWS Expert Online for JAWSの「Am …

ヤマムギvol.26 Amazon DynamoDBのデモをしました

今日はAWS認定クラウドプラクティショナー対策本(緑本)に関係するデモをしました …

AWS CLIでS3マルチパートアップロードを確認

AWS CLI を使用して、Amazon S3 にファイルをマルチパートアップロ …

AWS EC2 インスタンスステータスのチェックで失敗 原因はPHP-FPMのOOM-KILLER

先週に引き続きEC2のインスタンスステータスチェックで失敗 再起動するも失敗する …

AWS Client VPNの接続ログを確認しました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …