GIS奮闘記

元GISエンジニアの技術紹介ブログ。主にPythonを使用。

スポンサーリンク

Amazon Polly と Python で音声合成をしてみよう!

さて、本日は Amazon Polly と Python を使って音声合成(テキストなどによって入力した言葉を読み上げさせること)をしてみようと思います。ここ数年どんどん存在感を増してきている AWS ですが、本当に色々なサービスがあり便利ですね。

Amazon Polly とは?

Amazon Polly はテキストをリアルなスピーチに変換するクラウドサービスです。毎月 500万文字まで無料らしいので、非常に良心的ですね。

必要なライブラリ

Python で AWS まわりの操作をするには、boto3 というライブラリが必要です。pip install boto3 でインストールしてください。

読み上げるテキスト

コードにべた書きですが、今回は「GIS奮闘記」という文章を音声合成してみようと思います。

実行環境

Windows10 64bit
Python3.6.6

サンプルコード

# -*- coding: utf-8 -*-
import os
from tempfile import gettempdir
from contextlib import closing
from boto3 import client

polly = client("polly",
               region_name="us-east-1",
               aws_access_key_id="****",
               aws_secret_access_key="****")

response = polly.synthesize_speech(Text = "GIS奮闘記",
                                   OutputFormat = "mp3",
                                   VoiceId = "Mizuki")

if "AudioStream" in response:
    with closing(response["AudioStream"]) as stream:
        output = os.path.join(gettempdir(), "speech.mp3")

        with open(output, "wb") as file:
            file.write(stream.read())

os.startfile(output)

作成された音声ファイルが以下になります。

https://drive.google.com/file/d/1ZgowBcCQPDJw9U1C0lLZ9ZVfdQ1zk6H_/view?usp=sharing

ばっちり「GIS奮闘記」ち読み上げられていますね!

さいごに

この技術を使用すれば Web サイトや スマホアプリの中で色々なテキストの読み上げをすることができますね。こんなサービスを用意してくれている AWS は本当にありがたい存在です。Python からの使用もとても簡単なので興味のある方はぜひ Amazon Polly を使ってみてください。本日は以上です。