初学者向け「Amazon Polly」(AI音声合成サービス)をPythonで利用するには:AWSチートシート
AWS活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、AWSのAI音声合成サービス「Amazon Polly」をPythonで利用します。
「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、AWSのAI音声合成サービス「Amazon Polly」をPythonで利用します。以下、Pollyに用意されているメソッドを概観し、幾つかの使い方を紹介します。
「Amazon Polly」とは
AWSには、事前トレーニング済みのAIを手軽に利用できる「AIサービス」が多数用意されており、その内容はコンピュータビジョンから言語、レコメンデーション、予測と多岐にわたります。
今回紹介するAmazon Polly(以下、Polly)は、テキストをリアルな音声スピーチに変換するAIクラウドサービスです。サポート言語は日本語や英語など、2021年2月の本稿執筆時点で28種類が提供されており、アメリカ英語やイギリス英語など、細分化されている言語もあります。
各言語を話す話者は音声IDで識別され、これは現在、62種類あります。多くのサポート言語では男性、女性の音声が提供されており、日本語では「Takumi」と「Mizuki」がそれに当たります。ちなみに「Polly」とは、英米でオウム(Parrot)によく付けられる名前です。
AWSの「AIサービス」はコンソール画面から利用できますが、開発を念頭に置かなくても、慣れてくれば今回のようにAPIを利用する方がより便利で効率的に感じてくるでしょう。本稿がそのように利用するきっかけになれば幸いです。
利用料金
Pollyは従量課金制で、処理したテキストの文字数に応じて毎月課金されます。標準音声の料金は音声文字のリクエスト100万字に対して4.00ドル、より高品質なニューラル音声(日本語は未対応)は100万字に対して16.00ドルです。
なおPollyは、無料利用枠の対象になっており、標準音声は最初のリクエストから12カ月間は、1カ月当たり500万字まで、ニューラル音声は100万字まで、無料で利用できます(ただし、無料利用枠を超えた場合には従量課金が適用されます)。
必要条件
本稿では読者の環境で下記要件が満たされていることを仮定しています。
- AWSアカウントを有しており、「AWS Identity and Access Management」(IAM)ユーザーに必要な権限(今回であればPollyと「Amazon S3」関連)が付与されていること。ホームディレクトリにAPIを利用するための認証情報が保存されていること
- AWSが提供するPython用のSDK「Boto3」がインストールされていること
なおこれは必須ではありませんが、以下のサンプルコードは「Jupyter Notebook」での実行を想定しています。
メソッド一覧
Pollyには下記のメソッドが用意されています。
メソッド名 | 機能 | 引数 | 戻り値 |
---|---|---|---|
describe_voice | 利用可能な音声一覧を返す | 言語コードなど | 辞書 |
synthesize_speech | テキストまたはSSMLを音声合成する | テキスト、言語コード、音声ID、出力形式など | 辞書 |
start_speech_synthesis_task | 非同期音声合成タスクを生成する | 上記に加え、書き出し先S3バケット名など | 辞書 |
list_speech_synthesis_tasks | 音声合成タスク情報一覧を返す | 最大値・タスクの状態 | 辞書 |
get_speech_synthesis_task | 特定の音声合成タスク情報を取得する | タスクID | 辞書 |
put_lexicon | レキシコンを保存する | レキシコン名とレキシコン | 辞書 |
list_lexicons | レキシコン一覧を返す | - | 辞書 |
get_lexicon | 特定のレキシコンの内容を返す | レキシコン名 | 辞書 |
delete_lexicon | 特定のレキシコンを削除する | レキシコン名 | 辞書 |
can_paginate | 各メソッドのページネーションの有無を調べる | メソッド名 | 真偽値 |
get_paginator | メソッドに関するページネータを生成する | メソッド名 | ページネータオブジェクト |
generate_presigned_url | 署名済みURLを返す | メソッドとその引数 | 署名済みURL |
Pollyでは3000文字以内の場合、「synthesize_speech」メソッドを用いて音声合成ができます。また、この戻り値はすぐに取得できます。一方で3000文字を超える場合(最大10万文字まで)は、「start_speech_synthesis_task」という非同期音声合成タスクを実行します。この場合、音声合成の結果は指定したS3バケットに保存されます。
SSMLとは音声合成マークアップ言語(Speech Synthesis Markup Language)の略称で、これを用いるとナレーションの声量や抑揚などを局所的に細かくコントロールできます。
レキシコンとは語彙(ごい)集のことです。これを登録することで、略字やPollyが誤読する単語について、利用者がPollyの発音を直接指定できます。
ここからはPollyのメソッドを用いて音声合成をしてみましょう。
関連記事
- クラウド「AI」API入門:AWS/Cognitive Services/Google Cloud/IBM Watsonの比較
「AWS AIサービス」「Azure Cognitive Services」「Google Cloud AIビルディングブロック」「IBM Watson API」という主要AIサービスの一覧表を示し、各サービスを1行程度で説明する。自分でAI/機械学習モデルを作る前に、既存のAIサービスがないか(カスタマイズできないか)を、これで確認しよう。 - 「スマートスピーカー」の中にある「人工知能」は何をしているのか、作り方から理解する
世界の名だたるプラットフォーマーが開発に力を入れる「スマートスピーカー」。どのような手順でどんな処理が行われているのかは完全にブラックボックスだ。「スマートスピーカーを理解するには、自作するのが早道」と提唱する開発者に話を聞いた。 - 「Amazon Connect」の、コールセンターを変える「破壊力」
Amazon Web Services(AWS)の「Amazon Connect」は、コールセンターをクラウド上にソフトウェアで構築できるサービスだ。最大の特徴はコールセンターの構築・運用コストの大幅な削減。だが、従来型のコールセンターシステムを、ビジネスの変化に柔軟に対応できるツールに変えたいという用途にも適している。AWSとセールスフォースの説明に基づき、このサービスをあらためて紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.