WordPress

Amazon Polly を試してみた

こんばんは、 crz33 です。

音声変換サービスの Amazon Polly を試してみたので紹介します。

動画版コンテンツは下のリンク先です。
https://youtu.be/_H3vzPT1ReY

目標

今回の目標は、 Amazon Polly をスクリプトから実行して音声を作ることです。
次のSSMLのテキストをmp3にできたら終わりです。

<speak>こんばんは、 <say-as interpret-as="characters">crz33</say-as> です。</speak>

AWS コマンドラインインターフェース

Amazon Polly をスクリプトから呼び出すには AWS コマンドラインインターフェースを使います。
Java や Python などいろんな言語が使えます。

私は Python を普段使っているので、Python のライブラリ Boto3 を使います。

Boto3 の準備

Boto3 を準備します。

インストールは次のようになります。

$ pip3 install boto3

次に、環境変数を使った、資格情報とAWSのリージョンの設定です。

  • AWS_ACCESS_KEY_ID はIAMで作成したアクセスキーを設定します。
  • AWS_SECRET_ACCESS_KEY はIAMで作成したシークレットキーを設定します。
  • AWS_DEFAULT_REGION は東京リージョンなどを設定します。

Amazon Polly は東京リージョンでも使えます。
どのリージョンを使うかは各自の好みがあると思います。

最低限のコード

準備ができたら Python コードを書いていきます。

チェックや例外処理を無視した、最低限のコードは次のようになります。

from boto3 import Session
from contextlib import closing
session = Session()
polly = session.client("polly")
response = polly.synthesize_speech(
    Text=mytext, TextType="ssml", OutputFormat="mp3", VoiceId="Takumi",
)
with closing(response["AudioStream"]) as stream, open("./speech.mp3", "wb") as f:
    f.write(stream.read())

非常に簡単ですね。

今回はSSMLをテキストとして指定するので、 TextType 属性に SSML を指定するところがポイントです。

まとめ

まとめです。
今回は目標が簡単すぎました。

  • Python で Amazon Polly を使って音声変換しました。
  • 資格情報やAWSのリージョンは環境変数で設定しました。
  • SSMLをテキストに使う場合はAPIにオプションが必要でした。
ABOUT ME
crz33
アラフォーのシステムエンジニアです。 それなりの規模のSI会社でいろんなプロジェクトを渡り歩き、 立場もプログラマー、アーキテクト、プロジェクトリーダーと経験してきました。 今はプロジェクトマネージャーとして活躍?中です。 早期リタイアを目指し、アフィリエイトで稼げないかと奮闘中です。

COMMENT

メールアドレスが公開されることはありません。