【新機能】これでスキル内で流暢な英語も話せる!Alexaスキルの音声にPollyが使えるようになりました! #Alexa 【祝GA】

2018.10.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

せーのでございます。Alexaの大型新機能がついにGA(一般公開)になりましたのでご紹介します。
「Amazon Polly音声のAlexa Skill使用」がついに登場です!

どんな機能?

今までAlexaの音声は言語につき同じ人からの発話でした。日本人で言えばあのEchoでよく聴く女性の声(Mizuki、といいます)、あれですね。
それがこの機能によりAmazon Pollyで使用されている全ボイスのうち、Alexaで使われる言語にて使われる音声、27音声(2018/10/24時点)が使えるようになりました!
例えば日本語であればおなじみのMizukiの他に男性ボイスのTakumiも使えるようになりました。これでストーリーによって男女の音声を使い分けることも可能になりました。

なにがすごいの?

今回の機能の一番のポイントは「どの言語のスキルであっても"Pollyの全ボイス"が使える」という点にあります。
つまり、英語のボイスを選べば英語が話せるように、ドイツ語のボイスを選べばドイツ語を話せるようになるのです。
今までは日本語設定のスキルの中で英単語をレスポンスに設定すると、思いっきりカタカナのイントネーションで読んでいました。それがこの機能を使うことで一気にあなたのAlexaがマルチリンガルになるわけです。これはすごいです!
これで英会話のレッスンスキルなどは一気にできることが広がりますね。

やってみた

とりあえずやってみましょう。Alexaの開発画面にはシミュレーターがあるので、今回はそこの「音声と語調」というシュミレータを使います。通常はここでイントネーションやピッチなどをチェックします。

まずはノーマルで日本語を打ち込んでみます。

聞き慣れた音声ですね。

ここで英語を追加してみます。

今までのAlexaはこの英語をがっつりカタカナ読みします。

ここでいよいよ新機能の登場です。

新機能の使い方は音声を変えたいセリフを[voice]タグで囲み、name属性にその名前を入れます。名前はPollyの音声一覧から参考にしてみて下さい。

言語を変えるときには[voice]タグのなかに[lang]タグを加え、そこにxml:lang属性でロケールID(日本語ならja-JP)を設定します。ロケールの種類は下記になります。

  • English (AU): en-AU
  • English (CA): en-CA
  • English (IN): en-IN
  • English (UK): en-GB
  • English (US): en-US
  • French (FR): fr-FR
  • German (DE): de-DE
  • Italian (IT): it-IT
  • Japanese (JP): ja-JP
  • Spanish (ES): es-ES

voice nameを変えると、先に出てきました音声一覧に合っていれば違う人の音で発話されます。

後は同じように違うLangの音声を書いていくと、Alexaはマルチリンガルを話せるようになります。

注意点

このように便利な新機能ですが、以下の点に注意しましょう。

  • 違うvoiceでもSSMLの他のタグは使えますが、Speechconだけ使えません
  • voiceタグはネストして書けます。ネストすると中のタグが優先されます
  • voiceタグのnameが合わないとエラーになります
  • langタグのロケールとvoiceタグのnameが合っていないと、言語を流暢にしゃべってくれません
  • name属性は大文字小文字をチェックします
  • レスポンスは1万文字以上になるとエラーになります
  • Pollyの音声はオリジナルのAlexaの音声と若干ピッチや発音などが違うので、SSMLでうまく調整する必要があります

まとめ

いかがでしたでしょうか。これでやりたいことがガッツリ増えました。みなさんもこの新機能を大いに活用して、面白いスキルをどんどん作っていきましょう!