VUI design and method to support number-guessing game

VUI design and method to support number-guessing game

In this slides, I introduce some method to design VUI (Voice User Interface) apps, for example, the number-guessing game app I have released. It also includes how to find contexts and intents from each scenario and how to draw a diagram to understand the abstract of whole conversation.

Currently, there is no tools and methods to design VUI apps. Therefore, I needed to establish own methods. I expect that developers who want to design VUI apps can use the methods as a base line.

6d5d830c8d2805a2c22ea2eb1e2431cc?s=128

Yoichiro Tanaka

April 12, 2018
Tweet

Transcript

  1. VUI design and method to support number-guessing game Yoichiro Tanaka,

    Google Developers Expert
  2. Yoichiro Tanaka Software Engineer / IT Architect Google Developers Expert

    (Web) twitter.com/yoichiro google.com/+YoichiroTanaka
  3. What is this? The following know-hows which I used when

    developing the number-guessing game app named "Bulls and Cows" for Google Assistant: • VUI (Voice User Interface) design points and devices • Methods and procedures at VUI design.
  4. None
  5. Happy path of Bulls and Cows

  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. Design Checklist

  14. https://developers.google.com/actions/design/checklist

  15. Greetings and Goodbyes

  16. Greetings and Goodbyes Tell users who you are. Give the

    right amount of information. End conversations appropriately.
  17. Tell users who you are Give users an app name

    in the welcome message so that users can recognize what the app can be invoked. Welcome to Bulls and Cows. It is a game that guesses all three different digits. Zero is not included. Now, please say three digit numbers.
  18. Give the right amount of information Give a minimum rule

    at first. • Informed the thing ◦ This app wants the user to say three digit number. • Not informed the thing ◦ Judge condition (n bulls, n cows) Tell users only what they wants first to do, and finish saying the Welcome Message as short as possible. Welcome to Bulls and Cows. It is a game that guesses all three different digits. Zero is not included. Now, please say three digit numbers.
  19. Give the right amount of information A design which is

    not implemented yet: Cater your greeting to users with varying degrees of familiarity with your actions The experience of listening to "part of the rules of the game" every time you invoke the app is not good. -> You can control with app.getLastSeen() Welcome to Bulls and Cows. It is a game that guesses all three different digits. Zero is not included. Now, please say three digit numbers. I know...
  20. End conversations appropriately Users can end the conversation with phrases

    like "bye" whenever they are in any contexts. Welcome to Bulls and Cows. It is a game that guesses all three different digits. Zero is not included. Now, please say three digit numbers. Bye The answer was 9, 5 and 3. Let's play again next time. Bulls and Cows left the conversation
  21. End conversations appropriately Offer a chance which users can end

    the conversation when they achieve the purpose. Congratulation! You got three Bulls! Do you want to play again? 123 Bulls and Cows left the conversation No Ok, Bulls and Cows is finished. Let's play again next time.
  22. Conversation Repair (Error Handling)

  23. Prevent errors by expecting variations Handle two expressions users are

    going to say for the "please say three digit numbers". • "One hundred and twenty three." → 123 • "One two three" → 1 2 3 Both is a three digit number. 1 bull and 0 cow. One hundred and twenty three. One, two, three. 1 bull and 0 cow.
  24. None
  25. Provide helpful reprompts or pivot to another question Users may

    give up when they take mistakes many times. -> The user never invoke the app again because of the difficulty. 1 bull and 0 cow. 123 456 789 1 bull and 0 cow. 1 bull and 0 cow.
  26. Provide helpful reprompts or pivot to another question Ask whether

    want to hear a hint when the user takes mistakes three times. • Avoid teach the hint without the user's opinion. • Present a feeling that the app is worried about the user's many mistakes. • By helping to achieve the purpose (= navigate to the correct answer), let the user a success experience as possible. 1 Bull and 0 Cow. Do you need a hint? 789 The sum of three digit numbers is 16. Yes
  27. Provide helpful reprompts or pivot to another question There shoud

    be users who continue the game ignoring the suggestion of providing the hint. -> Predict behaviors of users in advance, provide an experience to be able to continue the game. 1 Bull and 0 Cow. Do you need a hint? 789 1 Bull and 0 Cow. 123
  28. Conversational Dialogs

  29. Sound natural It's a conversation, is not a auto-answer of

    call-centers. -> An important thing is believing users. • Thrusting to say fixed phrases to users brings sounds un-natural. • Simply, should say "Do you need ... ?". 1 Bull and 0 Cow. You can get a hint by saying "Hint" anytime. Hint 1 Bull and 0 Cow. Do you need a hint? Yes
  30. 1 Bull and 0 Cow. You can get a hint

    by saying "Hint" anytime. Hint 1 Bull and 0 Cow. You can get a hint by saying "Hint" anytime. 789 Hint The sum of three digit numbers is 16. [Should avoid] The implementation is simple, but the conversation is absplutely mechanical. * Rounded corners are Context, Rectangles are Intent.
  31. [Should do] The amount of the implementation increases, but can

    bring sounds natural. 789 Hint 1 Bull 0 Cow. Do you need a hint? 1 Bull and 0 Cow. Do you need a hint? Yes Yes The sum of three digit numbers is 16. The sum of three digit numbers is 16. I see. Please say three digit numbers. 1 Bull and 0 Cow I didn't understand well. Please say three digit numbers. No 123 ??? * Rounded corners are Context, Rectangles are Intent.
  32. Sound natural Prepare multiple phrases for one reply message. •

    Don't provide unnatural sounds as possible. • The number of the valiations is 3. The more, the better. • Currently, the output phrase is selected by random. Actually, it is necessary to find a way not to select the same phrase continuously. Congratulation! You got three Bulls! Do you want to play again? Great! You got three Bulls! Do you want to play again? You got three Bulls! Wow! Do you want to play again?
  33. A message resource file.

  34. Tools and Procedures for Design

  35. Tools for Design Currently, most nothing's tools for VUI designing.

    • Many companies and communities are finding a way. Many tools might be provided from now. • We don't have any tools, but we need some tool to design VUI apps. It is necessary to find some method by own (or refer to recommendations on Actions on Google)
  36. My method 1. Write scenarios. 2. Find contexts. 3. Draw

    navigation between contexts. 4. Find intents, and add them to the context navigation. 5. Apply each dialog before and after each intent.
  37. 1. Write scenarios

  38. Color alternate rows in Google Spreadsheet in advance. Convenience!

  39. Happy Path

  40. Play again

  41. Help

  42. Hint

  43. Mistakes three times

  44. 2. Find contexts

  45. 2. Find contexts Search for a place where the theme

    of the conversation changed. Then extract before and after change as "context". • "Listen to a three-digit number, and answer the judgment result" • "After answering correctly, ask whether play again one more time" • "After three mistakes, ask whether want to hear the hint"
  46. Happy Path - The theme changed from "Now, gaming" to

    "Ask whether plays again" -> The context changed.
  47. Help - Heard the help in "Gaming", but the theme

    not changed from "Gaming". As the result, the context is still "Gaming".
  48. Mistakes 3 times - By mistaken 3 times, the theme

    changed to "Asking to hear a hint". That is, the context changed.
  49. 3. Draw navigation between contexts

  50. "Now gaming" "Ask whether play again" "Ask whether want to

    hear a hint" Can understand an abstract of the conversation stream by drawing navigation between contexts.
  51. 4. Find intents

  52. Happy Path - "I take a guess of three digit

    number" = "input.numbers" , "Specify that I don't play again" = "play_again.no"
  53. Happy Path - The "input.numbers" intent changes a context (from

    "game" to "play_again")
  54. Hint - "Hear a hint" = "help_hint" intent

  55. Mistakes 3 times - The "input.numbers" intent also changes a

    context to "hear_hint"
  56. 4. And add them to the context navigation.

  57. None
  58. 5. Apply each dialog before and after each intent.

  59. Ex: Insert intents and apply dialogs between the "game" context

    and the "hear_hint" context. 789 Hint 1 Bull 0 Cow. Do you need a hint? Yes The sum of three digit numbers is 16. The sum of three digit numbers is 16. I see. Please say three digit numbers. 1 Bull and 0 Cow I didn't understand well. Please say three digit numbers. No 123 ??? * Rounded corners are Context, Rectangles are Intent.
  60. Mapping to Dialogflow

  61. 789 1 Bull and 0 Cow. Do you need a

    hint? 1 Bull and 0 Cow Congratulation! You got three Bulls! Do you want to play again? Training phrases Input context Output context Output context Output context Response Response Response
  62. None
  63. Actually, Fulfillment is necessary A fulfillment is called from each

    intent. -> The fulfillment determines the following: • Output contexts • Response In the area of VUI design, it is unnecessary to include a fulfillment, because the fulfillment is for implementation.
  64. Conclusion To fill the design checklist is important. There is

    no design tool and procedure established now. The flow may be better: Scenarios -> Contexts -> Intents -> Navigation -> Dialogs -> Implementation Don't need rich tools. To start a design, use Google Spreadsheet first!
  65. Appendix

  66. dialogflow-query-checker This is a checker tool to validate a result

    phrase against each query sent to the Dialogflow. https://github.com/yoichiro/dialogflow-query-checker
  67. Botsociety.io Create a dialog mock up rapidly. Can export the

    video and generate code. Publish this mock up for testing. https://botsociety.io
  68. Fin.