[前回] AWS公式資料で挑むMLS認定(8)-Amazon Polly音声変換の仕組み
はじめに
今回はAmazon Pollyの実践編です。
AWS環境で、Python boto3を使って音声合成を行ってみます。
AWS SDK for Python(Boto3)とは
- Pythonを使用し、AWSサービスを操作するためのライブラリ
- Pythonアプリケーション、ライブラリ、スクリプトを、AWSサービス(S3、EC2、DynamoDB)と簡単に統合可能
- 2つの異なるレベルのAPIを提供
- クライアントAPI(低レベル)
- 下層のHTTP API操作との1対1のマッピングが提供される
- 例:
s3 = boto3.client('s3')
- リソースAPI
- 属性にアクセスし、アクションを実行するためのリソースオブジェクトとコレクションが提供される
- 明示的なネットワーク呼び出しは表示されない
- 例:
s3 = boto3.resource('s3')
- 属性にアクセスし、アクションを実行するためのリソースオブジェクトとコレクションが提供される
- クライアントAPI(低レベル)
検証環境
CPU: Intel(R) Core(TM) 3.30GHz(4コア8スレッド)
メモリ: 16 GB
OS: Ubuntu 20.04 LTS
ちなみに、Ubuntuは、Windows 10で以下のように管理者権限で導入しました。
> wsl --install -d Ubuntu-20.04
検証準備
AWSのアクセスキーが必要です
※ 注意: アクセスキーはくれぐれも間違って公開しないように、厳重に保管してください。
- アクセスキー ID (access_key_id)
- シークレットアクセスキー (secret_access_key)
boto3をインストール
$ pip3 install boto3
検証シナリオ
SynthesizeSpeech Pythonコード例(英語音声)を参考に、日本語音声合成を行ってみます。
AWS SDK for Python(Boto3)を使用し、ほぼリアルタイムでテキストを音声合成できるか確認します。
アクセスキーは、実際のものに書き換えてください。
※ 再度注意: アクセスキーが含まれたソースコードをそのまま共有したり公開してはいけません!!!
speech.py
import boto3
polly_client = boto3.Session(
aws_access_key_id="XXXXXXXXXXXX",
aws_secret_access_key="YYYYYYYYYY",
region_name='ap-northeast-1').client('polly')
response = polly_client.synthesize_speech(VoiceId='Takumi',
OutputFormat='mp3',
Text = 'みなさん、こんにちは、これはAmazon Pollyによる音声変換のテストです。',
Engine = 'neural')
file = open('speech.mp3', 'wb')
file.write(response['AudioStream'].read())
file.close()
Python実行
$ python3 speech.py
すると、カレントディレクトリにspeech.mp3
音声ファイルが生成されました。
聴いてみると、アナウンサー並みの発音で例文を読んでくれました、すごい!
楽しくなったので、Python アプリケーション例も試してみることに(内容は割愛)。
おわりに
Boto3を使って、Amazon Pollyの音声合成を検証してみました。
次回は、MLサービスAmazon SageMaker
の登場です。お楽しみに。