Bixby's hello world (2)

Personal Computer/Linux 2019. 12. 17. 23:02 posted by tolkien

지난번에 이어 오늘은 Bixby로 하여금 말을 하게 해보자.

 

아직 result-view로 output을 design하는 것을 잘 알지 못하겠고,

Dialog를 써서 소리를 내는 것만 할 수 있을 것같다. (Dialog 재정의 하기)

Dialog event중에서 Result에 대한 dialog를 재정의해서 출력시 소리가 나오게 한다.

 

1. resources/en-US/dialogs/helloVoice.dialog.bxb

 * resources/en-US/dialogs에서 오른쪽 click -> New... -> Dialog 선택한 다음 helloVoice를 생성하고 아래 내용으로 채운다.

dialog (Result) {
  match: world (txt) {
    from-output: doHelloWorld ()
  }

  if (txt == 'hello, world') {
    template("HELLO, WORLD") {
      speech ("hello, world")
    }
  } else-if (txt == 'foo, bar') {
    template ("FOO, BAR") {
      speech ("foo, bar")
    }
  }
}

 * match: {} 부분을 설명하자면 (파악하는데, 시간이 걸렸다.)

    doHelloWorld action에서 나오는 결과값중에서 변수 타입이 world인 txt 변수에 대해서 처리한다.

 * 그리고나서 txt 내용에 따라서 출력할 내용을 정한다.

   speech() 함수를 이용해서 소리내서 말하게 하는데, SSML이라는 문법을 사용한다고 한다.

   (Bixby에서 사용되는 SSML 설명)

 * 참고로 javascript 함수인 HelloWorld()에서 return 값이 "foo, bar"로 return하면 "foo, bar"로 발음한다.

 

예제 파일은 https://github.com/tolkien/playground.helloworld 에서 받을 수 있습니다.

다음할 일 : 입력을 say hello로 받으면 hello, world를, say foo를 받으면 foo, bar를 말하게 하기