Amazonタイムセール開催中!

テキスト読み上げAI「Amazon Polly」を試してみた

IBMが提供しているWatsonの音声合成機能「Text to Speech」や、Googleが2018年3月28日からベータ版を提供開始したCloud Text-to-Speechなども気になるところですが、今回はAWSの提供する人工知能を活用したテキスト読み上げサービス「Amazon Polly」を触ってみました。

Amazon Pollyの基本

Amazon PollyはAWSが提供するTTP(Text-To-Speech)のAPIサービスです。AWSのWEBコンソールからAmazon Pollyのサービスにアクセスして表示される入力欄にテキストを入力するだけで、それなりの品質の音声ファイルを作成できます。ただ、英語ベースの読み上げは声質のレパートリーも多く、チューニングなしでも良い感じに読み上げてくれているように感じますが、日本語の読み上げ機能はまだ男女1声ずつしか声質もなく、違和感を感じる部分も多いです。

日本語読み上げは2タイプだけ

日本語の読み上げ機能として2タイプ(男性のTakumi、女性のMizuki)の音声が用意されています。英語だと8タイプが用意されています。日本語で複数の声質を作る為には、この2タイプの音声をベースにチューニングして作成していく必要があります。

変換は1度に1500文字まで

現時点で、Amazon Pollyが一度に変換することができる文字数は1500文字です。会話レベルの内容ならば不足することはありませんが、朗読ファイルやPodcastデータを作るならば、複数回に分けて生成し、結合する必要があります。

チューニングはSSMLで

Amazon PollyはSSML(音声合成マークアップ言語)をサポートしています。標準で用意された単純な読み上げ機能で表現できない機能(文章の区切りで少し読み上げを止める、指定箇所を強調して読む、指定箇所の読み上げ速度を変える、ピッチの変更)などを利用するためには、SSMLの利用が必須です。SSMLの記述はHTMLの記述に近いので、開発者ガイドを見ながら簡単に構文することができます。

参考 Amazon Polly でサポートされている SSML タグAmazon Polly 開発者ガイド

芥川龍之介さんの「蜘蛛の糸」という1981年に発表された児童向け短編小説の冒頭を素材として利用します。まずはAmazon Polly(Mizuki)の素の実力を確認するために単純に読み上げてもらいます。利用するSSMLタグは”speak”だけです。

Amazon Pollyに「蜘蛛の糸」を読ませてみた

全体的に良くできていると思いましたが、「御釈迦様さまは極楽の蓮池のふちを」の”御”釈迦様を”ご”しゃかさまと発音してしまう部分、金色(こんじき)を金色(金色)と読んでしまう部分、「独りで”ぶらぶら”御歩きになっていらっしゃいました。」の「ぶらぶら」という発音が気になります。

同じ漢字でも複数の読み方があるという点では、日本語は難しい言語であるということを再認識しました。日本語を違和感なく読み上げるには、Amazon pollyの学習の精度を高める必要がありそうだと感じました。単語単位で調整すれば改善できそうですが、今回は全体的な使用感を知りたいので、細かなチューニングは別の機会においておきます。

Amazon Pollyの日本語音声がSSMLでどう変わるか試してみる

冒頭の一文に限定してSSMLでどう変化させられるかを確認してみました。

「ごしゃかさま」問題を解決するのはPollyの進化に期待して、ひらがな表記にすることで、ひとまずは「おしゃかさま」と違和感のないイントネーションになったと思います。

SSFLでできることのサンプル動画

SSMLを読み込ませたサンプルをYoutubeにアップしましたのでご確認ください。

Amazon Pollyを試してみた感想

デフォルトの設定で違和感のない読み方をさせるためには、何気なく作成された文章をコピー&ペーストするだけでは難しいということを知りました。場合によってはひらがな表記にしたり、句読点に合わせて「間」を設けたり、読み上げるスピード、抑揚の調整など、聞いた際の違和感を少なくするためには、それなりの時間が必要になりそうです。

ただ、指定するのは手間がかかりますが、手間をかければラジオのDJのような芸の細かい放送も作ることが可能だとも思いました。

IBMのWatson「Text to Speech」や、GoogleのCloud Text-to-Speechなどでも同様の検証をしながら、読み上げツールの検討を進めていきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA