Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Formatting, quick facts, cleanup

...

NPCEditor controls the spoken behavior of the characters in the Toolkit, as well as the structure and logic of the interaction through its dialog manager.  It contains a list of user and character utterances, divided into "Questions" and  and "Answers", and the links between them.  NPCEditor uses a statistical text classifier to determine the best character response to user input, allowing users to converse with the characters with minimal effort.

Quick facts:

Users

Launching NPCEditor

In the launcher, click "'Launch" ' in the NPCEditor row under the "'Agents" ' group.  It will also run by default when you launch "'Run Checked"'

Making a Character Speak

The quickest way to make a character speak a line is to double click an entry in the right side of the Utterances Tab, under "'Answers"'.  The character should speak the line you've selected, with lip sync and gestures provided by Nonverbal Behavior Generator.

...

Character dialog is listed as Answers on the right of the tab.  Each of a character's lines of dialog has its own entry.    

 

An Answer consists of a number of fields.: 

...

 Each of these fields and the values within can be edited in the Settings Tab.

 

 

 

Talking to a Character Inside NPCEditor

...

Along the left hand side are other tools for seeing how the classifier within NPCEditor parses user input, analyzes it, and selects the best response.

 

 

Authors

Overall approach

Building a new Plist

There is no set way in how to author a character, but the general approach is:

  1. Select a certain domain or a small amount of domains that your character should be able to talk about. For the Brad example character, this is the toolkit, the toolkit modules, ICT, USC and Brad himself.
  2. Within these domains, identify the topics that are of interest, or that you anticipate your users will want to discuss. For instance, Brad will explain what the toolkit is, how you can use it, which modules are part of it, and where you can find more information.
  3. For each topic, identify the statements you want your character to make. You can add these on the right hand side, in the Utterances tab. Try to create statements that are stand-alone, i.e. not referring to any words the user might have used in the question (also see guidelines below).
  4. For each statement, define various questions for which the statement can be an answer. These questions can be defined in the left hand side in the Utterances tab. Link all appropriate questions to the statement by selecting the statement and all associated questions, and press CTRL + 6. You should now have sets of questions that link to exactly one statement.
  5. For each statement, create a variation and link that to all existing questions for that statement. You now have a variety of topics that the user can discuss in several ways, and for which there are 2 variations for each answer. Be sure to save the plist (or turn on autosaving in Edit -> Properties).
  6. For each answer statement (right side), ensure you select the correct domain 'Brad Smith' and correct speaker 'Brad'. Also be sure to save the plist.
  7. Before interacting with the character, you should train the NPCEditor. You can do this in the Classifiers tab. Select the character from the Addressee column. If you have one character, there should be only one row. If there are more rows, you have defined multiple addressees. This is likely do the default Anybody addressee. In the Utterances tab, on the right hand, you should select all rows and make the addressee either your character name or Anybody (with only one character, the addressee does not matter that much). After you have made sure there is only one row in the Classifiers tab, select that row, check the 'Test on training data' box at the bottom and click Start Training. You don't have to train the NPCEditor any time you make a change, but if you make substantial changes, and the character is not reacting the way you expected it to, you should try retraining it.
  8. You are now ready to test out the character for yourself. Just run the entire scenario (including render and Text To Speech, etc.), and start interacting with the character. You will find that some questions are not answered correctly, that some answer might not sound as well as you anticipated, and that you are thinking of both more answers and questions. You can make all the changes you want on the fly in the NPCEditor, without the need to restart it.
  9. If you are happy with your interactions, you can start having others interacting with it. This will show you which areas need more work. It will also result in much data, especially in the form of questions, which you can use as new input for the NPCEditor. You could use the provided Logger to collect all messages (which include the messages from the speech client to the NPCEditor, and extract all questions asked into a separate text file (you would probably have to write a script for that). You can then import this text file into the NPCEditor, after which you can create new answers for these questions, or link questions to existing answers.
  10. With this iterative process, the quality of your character should improve over time. Let us know how you are doing!

...

Author generic, stand alone answers

...