LoginSignup
2
0

More than 1 year has passed since last update.

AWS公式資料で挑むMLS認定(9)-Amazon PollyをPython Boto3で検証

Last updated at Posted at 2022-05-17
[前回] 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')

検証環境

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の登場です。お楽しみに。

[次回] AWS公式資料で挑むMLS認定(10)-Amazon SageMakerの基本
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0