Amazon PollyをAWS SDK for python(Boto3)からウェブアプリケーションで使ってみた #reinvent

Amazon PollyをAWS SDK for python(Boto3)からウェブアプリケーションで使ってみた #reinvent

Clock Icon2016.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

大阪のガノタ市田です。

今回は、re:Invent2016で発表された「AWS Polly」をAWS SDK for python(Boto3)を用いて、ブラウザから実行できるアプリケーションを試してみたいと思います。 アプリケーションは、サンプルが公式ドキュメントにありますので、そちらを利用します。

環境の準備

今回は、手元のMacでサンプルを動かそうと思います。 もし、必要な環境がMacになければ以下の手順で準備します。 尚、手元のMacは「OS X 10.11.6」です。ご利用のMac環境によってこの通りにはならない場合がありますので予めご了承ください。

python3.Xのインストール

brew install python3

which python3
/usr/local/bin/python3

virtualenvのインストール

pip install virtualenv

次に以下のコマンドで新しい環境を作ります。

virtualenv --python=/usr/local/bin/python3 testenv

環境の切替

source testenv/bin/activate
(testenv) ~

この環境を抜ける場合は、下記のようにdeactivateします。

(testenv) ~ deactivate

AWS SDK for Pythonのインストール

サンプルを動かすために必要なSDK環境をインストールします。

(testenv) ~ pip install boto3

認証情報の作成

クライアントはMac上のAWS Configファイルの認証情報を使って、Amazon Pollyにアクセスするので、今回のサンプルスクリプト用の認証情報を作成します。 サンプルスクリプトは、「adminuser」という名前のprofileを利用するので、そちらに合わせて作成します。

尚、Macには既にAWS CLIがインストールされているものとします。Amazon Pollyを使う場合は最新バージョンにバージョンアップしておきましょう。バージョンアップは以下で可能です。

pip install -U awscli

では、認証情報を作成していきます。 最初に、IAMユーザを作成しておきます。権限は今回は「AmazonPollyFullAccess」を選択しました。忘れず認証情報のCSVファイルをダウンロードしておきましょう。 次に、profileを追加します。リージョンの指定はAmazon Pollyが利用できる「us-east-1」にします。

aws configure --profile adminuser

AWS Access Key ID [None]: <CSVファイルに記載のものを入力>
AWS Secret Access Key [None]: <CSVファイルに記載のものを入力>
Default region name [None]:us-east-1
Default output format [None]:

スクリプトの準備

次にサンプルスクリプトを設置します。ソースコードは下記の2つをコピペします。

スクリプトの実行

準備ができましたのでスクリプトを実行します。

(testenv) ~ python server.py

Starting server, use to stop...
Open http://localhost:8000/index.html in a web browser.

ターミナルに表示された URL をウェブブラウザで開くと、下記のようなページにアクセスできます。

01-pollysample

次に「Select a voice」から日本語を選択して、適当な文章を入力します。文章が入力できたら「Read」ボタンをクリックします。

02-pollytest

すると、Macのスピーカーから、そのまま入力した文章の読み上げが聞こえました。

最後に

AWS CLIと同様に、簡単にテキストを音声に変換することができました。面白いですね。

以上です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.