Amazon PollyのSSMLを使って日本語のイントネーションを自然にする

こんにちは!エンジニアの岩間です。

Amazon Connectや、Amazon Lex を使ったボイスボット開発で「なんかイントネーション変だな、、、」と思ったことはありませんか?

これらのサービスではデフォルトでAmazon Pollyを使用して音声を合成しますが、テキストをそのまま読み上げると、意図しない抑揚になったり、語尾が不自然に強調されたりすることがあります。

本記事では、SSMLタグを活用してイントネーションを自然に改善する方法と、Amazon Connect・Lex での具体的な設定方法を紹介します。

SSMLの基本については公式ドキュメントをご参照ください。
Amazon ConnectやLexの構築方法について興味のある方は以下の過去記事をご覧ください。

Amazon Connect最初の一歩!シンプルなコールセンターを構築してみた

[会話型AI活用]Amazon LexとConnectでシーン別にお花をレコメンドする仕組みを作ってみた

Amazon Pollyの音声を自然な日本語に改善してみる

早速Amazon Pollyの音声を自然な日本語へと改善していきましょう!

 

最初に、「ご案内」という単語を例に挙げてみます。Pollyがデフォルトで読み上げると、

上記のように「ゴアンナイ」と平坦に発音され、実際の日本語の自然な抑揚と異なります。

 

そこで、以下のように<phoneme>タグを使ってイントネーションを改善してみます。

ゴアンナ’イのアポストロフィーは、高低アクセントの「下がり目」を表します。

phonemeタグについては、AWS公式ブログでも詳しく解説されているので、是非チェックしてみてください!

 

他にも、<prosody>タグを使って音の速度や大きさも制御できます。

 

さらに、<break>タグを使って会話に自然な間を入れることもできます。

 

 

ここからはちょっとした裏技です。

Pollyは句読点の位置でもポーズや抑揚が変わります。たとえば読点(、)なしの場合は以下のように「カブシキカイシャ」と発音し、「ギークフィード」のイントネーションにも違和感があります。

 

そこで、株式会社の直後に読点(、)を追加すると、「カブシキガイシャ」と発音し、「ギークフィード」のイントネーションも違和感なく発音されています。

 

 

また、口座番号や電話番号を確認するシーンもあるかと思います。
1234のような数字の列を読点(、)で区切って読み上げると、間が短くなりすぎて聞き取りづらくなることがあります。

 

このような場合、読点(、)の代わりに句点(。)を使うことでポーズが入り、聞きやすくなることがあります。

 

SSMLタグは他にも色々種類があります。詳しくはこちらをご覧ください。

Amazon Connectを使用する際は、一部のSSMLタグがサポートされていませんので、ご注意ください。

 

SSMLの設定方法

ここからはAmazon Connect、LexでのSSML設定方法についてご紹介します。

Amazon Connect

Amazon Connectの場合、フローエディタの「プロンプトの再生」ブロックなどで、解釈タイプを「SSML」にすることで設定可能です。

 

Amazon Lex

Amazon Lexの場合、インテント画面内のスロットの「詳細オプション」から設定できます。

CDK

CDKを使ってLexボットを構築する場合、ssmlMessageを設定することで、SSMLタグ付きのテキストの記述が可能になります。以下は設定例です。

さらに、LexのLambdaハンドラーでSSMLを返すこともできます。

以下はFulfilled状態でSSML応答を返す記述例です。

 

まとめ

ちょっとした工夫で、ボイスボットの印象はぐっと良くなります!

Nova Sonicなどの新しい音声合成技術も登場しており、今後ますますText to Speechの進化が楽しみですね。

ここまでお読みいただきありがとうございました!

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ