Amazon Alexaのマルチリンガル対応で何が変わったか&対応してみた
9/14よりAmazon Echoがイギリスとドイツで利用できるようになりました。
Alexa and Amazon Echo Now Available in the UK and Germany
そして、新しく増えた2ヶ国向けのSkillも開発できるようになりました。
How to Build a Multi-Language Alexa Skill
From "G'day" to "Guten Tag"
("こんにちわ"って、G'dayって表現っできるんですね)
Skillの管理画面
実際のSkillの画面を見ると、すでにUK対応していそうな感じが!
インタラクションモデルの画面でも言語のタブがあり、言語によってIntent schema
やCustom Slot
、Sample Utterances
が変えられるようになっています。
このあたりの細かい説明は、JAWS-UG IoT専門支部 IoTサロン 2016-09の発表で使ったスライドを見てもらえるとわかりやすいかと思います。
Alexa Skills Kitを使って自作のSkillを作る
事前に定義されているSlotもかなり種類が増えました。
Slot type
- AMAZON.AT_CITY
- オーストリアの有名な都市の名前
- AMAZON.DE_CITY
- ドイツの有名な都市の名前
- AMAZON.EUROPE_CITY
- ヨーロッパの有名な都市の名前
- AMAZON.GB_CITY
- イギリスの有名な都市の名前
これらのSlot Typeから想像するに、単にイギリスやドイツで使えるようになりました!というよりも、もっと広い範囲のヨーロッパにいる人たちが利用できるようなSkillの開発を期待しているのかなと思いました。
ドイツ語対応
せっかくなのでドイツ語対応してみました。
公開しているSkillはAlexa, ask moon age
と質問すると今日の月の月齢を教えてくれる簡単な物なので、google translateを駆使すればなんとかなるはず。
Skill Information
Add New Language
のタブをクリックして、言語にドイツ語を指定します。
Skillの画面に表示されるアプリ名と、実行する際の起動ワード(Invocation Name)をドイツ語で登録します。
Interaction Model
Intentは英語と変わりません。
{
"intents": [
{
"intent": "AskMoonAge"
}
]
}
Sample Utterancesは発話によってどのIntentを指定するかの紐付けなので、ドイツ語で考える必要があります。
英語版
AskMoonAge ask moon age
AskMoonAge today's moon age
ドイツ語版
AskMoonAge ask Mondphasen
AskMoonAge heutigen mondphasen
Skillのコード
このSkilはLambdaで作っているので、Lambdaのコードを修正します。
Lambdaに送られてくるリクエストのイベントにlocale
が含まれるようになったので、その値を参照して、返す言語を切り替えればOKです。
"request": {
"type": "LaunchRequest",
"requestId": "EdwRequestId.86330998-71c9-439e-b63c",
"locale": "en-GB",
"timestamp": "2016-10-08T05:57:36Z"
},
Skillのテスト
テストの画面でもドイツ語のタブが増えているので、起動ワードを入力してテストします。
画面右下の再生ボタンをクリックすると、Skillが返してきたテキストを再生してくれます。ちゃんとドイツ語ですね!!(全然わからないけど)
ちなみに、英語、イギリス英語、ドイツ語では声が女性の声ですが、少しづつ違います。
公開
全体的な流れは以前書いたこちらのエントリを参考にしてください。
前にはなかった項目Countries & Region
が増えてました。
現在は音楽のストリーミングなどもできるようになったので、Skillの内容によっては公開先を限定しないと駄目なのかもしれないですね。
今回はデフォルトのIn all countries and regions where Amazon has presence
を選びました。
13才未満の子供を対象としたSkillなのかも問われています。
とりあえずNoで。
すべての入力が済んでるとSubmit for Certification
のボタンが押せるようになるので、問題がなければクリックします。
無事、審査に提出できたようです。
前回と同じであれば数日で審査が終わるので、結果を待ちます。
Skillの一覧画面を見ると、Skillの状態が確認できます。
すでに公開済みのSkillと、審査中ステータスになった物が表示されています。
審査結果は後日こちらに書きます。
審査結果(11/3追記)
10/8に審査に提出したところかなりの間放置され(世界的にも審査が遅かったようです)、10/21にリジェクトされました。
リジェクトの理由は、「sample utterancesが少ないから、もっと増やせ」とのこと。言語ごとにリジェクト理由が書かれてくるのですが、3言語とも指摘されました。初回はそれで通ったのにと、、と思いつつもドイツ語に関してはサンプルも書かれていたので、5個ぐらいに増やして再度申請。
10/24に再度リジェクト。今回は速かった。
リジェクトの理由は、UKに関しては前回と同じ「sample utterancesが少ないから、もっと増やせ」とのこと。(6個ぐらいあると大丈夫そう)
ドイツ語に関しては、「使い方のサンプルに書かれている発話は、sample utterancesにもないとダメだよ」という指摘。typoですね。。
時間が取れなかったので、10/29に再々審査に提出。
ドイツ語は全くわからないので、sample utterancesを複数種類書くのに凄い苦労します。
Author And Source
この問題について(Amazon Alexaのマルチリンガル対応で何が変わったか&対応してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/sparkgene/items/a38a6bc6051267ca74a5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .