こういう人向け
- スキル呼び出し名で過去に苦戦された事のある方
- スロットタイプのsynonymなど気にして開発したことある方
- スキルの呼び出し名について勉強したい方
おことわり
当記事はAmazon Alexaの技術面に対して攻撃的な内容を送るものではなく、
検証・実験・仮説を中心とした記事です。
AmazonAlexaは発展途上で開発者の協力の上で、成り立つものと考えております。
そもそも「スキル呼び出し名」とは
引用:https://developer.amazon.com/ja/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html
上記スキルにおいて、「十二星座占い」というのがスキル呼び出し名になっています。
おそらくスキル名も同一でしょう。
「十二星座占い」がスキル呼び出し名に設定されているので、
「十二星座占い」という名前で「十二星座占い」というスキル名が呼び出せます。
(ややしこしいけど大事な話)
「スキル呼び出し名」は同義語設定(synonym)が出来ない
仕様として設定する箇所が現時点で無いように見受けられます。
対比としてスロットタイプを見てみましょうか。
実際にストア公開している「キドニークック」から引用してきました。
値:唐揚げ粉
ID:kidney0006
同義語(synonym):カラーゲコ、からーげこ、からあげこ、からあげこな
このような設定をしています。
なぜスロットタイプで同義語(synonym)を設定してあげているのか。
一言で雑な言い方をしてしまえば、
- Alexaの言語能力処理が現状低い(高くはない)
- 開発者サイドで補ってあげる必要がある
以上の理由から同義語を補ってあげる必要があります。
分かりやすく関係性を言うと、
親キーワードと子キーワードという間柄でも表現できます。
親キーワードで該当しない言い回しに関しては、
子キーワードで巻き取ってあげる必要があります。
synonymを噛み砕くと、
「カラアゲコ」は「唐揚げ粉」って意味だから処理してね!と
Alexaに教えてあげている調教部分になります。
仮説:「スキル呼び出し名」と「スロットタイプ」は
Alexa内部処理のアルゴリズムやプログラミングは変わらないと想定
これはAlexa開発コード見ないと分からない、
いわゆるブラックボックスな部分だと思うので、仮説に過ぎません。
仮説の通り、僕は機能によって飛躍的にAlexaの処理上がっているとは思えません。
仮に性能10モード、性能3モードみたいなのがあったとしても、
すべての機能で性能10モードを実装するべきとも思います。
よって、
「スキル呼び出し名」と「スロットタイプ」で
Alexaの内部性能差が無いという前提条件の元に話を進めていきます。
synonymの設定出来ない「スキル呼び出し名」は、設定した言葉を正しく拾えない可能性のほうが高い。
実際にやってみた。
例えば、
スキル名「唐揚げ粉フレーズ」、
スキル呼び出し名「唐揚げ粉フレーズ」というスキルを作ったと仮定します。
スキル呼び出し名は2語以上という規約なので「フレーズ」を追加しています。
実際に作って検証しました。
スロットタイプで繰り返し実証した結果、
人間が「唐揚げ粉」という言葉を認識して実際に発声する言葉では
「からーげこ」もしくは「カラアーゲ」となります。
なので、スキル呼び出し名「唐揚げ粉」では言葉を拾い切れず漏れると仮説立てします。
結果
試行回数4回、正常にスキル呼び出しに成功したのが1回
これじゃ絶対にストア申請通りません。
つまり、実質「唐揚げ粉」というsynonymを追加してあげないと、
本来読み込めない言葉はスキル呼び出しに一切使用できないことになります。
そこに技術的介入の余地も無いということになります。
なぜ「スキル呼び出し名」に
「synonym」を導入しないのか、背景もあわせて考える。
まぁ正直理解は出来ます。
たとえば有志が「エッヌエイチケイニュース」っていう呼び出し名でsynonym作ったら、
多分本家「NHKニュース」スキルの呼び出しを妨害できちゃいますからね。
なのでスキル呼び出し名に関しては、
必要最低限の実装でユーザーに控えてもらっている現状だと思います。
まとめ
- スキル名、スキル呼び出し名はAlexaの口語認識機能もふまえて考える。
- synonym無しで100%聞き取れる言葉をスキル呼び出し名に設定する必要がある。
- 現状の口語認識精度をふまえるとスキル呼び出し名に使えない語句が存在する。
0 件のコメント:
コメントを投稿