執筆こぼれ話「Pollyの発話をカスタマイズして、単語が区別できるか試してみた」

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

技術一課の鎌田(裕)です。

re:InventにてAIのサービス、Amazon Lex, Amazon Polly, Amazon Rekognitionが発表されました。
既にブログ記事などは沢山ありますが、深く検証した記事はなかなかありません。
そんな中、日経クラウドファーストの3月号「コグニティブサービス」に、
これらAWSのAIサービスに関して、当社白鳥・橋本・坂本との共同執筆にて寄稿いたしました。

詳しい「AIサービスとは?」のエッセンスはそちらをお読みいただいて、こちらでは紙面の都合上やむを得ずページを割けなかった、Pollyの検証をお届けします。

Amazon Pollyの発話はカスタマイズ出来る!

Amazon Polly、記事にも書いていますが、
Speech Synthesis Markup Language (SSML)
を利用することで、発話をカスタマイズすることが出来ます。

SSMLとは、音声合成マークアップ言語で、発音、音量、ピッチ、速度などの読み上げなどの調整が出来るようになっています。
このSSMLを使うことで、会話をカスタマイズします。
実際にカスタマイズをしたPollyのコードはこちら。

Amazon Pollyを使う上で知っておきたい、言葉の「アクセント」

あらゆる言語(ここでの言語は、人が読み書き、話す言語を指します)には、必ずアクセントがあります。
英語などでは「強勢アクセント」、日本語などでは「高低アクセント」と呼ばれるアクセントを使っています。

英語などで使われる「強勢アクセント」とは、単語の中でも強く言う部分・弱く言う部分を分ける形のアクセントを言います。(英語ではStressと呼ばれています。)
例えば、「accent」という単語のアクセントを見てみましょう。発音記号から読み解くことができます。次のように書かれています。

英語ではどの音を強く読めばいいのか、記号(`)を付けることで強弱が分かるようになっています。
先のaccentは一番最初に記号があるので、最初を強く読むことになります。

次に日本語などで使われる「高低アクセント」とは、単語の中でも高い音で読むところ・低い音で読むところを分ける形のアクセントを言います。
では、日本語の発音の「アクセント」の単語のアクセントを見てみましょう。

アの上に、線が引かれています。
この字の上に線が引かれている部分が高い音で読むところ、何もない部分が低い音で読むところになっています。

Pollyの発音がちょっとおかしいな、と思ったら、「アクセントを調整すれば自然になるかも」と覚えておきましょう。

日本語の「アクセント」カスタマイズにチャレンジ!

ということで、日本語の「アクセント」カスタマイズにもチャレンジしました。
日本語はアクセントが変わると単語自体も変わります。アクセント大事。

検証として、「みかん」という単語を選んでみました。「蜜柑」と「未完」が区別出来るようにPollyはしゃべれるのか!?
アクセントは、次のようなアクセントになります。

これをSSMLで記述してみたコードが、最初のPollyのコードです。

結果は、コードをPollyに投入してご自身の耳でお確かめください。

機械が話す日本語は道半ば

SSMLなのですが、残念ながら日本語のアクセントで使われる「高低アクセント」、対応していません。なので、近しいものを使って色々とチャレンジしました。
しかし、「蜜柑」と「未完」は区別できるに至らず。
この辺りをカスタマイズし、違和感なく話してくれるようになるまでは、時間が掛かりそうです。

まとめ

Pollyの会話をカスタマイズして、単語が区別できるか試してみました。
今回はアクセントに注目してカスタマイズしましたが、話す速度を調整したり、話をする時に間を取ったり、というカスタマイズも出来ます。これらは、日本語でも有効です。
Pollyの会話をカスタマイズすると、より自然な会話に近づくので、是非トライしてみてください。

AWS運用自動化サービス「Cloud Automator」