[日本語Alexa] AlexaスキルからPollyで喋らせることができるようになった(Generally Available)
1 はじめに
本日、Alexa Blogsで、AlexaスキルからAmazon Polly(以下、Polly)を使用することが一般利用可能になったと発表がありました。
Amazon Polly Voices in Alexa Skills Now Generally Available
すでに、英語では利用可能であり、日本語もプレビューとなっていましたが、本日から、Alexaがサポートしている全てのロケールで、一般利用可能になったようです。
と言うことで、早速試してみました。
2 サンプルコード
上記の動画のコードは、以下のとおりです。
「Good to see you again.」というフレーズを、Alexaでそのまま読ませているのと、<voice>タグでPollyを指定して読ませています。
import * as Alexa from 'ask-sdk'; import { RequestEnvelope } from 'ask-sdk-model'; let skill: Alexa.Skill; exports.handler = async function (event: RequestEnvelope, context: any) { console.log(JSON.stringify(event)); if (!skill) { skill = Alexa.SkillBuilders.standard() .addRequestHandlers(SampleIntentHandler) .create(); } return skill.invoke(event, context); } const SampleIntentHandler: Alexa.RequestHandler = { canHandle(h: Alexa.HandlerInput) { return true; }, handle(h: Alexa.HandlerInput) { const message = 'Good to see you again.'; const speak = '最初に、そのまま読み上げます。' + message + '<p/>続いてPollyで読み上げます。<voice name="Kendra"><lang xml:lang="en-US">' + message + '</lang></voice>どうですか?' return h.responseBuilder.speak(speak).getResponse(); } };
3 voice・lang
AlexaからPollyの音声を利用するためには、音声合成マークアップ言語(SSML)を使用し、「voice」タグと「lang」タグを使用します。
最初に、そのまま読み上げます。This is a pen. 続いてPollyで読み上げます。 <voice name="Kendra"><lang xml:lang="en-US">This is a pen.</lang></voice> どうですか?
(1) voiceタグ
voiceタグには、Pollyで利用可能な、各国の音声がすべて利用可能です。
(2) lnagタグ
langタグは、スキルが実行されているロケールと違う国の音声を使用する場合に必要です。無くても読み上げることは可能ですが、発音が、微妙です。
先程の例で行くと、Alexaでそのまま読ませるのと、Kendraの音声で読ませた部分の発音は、同じになります。
4 最後に
非常に応用範囲の広い、素晴らしい拡張です!
Alexa Blogでは、次のような活用例が紹介されていました。
- ゲームやストーリーのスキルの異なるキャラクターに異なるボイスを使用する
- 声優を雇うのに必要な時間とコストを削減
- 発音をカスタマイズする
アレクサの開発者がPollyの声を使用することは無料とのことです。また、Pollyを使用するためのユーザーエクスペリエンスのガイドラインを確認する必要があるとのことでした。
User Experience Guidelines for the Use of Amazon Polly Voices in Your Skills
5 参考リンク
Amazon Polly Voices in Alexa Skills Now Generally Available
User Experience Guidelines for the Use of Amazon Polly Voices in Your Skills
Speech Synthesis Markup Language (SSML) Reference(2018/10/24 03:00現在、英語ドキュメントのみ)