LoginSignup
20
13

More than 5 years have passed since last update.

Amazon AI pollyを使ってみた

Posted at

この記事について

この記事は ACCESS Advent Calendar 2016 18日目の記事です。
ACCESS の @shotasakamoto です。

この記事の主題は?

最近、機械学習とか勉強するモチベーションが上がってきて、CRFやword2vecとかについて記載しようと思いましたが、12月に発表されたAmazon AIについてちょっと興味があったので、前述した内容について少し触れていきたいと思います。

Amazon AIの種類

以下の3つになります。
* Amazon Recognition
* Amazon Polly
* Amazon Lex

画像認識よりも言語解析・処理とかに興味がある方なので、
LexかPollyを見ようかと思ってましたが、Lexはまだプレビュー版的な位置づけだったので、
Pollyで遊んでみました。

Amazon Pollyとは?

簡単に言うと、「入力した各種言語テキストを音声に変換する」機能となります。

開発ドキュメントは無いの?

もちろんあります。
以下を参照してください。(このドキュメント読んだら、この記事の内容は全部入ってますね・・涙)
開発ドキュメント

どうやって使うの?

すごく簡単です。(カップラーメン作っている間に出来そうです)
* AWSのアカウント作る
* AWS コンソールにログインする(ただし、東京リージョンだとまだサービスが無いので、米国東部とかリージョンを変更する必要がある)
* サービスで[Polly]を検索して、pollyのページに移動
* テキスト入力欄に適当にテキストを入れて、「音声を聴く」ボタンを押す

こんな感じで、サクッと遊べます。

以下のような画面が表示されます。
※日本語だと、現時点ではまだ女性(ミズキさん?)のみの音声となります。
英語だと数種類の音声パターンがありました。

スクリーンショット 2016-12-17 15.18.37.png

読み方の設定とかは出来ないの?

可能です。
具体的には、下記が挙げられます。
* SSML(音声合成マークアップ言語)を設定
* レキシコンの設定

SSMLの例は以下です。(下記は「SSML」という単語を強調して読ませるようにしています)
※他には指定した箇所を英語で読んだり、読み上げ速度を変えたりなど、設定が結構変更可能だったりします。

<speak xml:lang="en-JP">これは<emphasis level="strong">SSML</emphasis>の例です。</speak>

レキシコンでは、「指定した単語の読み上げ方を変更する」ことが可能です。
書き方の例は下記です。
※下記は言語設定をen-US(英語)に設定しています。
なぜか日本語(JP)はまだ設定出来ないような感じがしますね・・。

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
 xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
 http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
 alphabet="ipa"
 xml:lang="en-US">
 <lexeme>
 <grapheme>www</grapheme>
 <alias>world wide web</alias>
 </lexeme>
</lexicon>

上記の例だと、「www」という単語を「world wide web」に読み替える設定となります。
レキシコンはxxx.plsという名前で保存して、コンソールからアップロードが可能です。

自分の作ったアプリからは何か遊べないの?

遊べます。

pollyの機能の呼び出しもかなり簡単で、
例えばpythonだと以下のような感じでよみだしが可能です。
※公式ドキュメントのサンプルを下記に記載しています。(p10参照)

session = Session(profile_name="adminuser")
polly = session.client("polly")
try:
 # Request speech synthesis
 response = polly.synthesize_speech(Text="Hello world!",
 OutputFormat="mp3",
 VoiceId="Joanna")
except (BotoCoreError, ClientError) as error:
 ...

responseにmp3での音声データが入ってくるので、
このデータをファイルに保存したり、再生したりすることが可能です。

最後に

駆け足でしたが、ざっくりpollyについての概要を記載しました。
試しに遊んでみるのはすぐ出来ると思いますので、ご興味お持ちの方は、ぜひぜひ遊んでみて頂ければと思います。

明日(12/19) の ACCESS Advent Calendar 2016@DaisukeKondo さんの記事となります。お楽しみに!!

20
13
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
20
13