The Personage generator can produce personality-rich utterances for presenting information in the restaurant domain and can be extended to work in other domains. It provides both rule-based and trainable models that have been shown to be perceived as the system intended. Current project aims are to extend the expression of personality to non-verbal cues such as facial expressions and body movement.
Personage is meant to be used as the generation component of a dialogue system. After a dialogue system gets and processes the user's input and decides roughly what it wants to say, it passes that rough characterization on to the generation component to generate a fully fleshed out utterance. The generation component is responsible for turning an abstract action like "Say Hello" into something more concrete like "Hey, how are you doing?".
What makes Personage different from most generators is that it generates language with recognizable style. Personage can alter text in many ways such as controlling the ordering of content (should the positive information come first?) and inserting stuttering. You specify probabilities for these parameters. For example, setting the stuttering insertion parameter to 0.1 will result in very little stuttering whereas 0.9 will result in a lot.
So in addition to providing Personage with that rough characterization of what to say, you also specify probabilities for each of these parameters. These values can be specified one by one, or you can define personality types in terms of these individual parameters and then use those higher-level personality types. For example, Personage has the Big Five personality traits pre-defined. You can see this in action by trying out the demo. You can set the parameters individually or click one of the personality types to set all of the parameters.