Help us understand the problem. What is going on with this article?

ドラグスレイブで比較するVoice Assistant

More than 1 year has passed since last update.

たぶん怪文書

前口上

スレイヤーズの第3部が始まりますね。子供の頃に呪文を覚えた方も多いんじゃないでしょうか。

スマホも喋る時代、Voice Assistantも呪文くらい唱えられなきゃスマートと言えませんよね?ということでAlexa/Google Home/Siriにドラグスレイブ唱えさせてみる。

Alexa

Alexa用のコンソールから作成可能。以前はLambdaを別途用意して紐付ける必要があったがCodeタブ内で簡単に編集できるようになった。

  • ドラグスレイブを唱えて」をEnchantIntentとして登録

  • 他のHandlerをコピペしてEnchantHandlerを作成。マッチさせるIntentをEnchantIntentに、読み上げるテキストを呪文に変える。

Alexa SkillではSSMLに対応しているため、XMLタグを使うことで細かな制御が可能。漢字の読み上げは完璧でないのでひらがなにするかsubタグで読みを設定する必要がある。

const EnchantHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'EnchantIntent';
    },
    handle(handlerInput) {
        const speechText = 
        '黄昏よりも昏きもの、血の流れより紅きもの、 時の流れに埋もれし、' + 
        '偉大なる汝の名において、我ここに闇に誓わん、我等が前に立ち塞がりし' +
        'すべての愚かなるものに、我と汝がちからもて、等しく滅びを与えんことを、' +
        '<prosody volume="x-loud">ドラグスレーイブ!</prosody>';
        return handlerInput.responseBuilder
            .speak(speechText)
            .reprompt(speechText)
            .getResponse();
    }
};
  • handlerのリストの上の方にEnchantHandlerを足す
exports.handler = Alexa.SkillBuilders.custom()
    .addRequestHandlers(
        LaunchRequestHandler,
        EnchantHandler, // add
        LagunaBladeHandler,
        HelpIntentHandler,
        CancelAndStopIntentHandler,
        SessionEndedRequestHandler,
        IntentReflectorHandler)
    .addErrorHandlers(
        ErrorHandler)
    .lambda();
  • 申請するつもりでアプリの説明やアイコン画像をダミーで入れると実機でテストできるinvitationを送れるようになる

Google Home

Dialogflow(旧api.ai)で作成する。Alexa Skillと違いこの程度なら全てGUIで完結可能。

  • Alexa Skillと同等にEnchantIntentにTraining phrases「ドラグスレイブを唱えて」をたす。

  • ResponsesでText responseに呪文をたす。

  • 実機テストを行うにはGoogleアカウントの設定でウェブとアプリのアクティビティを有効化する必要がある他、IntegrationsタブからGoogle Assistantを選択、Auto-preview changesをオンにする必要あり。呼び出し名はSimulatorの画面に飛んでから横メニューのInvocationで変更できる。

SSMLに対応している。

Siri

iOS12からショートカットアプリが導入されており、Siriをhookにショートカットのアクションを定義可能。

ブロックの流れとしては テキスト設定 => 読み上げ。ショートカット内では発話人物を設定できるがSiri経由だと無視される模様。

SSMLには対応していない。

比較

Alexa Google Home Siri
SSML Y Y N
GUIで開発
Backend Lambda Dialogflow GUI ショートカット

Future Work

Clova, Cortana Skillとか

hiromichinomata
スタートアップや上場企業で技術顧問をしています。ギター初心者
https://ja.algonote.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした