AWS for WrodPressのプラグインで自動音声再生と翻訳 | そう備忘録

AWS for WrodPressのプラグインで自動音声再生と翻訳

AWS for WordPress

WordPressのプラグインでAWS(Amazon Web Services)のDeep Learningを使ったホームページの音声読み上げや他言語への自動翻訳を行うプラグインを試した時の備忘録。

ブログをAWSのEC2にWordPressをインストールして書いている事もあり、以前からAWS関連のプラグインを試してみたいと思っていた。

今回ちょっと機会があったのでプラグインをインストールしてみた。

環境

尚、このブログの環境は以下の通り。

Server

AWS(Amazon Web Services) EC2(Elastic Compute Cloud)

OS

Ubuntu Server 18.04 LTS

PHP

PHP 7.4

CMS

WordPress Ver5.5

テーマ

Hueman Ver 3.6.6

作業手順

おおまかな作業手順は以下の通り。

  1. AWSアカウントの作成
  2. プラグインのインストール
  3. プラグインの設定

AWSアカウントの作成

元々使っているアカウントだと権限が大きすぎて余計なリソースまでアクセスできてしまうので今回のプラグイン用に権限を絞ったAWSのアカウントを作成する。

AWSコンソール

AWSコンソールにログインをしてサービス一覧からIAM(Identity and Access Management)を選択する。

AWSのコンソールからIAMを選択する

ユーザの追加

左のメニューから”ユーザ”をクリックする。

ユーザを選択する

「ユーザを追加」ボタンをクリックする。

ユーザを追加ボタンをクリックする
  • ユーザ名:任意の名前
  • プログラムによるアクセス:チェック
  • AWS マネジメントコンソールへのアクセス:未チェック

「次のステップ アクセス制御」ボタンをクリックする。

ユーザの追加

ポリシーをアタッチ

アクセス許可の設定で「既存のポリシーを直接アタッチ」ボタンを選択する。

既存のポリシーを直接アタッチを選択する

ポリシーのフィルター欄に”wordpress”を入力するとAWSForWordPressPluginPolicyが現れるのでチェックして「次のステップ:タグ」ボタンをクリックする。

AWSForWordPressPluginPolcyを選択する

タグの設定

必要に応じてタグ(e-mailなどのユーザ情報)を追加して「次のステップ:確認」ボタンをクリックする。

自分はタグは設定していない。

タグは未設定

確認&作成

確認画面が表示されるので「ユーザの作成」ボタンをクリックする。

確認画面が表示される

キーの保存

アクセスキーIDとシークレットアクセスキーが表示されるので保存しておく。

シークレットアクセスキーはこの画面でしか表示されないので忘れずに保存しておく必要がある。

アクセスキーIDとシークレットアクセスキーの保存

作成された

AWS for WordPress用のアカウントが作成された。

アカウント一覧画面

プラグインのインストール

WordPressにAWS for WordPressのプラグインをインストールする。

WordPressの管理画面の左側のメニューからプラグイン、新規追加、プラグインの検索欄で”AWS for WordPress”を検索して表示する。

該当のプラグインが表示されたら「今すぐインストール」ボタンをクリックする。

AWS for WordPressのプラグインを検索して表示する

インストールが終了したら「Activate」(有効化)ボタンをクリックする。

Activateボタン

設定

プラグインがインストールされるとWordPressの管理画面の左のメニューにAWSメニューが表示されるようになるので各種設定を行う。

メニューからAWSー>Generalを選択する。

プラグインの設定、General

General

ここでは基本的な設定を行う。

  • AWS access key:先程保存したアクセスキーID
  • AWS secret key:先程保存したシークレットアクセスキー
  • AWS Region:US East(N. Virginia)を選択した

東京リージョンだと現時点(2020年10月)ではテキストの日本語音声での読み上げ(Amazon Polly)には対応しているのだが他言語への翻訳( Amazon Translate)に対応していないので米国リージョンを選択している。

アクセスキーIDなどの設定

Text to Speech

続いてText-to-Speechメニューを選択する。

この設定を行うと記事上部(表示位置は指定可能)に音声再生用のプレイヤーが表示されて再生ボタンを押すと記事を読み上げてくれる。

使用用途は主に目の不自由な人向けの機能だと思うが後述する翻訳と組み合わせる事により、記事を翻訳して他言語で読み上げるなどの使い方ができるようになる。

Amazon Pollyのプレーヤー

設定画面

Amazon Polly(ディープラーニングを使用したテキスト読み上げサービス)に関する設定を行う。

Amazon Polly設定画面

設定値の説明

Source language

記事の言語

Japanese(日本語)を設定した

Enable text-to-speech support

text-to-speechを有効にするかどうか

この項目をチェックして「変更を保存」することで以下の項目が表示されて設定可能になる

Voice name

デフォルトではJapanese:Takumi(男性)とJapanese:Mizuki(女性)が選択できる

上記の2人であれば無料枠の対象になるが他の音声の場合は最初から有料になる 

Neural Text-To-Speech

Newscaster Style

Conversational Style

デフォルトの音声エンジンでは設定不可なのだがエンジンにニューラルを設定すると使用可能になる模様(未検証)

ニュースキャスター風の発音スタイルや会話風の発音スタイル(自然かつフレンドリーに聞こえるらしい)が設定できる模様

Sample rate

サンプルレートは22050Hzを設定した

22050Hz、16000Hz、8000Hzが設定可能でサンプルレートを下げると音質が低下する

Automated breaths

自動息継ぎ(チェックした)

チェックをすると適当な所(恐らく句読点)で息継ぎをする

Enable SSML support

SSMLの有効化(チェックした)

SSML(Speech Synthesis Markup Language)を使うことで強調や読み上げ速度、イタリア風の発音など様々なタグが用意されている

Lexicons

語彙集を登録する(未検証)

例えばW3Cを「World Wide Web Consortium」でレキシコンを登録しておけば登録された内容で発音してくれる

専門用語が多いサイトなどでは効果があるのだと思われる

Audio speed [%]

音声の再生スピート

デフォルトの100%だと若干遅く感じたので120%に設定した

Player position

再生プレーヤーの表示位置

  • Before Post(記事の前)
  • After Post(記事の後)
  • Do not Show(非表示)

が選択できる

Player label

プレーヤーの上部中央にラベルを表示させることが出来る

New post default

新規投稿時にAmazon Pollyをデフォルトで有効にするかどうか

  • Amazon Polly enabled(有効)
  • Amazon Polly disabled(無効)

が選択可能でdisabled(無効)を選択している

Autoplay

自動再生(未チェック)

チェックするとページが読み込まれた時に自動で音声が再生される

Bulk update all posts

全ての過去の投稿を含めて一括でAmazon Pollyの設定を変更する機能の様だがこのプラグインのバージョンでは機能が無効になっている

Add post title to audio

記事のタイトルを読み上げるかどうか

有効にしている

Add post excerpt to audio

記事の抜粋の表示

有効にすると各オーディオファイルの冒頭に投稿の抜粋が表示されるとあるが正直良くわからなかった

Enable Media Library support

他のメディアプレーヤーにしたい時に選択するのだと思われる

ローカルストレージを有効にする必要があり未検証

Skip tags

正直使い方が分からなかった

ここで指定したタグはSSMLで指定してもスキップされるのかも

Enable download audio

チェックをするとプレーヤーの右にダウンロードメニューが表示されて音声のダウンロードが可能になる

Store audio in Amazon S3

チェックをするとAmazon S3上にmp3形式でオーディオファイルが保存される

S3上に保存される

Post types

WordPressでの投稿タイプ

初期値でpostが設定されていたが使い方は良くわからなかった

Amazon CloudFront (CDN) domain name

Amazon CloudFrontを使ってコンテンツの配信を高速化したい時にドメイン名を指定する

自分は利用していないので未設定

Display “Powered by AWS”

チェックをするとプレーヤーの右下に”Voiced by Amazon Polly”と表示される

Enable logging

ログを有効化するかどうか

料金体系

Amazon Pollyの最新の料金体系はこちらを参照して欲しい。

現時点(2020年10月)では最初のリクエストから12ヶ月間は1ヶ月あたり500万文字までの無料枠がある。

無料枠を超えた場合は100万字に対して4.00ドル、またTakumiとMizuki 以外のニューラル音声の場合は100万文字に対して16.00ドルとなっていた。

Translate

ここでは他言語への翻訳に関する設定を行う。

この機能は現時点(2020年10月)ではUS East (N. Virginia)、 US East (Ohio)、 US West (Oregon)、EU (Ireland)のリージョンしか使用できないので最初のGeneralで上記のいずれかのリージョンを指定する必要がある。

設定画面

Amazon Translate(ディープラーニングテクノロジーをベースとした翻訳サービス)に関する設定を行う。

下記の画面ショットは言語が多いので途中を省略している。

翻訳設定画面

設定値の説明

Enable translation support

チェックをするとAmazon Translateが有効になり他言語への自動翻訳が可能になる

Source language

ページの元の言語

“Japanese”を選択した

Enable audio for translations

チェックをするとオーディオへの変換が有効になる(チェックをした)

Target languages

変換先言語

チェックをした言語が対象になるので試しにEnglish、French、Russianをチェックしてみた

現時点(2020年10月)で使用可能な言語は以下の通り

  • Afrikaans
  • Albanian
  • Amharic
  • Arabic
  • Azerbaijani
  • Bengali
  • Bosnian
  • Bulgarian
  • Canadian French
  • Danish
  • Dutch
  • Chinese
  • Croatian
  • Czech
  • Dari
  • English
  • Estonian
  • Finish
  • French
  • Georgian
  • German
  • Greek
  • Hausa
  • Hebrew
  • Hindi
  • Hungarian
  • Italian
  • Indonesian
  • Japanese
  • Korean
  • Latvian
  • Malay
  • Norwegian
  • Persian
  • Polish
  • Portuguese
  • Pushto
  • Romanian
  • Serbian
  • Slovak
  • Slovenian
  • Somali
  • Swahili
  • Russian
  • Spanish
  • Swedish
  • Tagalog
  • Tamil
  • Thai
  • Turkish
  • Ukrainian
  • Urdu
  • Vietnamese

Voice

言語によっては複数の音声をプルダウンから選択する事ができる

以下はEnglishの例

EnglishのVoice一覧

Label

表示の際のラベル

Display

プレイヤーに表示する際の表示方法

  • Flag:国旗
  • Label:上記のLabel
  • Flag+Label:国旗とLabelの両方

が指定可能

Post types

WordPressでの投稿タイプ

Enable logging

ログを有効化するかどうか

翻訳の実行

上記の設定をすると投稿画面の下部にAmazon Pollyの設定が表示されるようになるので、Enable Text-To-Speech (Amazon Polly)にチェックをして「Translate」ボタンを押すと翻訳が開始される。

翻訳の実行

Enable Text-To-Speechのチェックボックスなのだが記事毎に設定をすることが出来る。

ただ自分の環境ではチェックを外して更新したのにも関わらず勝手にチェックが入ってしまう現象が発生している。

プラグインのサイトの掲示板を見たのだが同じ様な投稿は見当たらなかったので自分の環境だけかも知れないのでもう少し様子を見てみることにした。

翻訳後のページ

数分後に翻訳が終了すると投稿ページのプレイヤーの上部に日本、イギリス、フランス、ロシアの国旗が表示された。

日本、イギリス、フランス、ロシアの国旗

それぞれの国旗を押すとページがその国の言語に自動翻訳されるのとプレイヤーの再生ボタンを押すと記事をその国の言語で読み上げてくれる。

以下の動画で確認してみて欲しい。

料金体系

Amazon Translateの最新の料金体系はこちらを参照して欲しい。

現時点(2020年10月)の料金体系は最初の翻訳リクエストから12ヶ月間は1ヶ月200万文字までの無料枠がある。

無料枠を超えた場合は100万文字あたり15.00ドルとなっていた。

Podcast

Amazon Pollycastは標準のポッドキャストアプリケーションを使用して音声コンテンツを再生する事ができる。

今回は設定をしなかったがいずれ設定をしたら記事に追記したいと思う。

Podcastアプリケーション

Alexa Integration

上記のPodcastの設定を行うとAmazon Echo(アレクサ)から再生をする事ができる。

こちらもいずれ試したら記事にしたいと思う。

Alexa Integration

CloudFront

遅延の少ないグローバルコンテンツ配信用のネットワーク (CDN) サービス。

動画や写真、音声など容量が大きいコンテンツを配信する際に遅延の少ないネットワークで配信してくれるのでコンテンツが早く表示されるメリットがあるのだが、自分は設定していない。

CloudFront

料金体系

CloudFrontの最新の料金体系はこちらを参照して欲しい。

現時点(2020年10月)では最初の12ヶ月間は1ヶ月に50GBのデータ送信と200万件のHTTPリクエスト分が無料になっていた。

以上で今回の記事は終了とする。

最後に

この記事が何処かで誰かの役に立つことを願っている。

尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。