드래그 슬레이브로 비교하기 Voice Assistant

어쩌면 괴물 문서



전구 위



슬레이어즈의 제3부가 시작되네요. 어릴 적에 주문을 기억한 분도 많지 않습니까.

스마트폰도 말하는 시대, Voice Assistant도 주문 정도 주창할 수 없으면 스마트라고 말할 수 없지요? 그래서 Alexa/Google Home/Siri에게 드래그 슬레이브를 주창하게 해본다.

알렉사



알렉사, 드래그 슬레이브를 주창 #슬레이어즈 피 c. 라고 r. 코 m/WV81GXt푸b — H. NOMATA (@hiromichinomata) May 20, 2019


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



    이봐 구글, 드래그 슬레이브를 주창해 #슬레이어즈 피 c. 라고 r. 코 m / 우 f9K3 우7 아 46 — H. NOMATA (@hiromichinomata) May 21, 2019

    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



    Hey Siri, 드래그 슬레이브를 주창해 #슬레이어즈 피 c. 라고 r. 이 m/d5j4Ygn7SC — H. NOMATA (@hiromichinomata) May 21, 2019


    iOS12부터 바로 가기 앱이 도입되어 있어 Siri를 hook에 바로가기의 액션을 정의 가능.



    블록의 흐름으로서는 텍스트 설정 => 읽음. 바로 가기 내에서는 발화 인물을 설정할 수 있지만 Siri 경유라고 무시되는 모양.





    SSML에는 대응하지 않는다.



    비교
































    AlexaGoogle HomeSiri
    SSMLYYN
    GUI로 개발
    BackendLambdaDialogflow GUI단축키


    Future Work



    Clova, Cortana Skill 등


    좋은 웹페이지 즐겨찾기